[PATCH] D150900: [InstCombine] Insert a bitcast to enable merging similar store insts
Nikita Popov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu May 18 13:35:19 PDT 2023
nikic requested changes to this revision.
nikic added inline comments.
This revision now requires changes to proceed.
================
Comment at: llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp:1594
+ !OSVTy->isSingleValueType() || OSVTy->isVectorTy() ||
+ SIVTy->getPrimitiveSizeInBits() != OSVTy->getPrimitiveSizeInBits())
+ return nullptr;
----------------
Check for `isBitOrNoopPointerCastable()` instead, and please add a test that requires inserting ptrtoint or inttoptr.
Also this is missing a check for hasSameSpecialState(). Please add a test with for example different alignments.
================
Comment at: llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp:1602
+ auto *NewOtherStore = new StoreInst(NewVal, OtherStore->getPointerOperand(),
+ OtherStore->getParent());
+
----------------
You should only insert the bitcast when actually doing the transform. We should not inserting if the transform is aborted later.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D150900/new/
https://reviews.llvm.org/D150900
More information about the llvm-commits
mailing list