Home | History | Annotate | Download | only in SelectionDAG

Lines Matching full:instruction

12 // "Fast" instruction selection is designed to emit very poor code quickly.
20 // "Fast" instruction selection is able to fail gracefully and transfer
25 // The intended use for "fast" instruction selection is "-O0" mode
30 // time. Despite its limitations, "fast" instruction selection is able to
35 // the same instruction descriptions that the SelectionDAG selector reads,
80 // contains labels or copies, use the last instruction as the last local
115 const Instruction *I = dyn_cast<Instruction>(V);
133 !(I->getOpcode() == Instruction::BitCast ||
134 I->getOpcode() == Instruction::PtrToInt ||
135 I->getOpcode() == Instruction::IntToPtr) &&
136 cast<Instruction>(*I->use_begin())->getParent() == I->getParent();
164 if (isa<Instruction>(V) &&
226 if (!isa<Instruction>(Op) ||
227 !TargetSelectInstruction(cast<Instruction>(Op)))
262 /// instruction, or insert an extra copy to get the result in a previous
268 if (!isa<Instruction>(I)) {
354 /// SelectBinaryOp - Select and emit code for a binary operator instruction,
363 // We only handle legal types. For example, on x86-32 the instruction
381 if (isa<Instruction>(I) && cast<Instruction>(I)->isCommutative()) {
392 // We successfully emitted code for the given LLVM Instruction.
427 // We successfully emitted code for the given LLVM Instruction.
437 Instruction.
450 // Now we have both operands in registers. Emit the instruction.
460 // We successfully emitted code for the given LLVM Instruction.
555 // We successfully emitted code for the given LLVM Instruction.
637 if (!Op && !Address->use_empty() && isa<Instruction>(Address) &&
821 FastISel::SelectInstruction(const Instruction *I) {
822 // Just before the terminator instruction, insert instructions to
857 // Next, try calling the target to attempt to handle the instruction.
881 // For more accurate line information if this is the only instruction
961 else if (isa<Instruction>(Op0))
982 case Instruction::Add:
984 case Instruction::FAdd:
986 case Instruction::Sub:
988 case Instruction::FSub:
993 case Instruction::Mul:
995 case Instruction::FMul:
997 case Instruction::SDiv:
999 case Instruction::UDiv:
1001 case Instruction::FDiv:
1003 case Instruction::SRem:
1005 case Instruction::URem:
1007 case Instruction::FRem:
1009 case Instruction::Shl:
1011 case Instruction::LShr:
1013 case Instruction::AShr:
1015 case Instruction::And:
1017 case Instruction::Or:
1019 case Instruction::Xor:
1022 case Instruction::GetElementPtr:
1025 case Instruction::Br: {
1040 case Instruction::Unreachable:
1044 case Instruction::Alloca:
1052 case Instruction::Call:
1055 case Instruction::BitCast:
1058 case Instruction::FPToSI:
1060 case Instruction::ZExt:
1062 case Instruction::SExt:
1064 case Instruction::Trunc:
1066 case Instruction::SIToFP:
1069 case Instruction::IntToPtr: // Deliberate fall-through.
1070 case Instruction::PtrToInt: {
1083 case Instruction::ExtractValue:
1086 case Instruction::PHI:
1090 // Unhandled instruction. Halt "fast" selection and bail.
1165 /// to emit an instruction with an immediate operand using FastEmit_ri.
1488 // exactly one register for each non-void instruction.
1505 if (const Instruction *Inst = dyn_cast<Instruction>(PHIOp))
1521 bool FastISel::tryToFoldLoad(const LoadInst *LI, const Instruction *FoldInst) {
1529 const Instruction *TheUser = LI->use_back();
1534 // If there are multiple or no uses of this instruction, then bail out.
1541 // If we didn't find the fold instruction, then we failed to collapse the
1553 // by a dead instruction.
1559 // may mean that the instruction got lowered to multiple MIs, or the use of
1569 // sure they get inserted in a logical place before the new instruction.