Lines Matching full:instruction
60 void determineLiveOperandBits(const Instruction *UserI,
61 const Instruction *I, unsigned OperandNo,
79 static bool isAlwaysLive(Instruction *I) {
84 void BDCE::determineLiveOperandBits(const Instruction *UserI,
85 const Instruction *I, unsigned OperandNo,
115 case Instruction::Call:
116 case Instruction::Invoke:
147 case Instruction::Add:
148 case Instruction::Sub:
154 case Instruction::Shl:
170 case Instruction::LShr:
183 case Instruction::AShr:
202 case Instruction::And:
213 if (!isa<Instruction>(UserI->getOperand(0)))
218 case Instruction::Or:
229 if (!isa<Instruction>(UserI->getOperand(0)))
234 case Instruction::Xor:
235 case Instruction::PHI:
238 case Instruction::Trunc:
241 case Instruction::ZExt:
244 case Instruction::SExt:
254 case Instruction::Select:
268 DenseMap<Instruction *, APInt> AliveBits;
269 SmallVector<Instruction*, 128> Worklist;
272 SmallPtrSet<Instruction*, 128> Visited;
275 for (Instruction &I : inst_range(F)) {
281 // bits and add the instruction to the work list. For other instructions
295 if (Instruction *J = dyn_cast<Instruction>(OI)) {
302 // check isAlwaysLive on every instruction when searching for dead
309 Instruction *UserI = Worklist.pop_back_val();
327 if (Instruction *I = dyn_cast<Instruction>(OI)) {
368 for (Instruction &I : inst_range(F)) {
399 for (Instruction *&I : Worklist) {