If a call-site has a single predecessor, we can simply use more constrained
arguments if its argument is predicated from the single predecessor.
Details
Details
Diff Detail
Diff Detail
Event Timeline
| lib/Transforms/Scalar/CallSiteSplitting.cpp | ||
|---|---|---|
| 375 | return canSplitCallSite(CS) && (tryToSplitOnPredicatedArgument(CS) ||
tryToSplitOnPHIPredicatedArgument(CS)); | |
Comment Actions
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?
Comment Actions
instcombine now propagates nonnull in the cases mentioned here. I'll resign to clear up my pipeline.
return canSplitCallSite(CS) && (tryToSplitOnPredicatedArgument(CS) || tryToSplitOnPHIPredicatedArgument(CS));