1 //==-- PTXISelLowering.h - PTX DAG Lowering Interface ------------*- C++ -*-==//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file defines the interfaces that PTX uses to lower LLVM code into a
13 //===----------------------------------------------------------------------===//
15 #ifndef PTX_ISEL_LOWERING_H
16 #define PTX_ISEL_LOWERING_H
18 #include "llvm/Target/TargetLowering.h"
22 class PTXTargetMachine
;
26 FIRST_NUMBER
= ISD::BUILTIN_OP_END
,
35 class PTXTargetLowering
: public TargetLowering
{
37 explicit PTXTargetLowering(TargetMachine
&TM
);
39 virtual const char *getTargetNodeName(unsigned Opcode
) const;
41 virtual SDValue
LowerOperation(SDValue Op
, SelectionDAG
&DAG
) const;
43 virtual SDValue
LowerSETCC(SDValue Op
, SelectionDAG
&DAG
) const;
46 LowerFormalArguments(SDValue Chain
,
47 CallingConv::ID CallConv
,
49 const SmallVectorImpl
<ISD::InputArg
> &Ins
,
52 SmallVectorImpl
<SDValue
> &InVals
) const;
55 LowerReturn(SDValue Chain
,
56 CallingConv::ID CallConv
,
58 const SmallVectorImpl
<ISD::OutputArg
> &Outs
,
59 const SmallVectorImpl
<SDValue
> &OutVals
,
61 SelectionDAG
&DAG
) const;
63 virtual MVT::SimpleValueType
getSetCCResultType(EVT VT
) const;
66 SDValue
LowerGlobalAddress(SDValue Op
, SelectionDAG
&DAG
) const;
67 }; // class PTXTargetLowering
70 #endif // PTX_ISEL_LOWERING_H