problemy s ukolem

Odeslat odpověď

Smajlíci
:D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode je zapnutý
[img] je zapnutý
[flash] je vypnutý
[url] je zapnuté
Smajlíci jsou zapnutí

Přehled tématu
   

Rozšířit náhled Přehled tématu: problemy s ukolem

od luk » 2. 9. 2007 15:02

Ahoj, s největší pravděpodobností je to nějaký problém ICM, tím spíš, že je nás tolik, co ho má :)

HELP

od jjj » 2. 9. 2007 15:00

Myslim, ze jsem se dostal do stejneho problemu, jako mela Kate na zacatku tohohle threadu. Mohl by mi nekdo poradit, kde ten problem vezi? Dik

Laskavost

od Návštěvník » 27. 8. 2007 17:48

Nenašla by se nějaká dobrá duše, která by se chtěla podělit o své řešení?

od emko_anonym » 12. 8. 2007 17:20

luk píše:Ahoj!

Jde o to, že, abys věděl, se kterými registry máš pracovat, musíš si nějak simulovat, co se děje na zásobníku. Vstupní blok začíná se zásobníkem na nule a výstupní s ním tak končí, ale uprostřed je potřeba si mezi jednotlivými bloky předávat informaci o tom, jak to s tím zásobníkem je, protože jeho obsah není nijak implicitně daný a a ten funktor se volá pro každý blok zvlášť.
Doufám, že jsem to řekl nějak srozumitelně, přeju hodně zdaru :)

Překladačům a Lukovi zdar!
Luku promin, zase budu otravnej jak svítiplyn. :D. Bohužel, vynechal jsem pár přednášek a cvičení, a byla to chyba.
Já jsem předopokládal, že k tomu, abych zjistil, kolik registrů je již použitých, slouží fce: get_used_regs (), kterou můžu volat rovnou na určitou funkci, která se také předává do toho funktoru: visitor_instruction_stack_to_register , takže je přístupná pro to generování jednotlivých instrukcí. Tato informace by tedy měla být přistupná pro všechny základní bloky dané funkce, ne? Stejně tak je přístupná funkce: set_used_regs , kterou naopak bych měl nastavit hodnotu používaných registrů podle určité právě zpracovávané instrukce, nebo ne?
Předpokládal jsem, že pokud chci použít nový registr, tak použiju ten nejbližší vyšší aktuálně použitého registru. Bednárek to v tom svém příkladu děla přeci obdobně.
Nebo, jaky je tedy jiný správný postup propašování informace o použití toho kterého registru do visitor_instruction_stack_to_register ?

Pokud bys měl chut mi to vysvětlit třeba ještě polopatičtěji, jsem ted večer na ICQ: 222470183. A asi by to bylo i lepší. Nemusím svými hloupými dotazy zatěžovat celé fórum. :)
Měj se pěkně a brzy nashledanou!

od luk » 12. 8. 2007 13:35

Ahoj!

Jde o to, že, abys věděl, se kterými registry máš pracovat, musíš si nějak simulovat, co se děje na zásobníku. Vstupní blok začíná se zásobníkem na nule a výstupní s ním tak končí, ale uprostřed je potřeba si mezi jednotlivými bloky předávat informaci o tom, jak to s tím zásobníkem je, protože jeho obsah není nijak implicitně daný a a ten funktor se volá pro každý blok zvlášť.
Doufám, že jsem to řekl nějak srozumitelně, přeju hodně zdaru :)

Trivialni dotaz k ukolu

od emko_anonym » 12. 8. 2007 13:28

luk píše:Ahoj!

Já byl na zkoušce, takže jsem dělal řešení jenom na zápočet a co se týče stráveného času, překvapivě na to stačily 2 dny. Na hodiny to spočítané nemám, ale přes 48 hodin to nelezlo :D

S čím jsem se patlal nejdýl byla ta chyba, co tu popisovala Kate, ale nakonec bylo řešení uznáno i s ní a upřímně si myslím, že je to chyba ICM, protože na vygenerovaném kódu ani u Kate ani u sebe při sebelepším pátrání chybu nevidím :)

Pokud jsi nebyl na zkoušce, tak by možná stálo zato udělat jednu těžší věc...například alokaci registrů (a k tomu teda live-range analysis), to by snad mohlo na nějakou hezčí známku stačit. Ovšem netuším, jaké má ulita nastavené hodnocení (jestliže vůbec nějaké předem má ;))

Tak jsem se předevčírem do toho dal. Zatím to jde celkem dobře. Obávám se, že jsem ale uplně nepochopil, co PŘESNĚ udělat v souboru: rmginstrsel.cpp v těch posledních 2 podmínkách, kde se testuje non-entry a non-exit blok. Můžeš mi to prosím tě nějak srozumitelněji vysvětlit?
Díky

od luk » 4. 8. 2007 16:46

Ahoj!

Já byl na zkoušce, takže jsem dělal řešení jenom na zápočet a co se týče stráveného času, překvapivě na to stačily 2 dny. Na hodiny to spočítané nemám, ale přes 48 hodin to nelezlo :D

S čím jsem se patlal nejdýl byla ta chyba, co tu popisovala Kate, ale nakonec bylo řešení uznáno i s ní a upřímně si myslím, že je to chyba ICM, protože na vygenerovaném kódu ani u Kate ani u sebe při sebelepším pátrání chybu nevidím :)

Pokud jsi nebyl na zkoušce, tak by možná stálo zato udělat jednu těžší věc...například alokaci registrů (a k tomu teda live-range analysis), to by snad mohlo na nějakou hezčí známku stačit. Ovšem netuším, jaké má ulita nastavené hodnocení (jestliže vůbec nějaké předem má ;))

od emko_anonym » 4. 8. 2007 16:36

luk píše:Tak jsem se po dlouhé době vrátil do civilizace a koukám, že v jejím samém středu, na MatFyzáckém foru, je mrtvo jak v hrobě :shock:
Cožpak nikdo kromě mne a Kate úkol nedělá?! A taková pěkná přednáška to byla! :twisted:

Já jsem tedy nakonec, co bych se nepochlubil ;), k úkolu zasedl ještě před svým odjezdem do širokých východních stepí a také ho dokončil, odeslal a v indexu mne hřeje poslední pořebný zápočet :D Ani to moc času nestálo, neřkuli že to nebolelo :).
Právě se na něj zítra chystám. A kolik presně dní (hodin) ti to celkem zabralo? Toto číslo ještě potom přenásobím svým KOEFICIENTEM BLBOSTI(>1) a dostanu se na svuj dolni odhad času. :)
Kolik se toho chystáš udělat ještě navíc (abys dostal známku rovnou)? Myslíš, že to má smysl vzhledem ke spotřebovanému času? Zajímá mě tvůj názor.

od luk » 4. 8. 2007 11:05

Tak jsem se po dlouhé době vrátil do civilizace a koukám, že v jejím samém středu, na MatFyzáckém foru, je mrtvo jak v hrobě :shock:
Cožpak nikdo kromě mne a Kate úkol nedělá?! A taková pěkná přednáška to byla! :twisted:

Já jsem tedy nakonec, co bych se nepochlubil ;), k úkolu zasedl ještě před svým odjezdem do širokých východních stepí a také ho dokončil, odeslal a v indexu mne hřeje poslední pořebný zápočet :D Ani to moc času nestálo, neřkuli že to nebolelo :).

problemy s ukolem

od Kate » 17. 7. 2007 12:25

tak jsem z toho vedra zacala delat ukol a uz to i docela slape, nefunguji pouze dva priklady, ty ovsem nefunguji primo dabelsky :evil: . Jde o #8 a #9.

laicky receno to vypada, ze obsah registru (resp. spis jakasi stinova informace o typu hodnoty, v nem ulozene) se po zavolani funkce "ztrati", a to i presto, ze prislusna hodnota v tomto regsitru stale je (volana fce puvodni obsah registru uklada a zase vraci).

Kodem receno: (du6-test8)

Kód: Vybrat vše

TWO:
38:	EPUSH	R0	       // ulozeni puvodni hodnoty R0 na svuj stack
39:	ELDLITI	R0,LITINT[0]    // naplneni R0
40:	LESTI	[-1],R0            // ulozeni obsahu R0 na ocekavane misto, vyhrazene volajici fci pro navratovou hodnotu
41:	EPOP	R0	      // vraceni puvodni hodnoty R0
42:	RET
DU6TEST:
43:	ELDLITI	R0,LITINT[1]	    // naplneni R0
44:	INITI			    // vyhrazeni mista pro navratovou hodnotu fce TWO
45:	CALL	38	;; label=TWO	   // zavolani TWO
46:	EPOPI	R1			  // ulozeni vracene hodnoty TWO do R1
47:	EGTI	R0,R0,R1		        // tady to rve, jakoby v R0 ten puvodni int uz nebyl, ale on tam je
48:	JEF	6,R0	;; target=54
[...]
Pokud nekdo podobny problem resil a vyresil (v #9 je to v principu o tom samem), prosim, hodte sem nejaky hinty, protoze me uz po 2 dnech opravdu dosla invence, jak na to.

Nahoru