- User Since
- Jan 23 2017, 8:11 PM (138 w, 6 d)
Feb 21 2019
Feb 20 2019
Feb 19 2019
Ok. Then I suggest to hold it off unless we see a case where unswitch doesn't do its job and this does.
The main motivation is unification - I don't want to leave a single thing that is supported for intrinsic guards and not supported for control flow guards. Unswitching has known problems related to exponential code size growth, so I don't want our ability to eliminate guards in loops to depend on its cost model.
Feb 17 2019
Feb 15 2019
Feb 14 2019
Feb 13 2019
I did not look into this too deeply, but the problem you're describing sounds like it can be solved by setting InsertPt to getFirstNonPHI at some point.
LGTM. Thakns a lot for doing this!
LGTM, but use forgetTopmostLoop instead.
Looks like there is a lot of places in code that expect that... :(
Added test with mixed guards (both intrinsic and widenable conditions).
Feb 12 2019
Moved print after check.
Feb 11 2019
I'll split out changes in basic block utils as separate NFC, then submit change in LoopSimplifyCFG separately.
Feb 10 2019
Feb 8 2019
Feb 6 2019
Actually I am just confused by the number of different ways to do the same thing, all having different bugs inside. If using DTU.applyUpdates is the right day now, I'm ok with that.
Removed redundant code by an NFC, rebased.