[llvm] [SandboxVec][BottomUpVec] Clean up dead address instrs (PR #122536)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 13 18:04:57 PST 2025
================
@@ -218,14 +220,40 @@ Value *BottomUpVec::createPack(ArrayRef<Value *> ToPack) {
return LastInsert;
}
+void BottomUpVec::collectPotentiallyDeadInstrs(ArrayRef<Value *> Bndl) {
+ for (Value *V : Bndl)
+ DeadInstrCandidates.insert(cast<Instruction>(V));
+ // Also collect the GEPs of vectorized loads and stores.
+ auto Opcode = cast<Instruction>(Bndl[0])->getOpcode();
+ switch (Opcode) {
+ case Instruction::Opcode::Load: {
+ for (Value *V : drop_begin(Bndl))
+ if (auto *Ptr =
+ dyn_cast<Instruction>(cast<LoadInst>(V)->getPointerOperand()))
+ DeadInstrCandidates.insert(Ptr);
+ break;
+ }
+ case Instruction::Opcode::Store: {
+ for (Value *V : drop_begin(Bndl))
+ if (auto *Ptr =
+ dyn_cast<Instruction>(cast<StoreInst>(V)->getPointerOperand()))
+ DeadInstrCandidates.insert(Ptr);
+ break;
+ }
+ default:
+ break;
+ }
+}
+
Value *BottomUpVec::vectorizeRec(ArrayRef<Value *> Bndl, unsigned Depth) {
Value *NewVec = nullptr;
const auto &LegalityRes = Legality->canVectorize(Bndl);
switch (LegalityRes.getSubclassID()) {
case LegalityResultID::Widen: {
auto *I = cast<Instruction>(Bndl[0]);
SmallVector<Value *, 2> VecOperands;
- switch (I->getOpcode()) {
+ auto Opcode = I->getOpcode();
----------------
vporpo wrote:
Hmm not sure, I will remove it.
https://github.com/llvm/llvm-project/pull/122536
More information about the llvm-commits
mailing list