IBM Power, including the AIX, IBM i, and Linux operating systems, support a wide range of programming languages, catering to both traditional enterprise applications and modern development needs.
#Power
Register Allocation on SSA Graphs.
The SSA graph has the property that def dominates uses. This makes the SSA graph strict. Due to this property the live range is the subset of dominator tree. The live range L1 interferes the L2 if the def of L1 dominates the def of L2. And if the L2 interferes with L3 then the def of L2 dominates the def of L3. This makes the def of L1 dominates the def of L3. This makes a chord and the chordal graph is colorable.
Due to the dominance property of SSA Graph, allocator become a tree scan which is a scan of the dominator tree which requires no building of interference graph. More explanation is given in the description of SSA.
Register Allocator on JIT compilation.
In the JIT compilation the register allocator should be light weight. In the Graph coloring based register allocator the interference graph needs to be built many times after the decision of spilling. This causes register allocator based on JIT compilation unsuitable. The register allocator based on SSA graph does not need to be built the interference graph many times as the chordal graph is colorable.
There are the allocators like Linear scan which makes it to be suitable for JIT compilation.
Copy