News for hackers. Stuff that matters.
Re:Show HN: C to Go Assembly by mhh__ on Wednesday May 24, 2017 @07:44PM (#14414313)
So, is go assembly the IR inside the Go compiler?
Re:Show HN: C to Go Assembly by fwessels on Wednesday May 24, 2017 @07:55PM (#14414354)
No, it is not an IR code such as in Java or .Net. At compile time it is translated into opcodes for the corresponding architecture that you are compiling for.
Re:Show HN: C to Go Assembly by chrisseaton on Wednesday May 24, 2017 @09:11PM (#14414670)
I disagree. I think saying that it's the lowered intermediate representation in the Go compiler pipeline is a really good description. It's equivalent to the LIR in Java's C2 compiler. I'm not sure what the equivalent is in .net.

Fundamentally, it's a representation and it's intermediate isn't it?

Re:Show HN: C to Go Assembly by uluyol on Thursday May 25, 2017 @12:08AM (#14415244)
No, not really. Go's assembly might be considered somewhat higher level than regular assembly code, but it's certainly architecture specific. The examples highlighted use x86 SIMD instructions unavailable on other architectures.

Freedoms taken by the go assemblers also seem to be decreasing as the compiler becomes smarter. E.g. instruction reordering is no longer performed (https://github.com/golang/go/issues/15837).

You can read about the assemblers here: https://golang.org/doc/asm

Re:Show HN: C to Go Assembly by chrisseaton on Thursday May 25, 2017 @04:55AM (#14416114)
Yes I know it's architecture specific. Many lowered IRs are. The equivalent I gave, Java's C2 IR, is also architecture specific, which is why I used it.