tag:blogger.com,1999:blog-1862878851303132605.post1999690163220590545..comments2023-06-07T10:48:04.238-04:00Comments on Notes on the LHC: What is LHC?SamBhttp://www.blogger.com/profile/06560268240719951351noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-1862878851303132605.post-52789652459487897412009-01-16T23:17:00.000-05:002009-01-16T23:17:00.000-05:0023Skidoo:I don't know what to suggest. This is a h...23Skidoo:<BR/>I don't know what to suggest. This is a hard problem in computer science. If I knew how to go about solving it, I'd write a paper and collect my degree.<BR/><BR/>SamB:<BR/>Variables that point to heap objects may be changed by the garbage collector. This may or may not violate SSA since you shouldn't be able to tell the difference between the old address and the new. They still point to the same object so in some sense they haven't changed.David Himmelstruphttps://www.blogger.com/profile/12982136700651117492noreply@blogger.comtag:blogger.com,1999:blog-1862878851303132605.post-85507430268045117622009-01-16T13:05:00.000-05:002009-01-16T13:05:00.000-05:0023Skidoo: what will make the IR not SSA?23Skidoo: what will make the IR not SSA?SamBhttps://www.blogger.com/profile/06560268240719951351noreply@blogger.comtag:blogger.com,1999:blog-1862878851303132605.post-49641408752608541522009-01-15T13:44:00.000-05:002009-01-15T13:44:00.000-05:00If I understand correctly, this will make the IR n...If I understand correctly, this will make the IR not valid SSA.<BR/>Anyway, I think you should post your suggestions on the llvm-dev mailing list, the people there will surely be interested.Mikhail Glushenkovhttps://www.blogger.com/profile/16766775468165268210noreply@blogger.comtag:blogger.com,1999:blog-1862878851303132605.post-6936526082173368292009-01-15T11:10:00.000-05:002009-01-15T11:10:00.000-05:0023Skidoo:We need to mark variable as GC roots and ...23Skidoo:<BR/>We need to mark variable as GC roots and be able to modify them when garbage collecting. Adding all gc roots on the stack is not an option.David Himmelstruphttps://www.blogger.com/profile/12982136700651117492noreply@blogger.comtag:blogger.com,1999:blog-1862878851303132605.post-17221518719188773642009-01-14T22:29:00.000-05:002009-01-14T22:29:00.000-05:00What needs to be added to LLVM to make it a suitab...What needs to be added to LLVM to make it a suitable target for LHC?Mikhail Glushenkovhttps://www.blogger.com/profile/16766775468165268210noreply@blogger.comtag:blogger.com,1999:blog-1862878851303132605.post-20058274430457782932009-01-14T19:37:00.000-05:002009-01-14T19:37:00.000-05:00Roman: Yes, I meant native code generator.Ben: Yea...Roman: Yes, I meant native code generator.<BR/><BR/>Ben: Yeah, that's not efficient enough for us. We want to take full advantage of CPU registers and only spill arguments to the stack if absolutely necessary.David Himmelstruphttps://www.blogger.com/profile/12982136700651117492noreply@blogger.comtag:blogger.com,1999:blog-1862878851303132605.post-88779684065762626672009-01-14T19:22:00.000-05:002009-01-14T19:22:00.000-05:00I'm not sure what counts as "efficient" but I used...I'm not sure what counts as "efficient" but I used C as the backend language for DDC. Garbage collection can be implemented by keeping a shadow stack containing the pointers / GC roots. Exceptions can be implemented by using setjmp/longjmp.<BR/><BR/>I'm not sure how to do true tail calls in C, but you can do tail recursion just by adding a label at the top of the function and using goto in the recursive call.. depends on how you handle laziness though..Anonymoushttps://www.blogger.com/profile/08287674468193351664noreply@blogger.comtag:blogger.com,1999:blog-1862878851303132605.post-32805659543749427832009-01-14T15:51:00.000-05:002009-01-14T15:51:00.000-05:00By 'code generator', do you mean "native code" gen...By 'code generator', do you mean "native code" generator?Roman Cheplyakahttps://www.blogger.com/profile/07189392968519496723noreply@blogger.com