Lines Matching defs:FastISel

1 //===- FastISel.cpp - Implementation of the FastISel class ----------------===//
9 // This file contains the implementation of the FastISel class.
41 #include "llvm/CodeGen/FastISel.h"
123 void FastISel::startNewBlock() {
136 void FastISel::finishBasicBlock() { flushLocalValueMap(); }
138 bool FastISel::lowerArguments() {
185 void FastISel::flushLocalValueMap() {
186 // If FastISel bails out, it could leave local value instructions behind
220 // FastISel started doing anything; it points to the last one, so the
238 Register FastISel::getRegForValue(const Value *V) {
240 // Don't handle non-simple values in FastISel.
246 // of whether FastISel can handle them.
279 Register FastISel::materializeConstant(const Value *V, MVT VT) {
331 Register FastISel::materializeRegForValue(const Value *V, MVT VT) {
351 Register FastISel::lookUpRegForValue(const Value *V) {
362 void FastISel::updateValueMap(const Value *I, Register Reg, unsigned NumRegs) {
383 Register FastISel::getRegForGEPIndex(MVT PtrVT, const Value *Idx) {
400 void FastISel::recomputeInsertPt() {
409 void FastISel::removeDeadCode(MachineBasicBlock::iterator I,
429 FastISel::SavePoint FastISel::enterLocalValueArea() {
435 void FastISel::leaveLocalValueArea(SavePoint OldInsertPt) {
443 bool FastISel::selectBinaryOp(const User *I, unsigned ISDOpcode) {
530 bool FastISel::selectGetElementPtr(const User *I) {
612 bool FastISel::addStackMapLiveVars(SmallVectorImpl<MachineOperand> &Ops,
642 bool FastISel::selectStackmap(const CallInst *I) {
719 bool FastISel::lowerCallOperands(const CallInst *CI, unsigned ArgIdx,
745 FastISel::CallLoweringInfo &FastISel::CallLoweringInfo::setCallee(
754 bool FastISel::selectPatchpoint(const CallInst *I) {
901 bool FastISel::selectXRayCustomEvent(const CallInst *I) {
920 bool FastISel::selectXRayTypedEvent(const CallInst *I) {
943 static AttributeList getReturnAttrs(FastISel::CallLoweringInfo &CLI) {
956 bool FastISel::lowerCallTo(const CallInst *CI, const char *SymName,
965 bool FastISel::lowerCallTo(const CallInst *CI, MCSymbol *Symbol,
994 bool FastISel::lowerCallTo(CallLoweringInfo &CLI) {
1114 bool FastISel::lowerCall(const CallInst *CI) {
1155 bool FastISel::selectCall(const User *I) {
1192 void FastISel::handleDbgInfo(const Instruction *II) {
1236 bool FastISel::lowerDbgValue(const Value *V, DIExpression *Expr,
1322 bool FastISel::lowerDbgDeclare(const Value *Address, DIExpression *Expr,
1381 bool FastISel::selectIntrinsicCall(const IntrinsicInst *II) {
1485 bool FastISel::selectCast(const User *I, unsigned Opcode) {
1516 bool FastISel::selectBitCast(const User *I) {
1545 bool FastISel::selectFreeze(const User *I) {
1568 void FastISel::removeDeadLocalValueCode(MachineInstr *SavedLastLocalValue)
1585 bool FastISel::selectInstruction(const Instruction *I) {
1605 // FastISel does not handle any operand bundles except OB_funclet.
1669 void FastISel::fastEmitBranch(MachineBasicBlock *MSucc,
1693 void FastISel::finishCondBranch(const BasicBlock *BranchBB,
1712 bool FastISel::selectFNeg(const User *I, const Value *In) {
1754 bool FastISel::selectExtractValue(const User *U) {
1794 bool FastISel::selectOperator(const User *I, unsigned Opcode) {
1923 llvm_unreachable("FastISel shouldn't visit PHI nodes!");
1931 FastISel::FastISel(FunctionLoweringInfo &FuncInfo,
1942 FastISel::~FastISel() = default;
1944 bool FastISel::fastLowerArguments() { return false; }
1946 bool FastISel::fastLowerCall(CallLoweringInfo & /*CLI*/) { return false; }
1948 bool FastISel::fastLowerIntrinsicCall(const IntrinsicInst * /*II*/) {
1952 unsigned FastISel::fastEmit_(MVT, MVT, unsigned) { return 0; }
1954 unsigned FastISel::fastEmit_r(MVT, MVT, unsigned, unsigned /*Op0*/) {
1958 unsigned FastISel::fastEmit_rr(MVT, MVT, unsigned, unsigned /*Op0*/,
1963 unsigned FastISel::fastEmit_i(MVT, MVT, unsigned, uint64_t /*Imm*/) {
1967 unsigned FastISel::fastEmit_f(MVT, MVT, unsigned,
1972 unsigned FastISel::fastEmit_ri(MVT, MVT, unsigned, unsigned /*Op0*/,
1981 Register FastISel::fastEmit_ri_(MVT VT, unsigned Opcode, unsigned Op0,
2016 Register FastISel::createResultReg(const TargetRegisterClass *RC) {
2020 Register FastISel::constrainOperandRegClass(const MCInstrDesc &II, Register Op,
2037 Register FastISel::fastEmitInst_(unsigned MachineInstOpcode,
2046 Register FastISel::fastEmitInst_r(unsigned MachineInstOpcode,
2067 Register FastISel::fastEmitInst_rr(unsigned MachineInstOpcode,
2091 Register FastISel::fastEmitInst_rrr(unsigned MachineInstOpcode,
2118 Register FastISel::fastEmitInst_ri(unsigned MachineInstOpcode,
2141 Register FastISel::fastEmitInst_rii(unsigned MachineInstOpcode,
2166 Register FastISel::fastEmitInst_f(unsigned MachineInstOpcode,
2186 Register FastISel::fastEmitInst_rri(unsigned MachineInstOpcode,
2212 Register FastISel::fastEmitInst_i(unsigned MachineInstOpcode,
2229 Register FastISel::fastEmitInst_extractsubreg(MVT RetVT, unsigned Op0,
2243 Register FastISel::fastEmitZExtFromI1(MVT VT, unsigned Op0) {
2253 bool FastISel::handlePHINodesInSuccessorBlocks(const BasicBlock *LLVMBB) {
2282 // own moves. Second, this check is necessary because FastISel doesn't
2315 bool FastISel::tryToFoldLoad(const LoadInst *LI, const Instruction *FoldInst) {
2376 bool FastISel::canFoldAddIntoGEP(const User *GEP, const Value *Add) {
2393 FastISel::createMachineMemOperandFor(const Instruction *I) const {
2440 CmpInst::Predicate FastISel::optimizeCmpPredicate(const CmpInst *CI) const {