#ifndef LLVM_AVR_H
#define LLVM_AVR_H
#include "llvm/CodeGen/SelectionDAGNodes.h"
#include "llvm/Pass.h"
#include "llvm/PassRegistry.h"
#include "llvm/Target/TargetMachine.h"
namespace llvm {
class AVRTargetMachine;
class FunctionPass;
class PassRegistry;
Pass *createAVRShiftExpandPass();
FunctionPass *createAVRISelDag(AVRTargetMachine &TM, CodeGenOptLevel OptLevel);
FunctionPass *createAVRExpandPseudoPass();
FunctionPass *createAVRFrameAnalyzerPass();
FunctionPass *createAVRBranchSelectionPass();
void initializeAVRDAGToDAGISelLegacyPass(PassRegistry &);
void initializeAVRExpandPseudoPass(PassRegistry &);
void initializeAVRShiftExpandPass(PassRegistry &);
namespace AVR {
enum AddressSpace { … };
template <typename T> bool isProgramMemoryAddress(T *V) { … }
template <typename T> AddressSpace getAddressSpace(T *V) { … }
inline bool isProgramMemoryAccess(MemSDNode const *N) { … }
inline int getProgramMemoryBank(MemSDNode const *N) { … }
}
}
#endif