In the optimizer (GVN etc.) when eliminating redundant nodes with different flags, the flags are ignored for the purposes of testing for congruence, and then intersected for the purposes of producing a result that supports the union of all the uses. Attached is a rough patch which implements the same policy for SelectionDAG's CSE, which fixed the testcases in PR26063 and which I'm posting now to get feedback on the approach.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
This seems like the most-useful approach (LGTM).
test/CodeGen/ARM/cse-flags.ll | ||
---|---|---|
54 ↗ | (On Diff #44227) | Please cleanup the unneeded function attributes and metadata. |