Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2015-06-16

| Channels | #divine index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
17:10 xstill mornfall: dostal jsem segv v 0x00000000022eb516 in divine::llvm::MachineState<divine::llvm::machine::NoHeapMeta>::trace(divine::llvm::machine::Frame&, divine::llvm::machine::Ca
17:10 xstill nonic<divine::llvm::machine::NoHeapMeta>&) ()
17:10 mornfall super, jak? :)
17:10 xstill ale je to release a došlo to k němu asi po > 10 minutách :-/
17:10 xstill pustil jsem normálně verify --csdr
17:12 mornfall a model?
17:12 mornfall vlákna?
17:13 xstill model je můj, 4 vlákna, s kompresí
17:13 xstill zkusím to reprodukovat s debuginfo
17:13 mornfall takhle bych řekl že to může být docela cokoliv
17:13 mornfall ok
17:17 xstill hm, ono to ovšem není deterministický asi :-/
17:27 mornfall ale teda nevim, tady ty interference grafy možná fakt nemaj perspektivu
17:27 xstill proč?
17:28 mornfall už to počítám 10 minut a jsem u fce č. 203 z 3.5 tisíce
17:28 mornfall je teda klidně možný že neumim programovat
17:29 xstill hm, to je dost bída teda
17:29 mornfall a ten andersen bude asi ještě výrazně horší
17:30 mornfall (protože interference graf na čistým C modulu trvá pár vteřin a andersen 2.5 minuty)
17:30 xstill hm, to je ale dost špatný potom
17:31 xstill jakou to má vlastně složitost tyhle analýzy?
17:32 mornfall interference graf je +/- O(n²) k velikosti fce (pro každou fci samostatně)
17:32 mornfall andersen je určitě superlineární ve velikosti modulu
17:36 mornfall (no, teda superlineární v počtu instrukcí které hrabou na ukazatele)
17:38 xstill to nezní až tak hrozně
17:39 mornfall nj, jenže když je to n 7000 tak to n² je fakt hodně
17:40 xstill nojo, to jsou ty šílenosti v knihovně, že?
17:40 mornfall jo
17:54 xstill co vlastně potřebuješ spočítat, které registry můžou být potřeba naráz?
17:54 mornfall jo
17:55 xstill takže v podstatě živé registry na každém místě?
17:56 mornfall ne tak docela
17:56 xstill jakto?
17:57 mornfall no, pak by to bylo sjednocení přes všechny takové množiny které daný registr obsahují
17:58 xstill hm, nějak to nechápu
17:59 mornfall no, ty potřebujes pro každej registr množinu všech který jsou s ním někdy zároveň živý
17:59 mornfall živost v každým místě programu je něco jinýho
18:01 xstill aha tak
18:01 mornfall ale budu to teda muset počítat jinak než to dělám teď, původní verze už běží skoro 3/4 hodiny a nehla se z tý jedný funkce
18:01 mornfall vylepšená verze sice běží jen 14 minut ale už sežrala 4.5G RAM
18:03 xstill to je dost no
18:05 mornfall hm, navíc ten 'vylepšenej' algoritmus vůbec nefunguje, achjo :P
18:06 xstill a nestačí nakonec mít jen informaci odkud pokd registr žije? Pak vezmeš registry postupně a budeš jim postupně alokovat sloty, a když nějakej registr přestane žít tak ten slot znovu použiješ?
18:07 mornfall no to je ekvivalentní informace
18:08 xstill já jestli to nejde nějak z llvm rychle dostat, kde je registr živej
18:08 mornfall však jo, to je lineární ve velikosti funkce
18:08 mornfall pokud to neděláš pro každej registr je to rychlý :)
18:08 mornfall teď by se mi hodilo aby LLVM nepoužívalo goto ale come from (cf http://www.c2.com/cgi/wiki?ComeFrom)
18:10 mornfall zpětnou dosažitelností z use k def by to mohlo běhat rychlejš
18:51 mornfall no, tahle implementace celej modul zvládne za minutu
18:51 mornfall výslednej bitkód má skoro 200M
18:51 mornfall (z původních 12)
18:53 mornfall a pak teda nevím jestli to je dobře
18:55 mornfall jako na pohled to dává docela smysluplný výsledky
19:21 xstill tak to je už celkem dobrej čas asi, co tam zapisuješ, že je to tak velký?
19:21 mornfall no ten interference graf
19:21 mornfall zakódovaný do metadat
19:24 xstill aha, mi připadá, že je to nějaký moc velký
20:09 mornfall je to dost no

| Channels | #divine index | Today | | Search | Google Search | Plain-Text | summary