The patch addresses a single transform of selection DAG optimization, namely a few special cases of undef optimization, extending the guard for isFast on the SDNodeFlags passed to getNode for fadd, fsub, fmul, fdiv and frem.
Diff Detail
Diff Detail
Event Timeline
Comment Actions
This review is initially for discussion over the issues in undef that have yet to be resolved. I will change the patch as needed as we go.
Comment Actions
Updated test for addition of Flag information. I will remove SelectionDAGBuilder.cpp if D46968 gets checked in first or visa versa as the change is needed in both places for correct behavior.
Comment Actions
Sorry if my earlier comment wasn't clear, but this is functionally wrong. These folds shouldn't depend on unsafe/fast at all...assuming we're going to use the same logic that we do in IR. I'm working on that patch. I think you can ignore this part of the FMF problem for now and work on independent parts of the puzzle?