[PATCH] D94891: [Coroutine] Remain alignment information when merging frame variables
Chuanqi Xu via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 19 17:48:26 PST 2021
ChuanqiXu added inline comments.
================
Comment at: llvm/lib/Transforms/Coroutines/CoroFrame.cpp:608-612
+ bool Alignable = [&]() -> bool {
+ auto *LargestAlloca = *AllocaSet.begin();
+ return LargestAlloca->getAlign().value() % Alloca->getAlign().value() ==
+ 0;
+ }();
----------------
jmorse wrote:
> This doesn't need to be a lambda, it's only called once
I wonder if the logic could be more clear when we wrap the code in lambda.
================
Comment at: llvm/lib/Transforms/Coroutines/CoroFrame.cpp:1123
Builder.CreateInBoundsGEP(FrameTy, FramePtr, Indices));
- if (isa<AllocaInst>(Orig)) {
+ if (auto *AI = dyn_cast<AllocaInst>(Orig)) {
// If the type of GEP is not equal to the type of AllocaInst, it implies
----------------
lxfind wrote:
> Is this change unintentional? It seems to be AI and Orig is the same thing. What's the reason to use AI below instead of just Orig?
Oh, yes, it is unintentional change. I would revert this change.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D94891/new/
https://reviews.llvm.org/D94891
More information about the llvm-commits
mailing list