Previously, we tried to fix up the equivalences during symbolic evaluation. This does not work. Now, we change the equivalences during congruence finding, where it belongs. We also initialize the equivalence table to give a maximal answer.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
Thanks for working on this! Some initial comments inline.
lib/Transforms/Scalar/NewGVN.cpp | ||
---|---|---|
776–781 ↗ | (On Diff #82757) | This can maybe be expressed using a one-liner with the ternary operator, I find it slightly better, if you think this version is more readable you can keep it as is (I don't have a strong opinion). |
1056–1064 ↗ | (On Diff #82757) | These two changes look like they can be committed in isolation (the improved debug message && the assertion), unless the latter fires without this change. |
1104–1110 ↗ | (On Diff #82757) | This comment looks formatted in a strange way -- it could just be phab, in that case please ignore. |
1114 ↗ | (On Diff #82757) | s/expresion/expressions/ |
1591–1594 ↗ | (On Diff #82757) | Yay for the verifier. We should keep this under NDEBUG anyway as there's no bot handling LLVM_EXPENSIVE_CHECKS (because, such a shame, there are still tests failing in that configuration). |
Comments should be addressed in r290820, please feel free to add any more and i'll happily keep addressing them.