24class AVRTargetMachine;
56 auto *PT = cast<PointerType>(V->getType());
57 assert(PT !=
nullptr &&
"unexpected MemSDNode");
67 auto *PT = cast<PointerType>(V->getType());
68 assert(PT !=
nullptr &&
"unexpected MemSDNode");
69 unsigned AS = PT->getAddressSpace();
76 auto *V =
N->getMemOperand()->getValue();
87 auto *V =
N->getMemOperand()->getValue();
const char LLVMTargetMachineRef TM
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
A generic AVR implementation.
FunctionPass class - This class is used to implement most global optimizations.
This is an abstract virtual class for memory operations.
PassRegistry - This class manages the registration and intitialization of the pass subsystem as appli...
Pass interface - Implemented by all 'passes'.
bool isProgramMemoryAccess(MemSDNode const *N)
AddressSpace getAddressSpace(T *V)
int getProgramMemoryBank(MemSDNode const *N)
bool isProgramMemoryAddress(T *V)
Checks if a given type is a pointer to program memory.
AddressSpace
An integer that identifies all of the supported AVR address spaces.
Level
Code generation optimization level.
This is an optimization pass for GlobalISel generic memory operations.
void initializeAVRShiftExpandPass(PassRegistry &)
void initializeAVRExpandPseudoPass(PassRegistry &)
FunctionPass * createAVRISelDag(AVRTargetMachine &TM, CodeGenOpt::Level OptLevel)
FunctionPass * createAVRFrameAnalyzerPass()
Creates instance of the frame analyzer pass.
void initializeAVRDAGToDAGISelPass(PassRegistry &)
FunctionPass * createAVRExpandPseudoPass()
Pass * createAVRShiftExpandPass()
FunctionPass * createAVRBranchSelectionPass()