diff options
author | Dan Gohman <gohman@apple.com> | 2010-07-07 15:54:55 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2010-07-07 15:54:55 +0000 |
commit | c9403659a98bf6487ab6fbf40b81628b5695c02e (patch) | |
tree | e87ef3079863835d2f2ecf55294d93cf221b1fce /include/llvm/Target/TargetCallingConv.h | |
parent | 29269d03af6dc3feb69d0230831a059f39c03700 (diff) | |
download | llvm-c9403659a98bf6487ab6fbf40b81628b5695c02e.tar.gz llvm-c9403659a98bf6487ab6fbf40b81628b5695c02e.tar.bz2 llvm-c9403659a98bf6487ab6fbf40b81628b5695c02e.tar.xz |
Split the SDValue out of OutputArg so that SelectionDAG-independent
code can do calling-convention queries. This obviates OutputArgReg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107786 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Target/TargetCallingConv.h')
-rw-r--r-- | include/llvm/Target/TargetCallingConv.h | 29 |
1 files changed, 5 insertions, 24 deletions
diff --git a/include/llvm/Target/TargetCallingConv.h b/include/llvm/Target/TargetCallingConv.h index 0c7147e729..f368a2e38c 100644 --- a/include/llvm/Target/TargetCallingConv.h +++ b/include/llvm/Target/TargetCallingConv.h @@ -14,8 +14,6 @@ #ifndef LLVM_TARGET_TARGETCALLINGCONV_H #define LLVM_TARGET_TARGETCALLINGCONV_H -#include "llvm/CodeGen/SelectionDAGNodes.h" - namespace llvm { namespace ISD { @@ -112,7 +110,7 @@ namespace ISD { bool Used; InputArg() : VT(MVT::Other), Used(false) {} - InputArg(ISD::ArgFlagsTy flags, EVT vt, bool used) + InputArg(ArgFlagsTy flags, EVT vt, bool used) : Flags(flags), VT(vt), Used(used) { assert(VT.isSimple() && "InputArg value type must be Simple!"); @@ -125,35 +123,18 @@ namespace ISD { /// struct OutputArg { ArgFlagsTy Flags; - SDValue Val; + EVT VT; /// IsFixed - Is this a "fixed" value, ie not passed through a vararg "...". bool IsFixed; OutputArg() : IsFixed(false) {} - OutputArg(ISD::ArgFlagsTy flags, SDValue val, bool isfixed) - : Flags(flags), Val(val), IsFixed(isfixed) { - assert(Val.getValueType().isSimple() && + OutputArg(ArgFlagsTy flags, EVT vt, bool isfixed) + : Flags(flags), VT(vt), IsFixed(isfixed) { + assert(VT.isSimple() && "OutputArg value type must be Simple!"); } }; - - /// OutputArgReg - This struct carries flags and a register value for a - /// single outgoing (actual) argument or outgoing (from the perspective - /// of the caller) return value virtual register. - /// - struct OutputArgReg { - ArgFlagsTy Flags; - EVT VT; - unsigned Reg; - - /// IsFixed - Is this a "fixed" value, ie not passed through a vararg "...". - bool IsFixed; - - OutputArgReg() : IsFixed(false) {} - OutputArgReg(ISD::ArgFlagsTy flags, EVT vt, unsigned reg, bool isfixed) - : Flags(flags), VT(vt), Reg(reg), IsFixed(isfixed) {} - }; } } // end llvm namespace |