News for hackers. Stuff that matters.
Re:Go 1.7 is released by UniQP on Tuesday August 16, 2016 @08:33AM (#12297010)
You can stay in SSA form even after register allocation. In libFirm the assigned registers are just attributes of the values in the SSA representation. There was some additional discussion regarding this in [1].

GCC uses a separate representation (RTL) for their backend that is not in SSA form [2]. LLVM stays in SSA form for some backend phases but lowers the SSA form before register allocation (as also mentioned in [1]).

I took a quick look at the C2 and the Graal compiler. C2 seems to use LLVM's code generator (and thus lowers SSA before register allocation) but Graal seems to support SSA-based register allocation, nice.

[1] https://news.ycombinator.com/item?id=11210948

[2] https://en.wikibooks.org/wiki/GNU_C_Compiler_Internals/GNU_C...

Re:Go 1.7 is released by zigzigzag on Tuesday August 16, 2016 @01:22PM (#12298968)
I think you didn't understand Chris' post.

C2 is the HotSpot Server compiler. It definitely does not use LLVM anywhere.

Re:Go 1.7 is released by UniQP on Tuesday August 16, 2016 @05:55PM (#12300926)
Since there is also a programming language called C2, I took a look at the wrong compiler.

Can you provide a link to the source code?

Re:Go 1.7 is released by zigzigzag on Sunday August 21, 2016 @07:45AM (#12330540)