Read this wiki page to understand what the goal is: https://en.wikipedia.org/wiki/Static_single_assignment_form
Basically, SSA-form allows certain optimizations that are harder without it, but SSA is also itself hard to apply. SSA examples are often posed in the form of simple variables, but real code has structs and arrays and maps and slices. So they mark things that are worth the effort of applying SSA to and things they've (the compiler writers, that is) have decided are not worth of pushing down to an SSA form. So, the special purpose it serves is to enable a class of optimizations. And the difference from non-SSA-able values is simply one of cost/benefit. Non-SSA-able values are actually those where implementing SSA was deemed either not possible or too expensive (either in terms of time, or code, or just the compiler author's brainspace). -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/24f48b18-3bd8-4796-bfac-6deb965da99b%40googlegroups.com.