This is an archive of the discontinued LLVM Phabricator instance.

[CallSiteSplitting]use constrained argument from single predecessors
AbandonedPublic

Authored by junbuml on Jan 5 2018, 11:46 AM.

Details

Summary

If a call-site has a single predecessor, we can simply use more constrained
arguments if its argument is predicated from the single predecessor.

Diff Detail

Event Timeline

junbuml created this revision.Jan 5 2018, 11:46 AM
mcrosier added inline comments.Jan 5 2018, 1:29 PM
lib/Transforms/Scalar/CallSiteSplitting.cpp
375
return canSplitCallSite(CS) && (tryToSplitOnPredicatedArgument(CS) ||
       tryToSplitOnPHIPredicatedArgument(CS));
fhahn added a comment.Jan 5 2018, 2:54 PM

Is CallSiteSplitting the right place to do this? Wouldn't it be a better fit for more general constraint propagation, like correlated value propagation/ LazyValueInfo?

fhahn resigned from this revision.Nov 8 2018, 4:09 AM

instcombine now propagates nonnull in the cases mentioned here. I'll resign to clear up my pipeline.

junbuml abandoned this revision.Nov 8 2018, 9:50 AM

Thanks Florian for the update.