[PATCH] D125009: [ArgPromotion] Use common alignment for loads in caller
Nikita Popov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri May 6 02:40:42 PDT 2022
nikic added inline comments.
================
Comment at: llvm/lib/Transforms/IPO/ArgumentPromotion.cpp:521
+ Align ArgAlign = Arg->getParamAlign().valueOrOne();
+ Align PartAlign = std::max(LI->getAlign(), ArgAlign);
auto Pair = ArgParts.try_emplace(
----------------
Isn't this incorrect for non-zero offsets?
Overall, I'm not sure I really understand what you're trying to achieve here. What we're interested here is whether loads are speculatable, which is the case when they are defereferenceable and aligned. This can be either because the load is guaranteed to execute, or because we have known dereferenceability/alignment knowledge. Byval deref/align will be taken into account for the latter check (allCallersPassValidPointerForArgument).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D125009/new/
https://reviews.llvm.org/D125009
More information about the llvm-commits
mailing list