#include "AMDGPU.h"
#include "AMDGPUISelDAGToDAG.h"
#include "MCTargetDesc/R600MCTargetDesc.h"
#include "R600.h"
#include "R600Subtarget.h"
#include "llvm/Analysis/ValueTracking.h"
usingnamespacellvm;
namespace {
class R600DAGToDAGISel : public AMDGPUDAGToDAGISel { … };
class R600DAGToDAGISelLegacy : public SelectionDAGISelLegacy { … };
char R600DAGToDAGISelLegacy::ID = …;
}
bool R600DAGToDAGISel::runOnMachineFunction(MachineFunction &MF) { … }
bool R600DAGToDAGISel::isConstantLoad(const MemSDNode *N, int CbId) const { … }
bool R600DAGToDAGISel::SelectGlobalValueConstantOffset(SDValue Addr,
SDValue &IntPtr) { … }
bool R600DAGToDAGISel::SelectGlobalValueVariableOffset(SDValue Addr,
SDValue &BaseReg,
SDValue &Offset) { … }
void R600DAGToDAGISel::Select(SDNode *N) { … }
bool R600DAGToDAGISel::SelectADDRIndirect(SDValue Addr, SDValue &Base,
SDValue &Offset) { … }
bool R600DAGToDAGISel::SelectADDRVTX_READ(SDValue Addr, SDValue &Base,
SDValue &Offset) { … }
FunctionPass *llvm::createR600ISelDag(TargetMachine &TM,
CodeGenOptLevel OptLevel) { … }