In the getModRefInfo we were checking aliasing only for the actual call arguments. For cases when aliasing value was only used in the operand bundle we were returning NoModRef result (which is incorrect).
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
LGTM
lib/Analysis/BasicAliasAnalysis.cpp | ||
---|---|---|
720 ↗ | (On Diff #44988) | For clarity, it would be good to rename ArgNo to OperandNo since it can now iterate into the bundle operands not just the argument operands. Alternatively, we could replace the induction variable with the CI-CS.data_operands_begin() like we did in CaptureTracking. Doing this bit of cleanup in a separate change is fine. |
734 ↗ | (On Diff #44988) | A potential enhancement to this code would be to return MRI_Ref if the arguments which could alias the object are all readonly. This would be potentially useful for deopt bundles since all the arguments are implicitly read only. If you decide to do this, it should definitely be a separate patch. |
lib/Analysis/BasicAliasAnalysis.cpp | ||
---|---|---|
734 ↗ | (On Diff #44988) | That makes sense. I'll send a separate patch. |