HSSA: Aliases in SSA

Massimiliano Mantione


Executive summary

Detailed Summary

When do we have aliasing?

Modeling aliasing effects

SSA with "zero versioning"

A definition of "real occurrence"

"Zero version" variables

Detecting zero versions, part one

Detecting zero versions, part two

Considerations on zero versions

Indirect memory operations in SSA

The problems with indirect variables

Introducing "virtual variables"

Handling virtual variables: aliasing

Handling virtual variables: SSA

GVN and indirect memory operations

Building HSSA (part 1: SSA form)

Building HSSA (part 2: zero versions)

Building HSSA (part 3a: applying GVN)

Building HSSA (part 3b: ivar equality)

Building HSSA (part 3c: unreal ops.)

Using HSSA

HSSA in the real world


Thank you all!

Things I did using SSA

  • Array Bounds Check Removal (and predication in general)
  • Partial Redundancy Elimination (using SSAPRE)
  • An attemp at HSSA
  • An attempt at building SSA fast and doing a register allocator