LLVM 19.0.0git
Macros | Functions
FastISel.cpp File Reference
#include "llvm/CodeGen/FastISel.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APSInt.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/BranchProbabilityInfo.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/CodeGen/Analysis.h"
#include "llvm/CodeGen/FunctionLoweringInfo.h"
#include "llvm/CodeGen/ISDOpcodes.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineMemOperand.h"
#include "llvm/CodeGen/MachineModuleInfo.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/StackMaps.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/CodeGen/ValueTypes.h"
#include "llvm/CodeGenTypes/MachineValueType.h"
#include "llvm/IR/Argument.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/CallingConv.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/DiagnosticInfo.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GetElementPtrTypeIterator.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/InlineAsm.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Mangler.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Operator.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/User.h"
#include "llvm/IR/Value.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCInstrDesc.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetOptions.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <iterator>
#include <optional>
#include <utility>

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "isel"
 

Functions

 STATISTIC (NumFastIselSuccessIndependent, "Number of insts selected by " "target-independent selector")
 
 STATISTIC (NumFastIselSuccessTarget, "Number of insts selected by " "target-specific selector")
 
 STATISTIC (NumFastIselDead, "Number of dead insts removed on failure")
 
static Register findLocalRegDef (MachineInstr &MI)
 Return the defined register if this instruction defines exactly one virtual register and uses no other virtual registers.
 
static bool isRegUsedByPhiNodes (Register DefReg, FunctionLoweringInfo &FuncInfo)
 
static AttributeList getReturnAttrs (FastISel::CallLoweringInfo &CLI)
 Returns an AttributeList representing the attributes applied to the return value of the given call.
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "isel"

Definition at line 113 of file FastISel.cpp.

Function Documentation

◆ findLocalRegDef()

static Register findLocalRegDef ( MachineInstr MI)
static

Return the defined register if this instruction defines exactly one virtual register and uses no other virtual registers.

Otherwise return 0.

Definition at line 160 of file FastISel.cpp.

References MI.

◆ getReturnAttrs()

static AttributeList getReturnAttrs ( FastISel::CallLoweringInfo CLI)
static

◆ isRegUsedByPhiNodes()

static bool isRegUsedByPhiNodes ( Register  DefReg,
FunctionLoweringInfo FuncInfo 
)
static

Definition at line 177 of file FastISel.cpp.

References P, and llvm::FunctionLoweringInfo::PHINodesToUpdate.

◆ STATISTIC() [1/3]

STATISTIC ( NumFastIselDead  ,
"Number of dead insts removed on failure"   
)

◆ STATISTIC() [2/3]

STATISTIC ( NumFastIselSuccessIndependent  ,
"Number of insts selected by " "target-independent selector"   
)

◆ STATISTIC() [3/3]

STATISTIC ( NumFastIselSuccessTarget  ,
"Number of insts selected by " "target-specific selector"   
)