We no longer have to check what loads are used, all this
is performed at the start of the transform, so it's not
doing anything now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@367204
91177308-0d34-0410-b5e6-
96231b3b80d8
struct BinOpChain {
Instruction *Root;
ValueList AllValues;
- MemInstList Loads;
MemInstList VecLd; // List of all load instructions.
ValueList LHS; // List of all (narrow) left hand operands.
ValueList RHS; // List of all (narrow) right hand operands.
AllValues.push_back(V);
}
- void PopulateLoads() {
- for (auto *V : AllValues) {
- if (auto *Ld = dyn_cast<LoadInst>(V))
- Loads.push_back(Ld);
- }
- }
-
unsigned size() const { return AllValues.size(); }
bool AreSymmetrical(BinOpChain *Other);
LLVM_DEBUG(dbgs() << "Operand list too short.\n");
return false;
}
- MulChain->PopulateLoads();
ValueList &LHS = static_cast<BinOpChain*>(MulChain.get())->LHS;
ValueList &RHS = static_cast<BinOpChain*>(MulChain.get())->RHS;