PRE Value Numberer Replacement
- The current value numberer used by our tree PRE implementation has some weaknesses. It cannot value number stores properly, and does not detect equivalences that involve PHI nodes. This work implements an SCC based value numbered as the value numbering pass for FRE/PRE, which enables it to detect when phi nodes (and stores) have the same value, as well as doing simplifications during value numbering. This enables FRE/PRE to do a better job of elimination, which fixes a few outstanding missed-optimization PR's. The new value numberer is actually faster than the old one, even though it is doing a better job.
Personnel
- Daniel Berlin
Delivery Date
- This optimization will be ready by 2006-10-01.
Benefits
- FRE/PRE will generate better code.
Dependencies
- None
Modifications Required
- Implementation of the new value numberer involves adding a new file, tree-ssa-sccvn, and hooking up it's results to FRE/PRE. The old value numbering implementation will be removed.
A patch was posted here: http://gcc.gnu.org/ml/gcc-patches/2007-06/msg01155.html