At the end of a basic block, RDA adjusts all the reaching defs it found to be relative to the end of the basic block, rather than the start of it. However, it also does this to registers which don't have a reaching def, indicated by ReachingDefDefaultVal. This means that at the entry of a successor block, we end up not skipping these incoming reaching definitions, and insert them into the reaching definition list. This is ultimately harmless, but causes unnecessary work and is logically not right.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo