• Home
  • Raw
  • Download

Lines Matching refs:Inst

50     Instruction *Inst;  member
52 SimpleValue(Instruction *I) : Inst(I) { in SimpleValue()
57 return Inst == DenseMapInfo<Instruction*>::getEmptyKey() || in isSentinel()
58 Inst == DenseMapInfo<Instruction*>::getTombstoneKey(); in isSentinel()
61 static bool canHandle(Instruction *Inst) { in canHandle()
63 if (CallInst *CI = dyn_cast<CallInst>(Inst)) in canHandle()
65 return isa<CastInst>(Inst) || isa<BinaryOperator>(Inst) || in canHandle()
66 isa<GetElementPtrInst>(Inst) || isa<CmpInst>(Inst) || in canHandle()
67 isa<SelectInst>(Inst) || isa<ExtractElementInst>(Inst) || in canHandle()
68 isa<InsertElementInst>(Inst) || isa<ShuffleVectorInst>(Inst) || in canHandle()
69 isa<ExtractValueInst>(Inst) || isa<InsertValueInst>(Inst); in canHandle()
93 Instruction *Inst = Val.Inst; in getHashValue() local
95 if (BinaryOperator* BinOp = dyn_cast<BinaryOperator>(Inst)) { in getHashValue()
112 if (CmpInst *CI = dyn_cast<CmpInst>(Inst)) { in getHashValue()
116 if (Inst->getOperand(0) > Inst->getOperand(1)) { in getHashValue()
120 return hash_combine(Inst->getOpcode(), Pred, LHS, RHS); in getHashValue()
123 if (CastInst *CI = dyn_cast<CastInst>(Inst)) in getHashValue()
126 if (const ExtractValueInst *EVI = dyn_cast<ExtractValueInst>(Inst)) in getHashValue()
130 if (const InsertValueInst *IVI = dyn_cast<InsertValueInst>(Inst)) in getHashValue()
135 assert((isa<CallInst>(Inst) || isa<BinaryOperator>(Inst) || in getHashValue()
136 isa<GetElementPtrInst>(Inst) || isa<SelectInst>(Inst) || in getHashValue()
137 isa<ExtractElementInst>(Inst) || isa<InsertElementInst>(Inst) || in getHashValue()
138 isa<ShuffleVectorInst>(Inst)) && "Invalid/unknown instruction"); in getHashValue()
141 return hash_combine(Inst->getOpcode(), in getHashValue()
142 hash_combine_range(Inst->value_op_begin(), in getHashValue()
143 Inst->value_op_end())); in getHashValue()
147 Instruction *LHSI = LHS.Inst, *RHSI = RHS.Inst; in isEqual()
198 Instruction *Inst; member
200 CallValue(Instruction *I) : Inst(I) { in CallValue()
205 return Inst == DenseMapInfo<Instruction*>::getEmptyKey() || in isSentinel()
206 Inst == DenseMapInfo<Instruction*>::getTombstoneKey(); in isSentinel()
209 static bool canHandle(Instruction *Inst) { in canHandle()
211 if (Inst->getType()->isVoidTy()) in canHandle()
214 CallInst *CI = dyn_cast<CallInst>(Inst); in canHandle()
240 Instruction *Inst = Val.Inst; in getHashValue() local
243 for (unsigned i = 0, e = Inst->getNumOperands(); i != e; ++i) { in getHashValue()
244 assert(!Inst->getOperand(i)->getType()->isMetadataTy() && in getHashValue()
246 Res ^= getHash(Inst->getOperand(i)) << (i & 0xF); in getHashValue()
250 return (Res << 1) ^ Inst->getOpcode(); in getHashValue()
254 Instruction *LHSI = LHS.Inst, *RHSI = RHS.Inst; in isEqual()
432 Instruction *Inst = I++; in INITIALIZE_PASS_DEPENDENCY() local
435 if (isInstructionTriviallyDead(Inst, TLI)) { in INITIALIZE_PASS_DEPENDENCY()
436 DEBUG(dbgs() << "EarlyCSE DCE: " << *Inst << '\n'); in INITIALIZE_PASS_DEPENDENCY()
437 Inst->eraseFromParent(); in INITIALIZE_PASS_DEPENDENCY()
445 if (Value *V = SimplifyInstruction(Inst, TD, TLI, DT)) { in INITIALIZE_PASS_DEPENDENCY()
446 DEBUG(dbgs() << "EarlyCSE Simplify: " << *Inst << " to: " << *V << '\n'); in INITIALIZE_PASS_DEPENDENCY()
447 Inst->replaceAllUsesWith(V); in INITIALIZE_PASS_DEPENDENCY()
448 Inst->eraseFromParent(); in INITIALIZE_PASS_DEPENDENCY()
455 if (SimpleValue::canHandle(Inst)) { in INITIALIZE_PASS_DEPENDENCY()
457 if (Value *V = AvailableValues->lookup(Inst)) { in INITIALIZE_PASS_DEPENDENCY()
458 DEBUG(dbgs() << "EarlyCSE CSE: " << *Inst << " to: " << *V << '\n'); in INITIALIZE_PASS_DEPENDENCY()
459 Inst->replaceAllUsesWith(V); in INITIALIZE_PASS_DEPENDENCY()
460 Inst->eraseFromParent(); in INITIALIZE_PASS_DEPENDENCY()
467 AvailableValues->insert(Inst, Inst); in INITIALIZE_PASS_DEPENDENCY()
472 if (LoadInst *LI = dyn_cast<LoadInst>(Inst)) { in INITIALIZE_PASS_DEPENDENCY()
482 AvailableLoads->lookup(Inst->getOperand(0)); in INITIALIZE_PASS_DEPENDENCY()
484 DEBUG(dbgs() << "EarlyCSE CSE LOAD: " << *Inst << " to: " in INITIALIZE_PASS_DEPENDENCY()
486 if (!Inst->use_empty()) Inst->replaceAllUsesWith(InVal.first); in INITIALIZE_PASS_DEPENDENCY()
487 Inst->eraseFromParent(); in INITIALIZE_PASS_DEPENDENCY()
494 AvailableLoads->insert(Inst->getOperand(0), in INITIALIZE_PASS_DEPENDENCY()
495 std::pair<Value*, unsigned>(Inst, CurrentGeneration)); in INITIALIZE_PASS_DEPENDENCY()
501 if (Inst->mayReadFromMemory()) in INITIALIZE_PASS_DEPENDENCY()
505 if (CallValue::canHandle(Inst)) { in INITIALIZE_PASS_DEPENDENCY()
508 std::pair<Value*, unsigned> InVal = AvailableCalls->lookup(Inst); in INITIALIZE_PASS_DEPENDENCY()
510 DEBUG(dbgs() << "EarlyCSE CSE CALL: " << *Inst << " to: " in INITIALIZE_PASS_DEPENDENCY()
512 if (!Inst->use_empty()) Inst->replaceAllUsesWith(InVal.first); in INITIALIZE_PASS_DEPENDENCY()
513 Inst->eraseFromParent(); in INITIALIZE_PASS_DEPENDENCY()
520 AvailableCalls->insert(Inst, in INITIALIZE_PASS_DEPENDENCY()
521 std::pair<Value*, unsigned>(Inst, CurrentGeneration)); in INITIALIZE_PASS_DEPENDENCY()
528 if (Inst->mayWriteToMemory()) { in INITIALIZE_PASS_DEPENDENCY()
531 if (StoreInst *SI = dyn_cast<StoreInst>(Inst)) { in INITIALIZE_PASS_DEPENDENCY()
537 << *Inst << '\n'); in INITIALIZE_PASS_DEPENDENCY()