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
,
32 class PTXTargetLowering
: public TargetLowering
{
34 explicit PTXTargetLowering(TargetMachine
&TM
);
36 virtual const char *getTargetNodeName(unsigned Opcode
) const;
38 virtual unsigned getFunctionAlignment(const Function
*F
) const {
42 LowerFormalArguments(SDValue Chain
,
43 CallingConv::ID CallConv
,
45 const SmallVectorImpl
<ISD::InputArg
> &Ins
,
48 SmallVectorImpl
<SDValue
> &InVals
) const;
51 LowerReturn(SDValue Chain
,
52 CallingConv::ID CallConv
,
54 const SmallVectorImpl
<ISD::OutputArg
> &Outs
,
55 const SmallVectorImpl
<SDValue
> &OutVals
,
57 SelectionDAG
&DAG
) const;
58 }; // class PTXTargetLowering
61 #endif // PTX_ISEL_LOWERING_H