diff options
author | Dale Johannesen <dalej@apple.com> | 2008-09-26 19:31:26 +0000 |
---|---|---|
committer | Dale Johannesen <dalej@apple.com> | 2008-09-26 19:31:26 +0000 |
commit | 86098bd6a63d2cdf0c9be9ef3151bd2728281fd7 (patch) | |
tree | ec0d224a2780a707ab69dec8941ae3a64170339a /include/llvm/CodeGen/SelectionDAGNodes.h | |
parent | 97135e1ee51357245561a5108f90a8a1161431a1 (diff) |
Add "inreg" field to CallSDNode (doesn't increase
its size). Adjust various lowering functions to
pass this info through from CallInst. Use it to
implement sseregparm returns on X86. Remove
X86_ssecall calling convention.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56677 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/SelectionDAGNodes.h')
-rw-r--r-- | include/llvm/CodeGen/SelectionDAGNodes.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/include/llvm/CodeGen/SelectionDAGNodes.h b/include/llvm/CodeGen/SelectionDAGNodes.h index 111d3f849a..1d085100db 100644 --- a/include/llvm/CodeGen/SelectionDAGNodes.h +++ b/include/llvm/CodeGen/SelectionDAGNodes.h @@ -2191,17 +2191,23 @@ class CallSDNode : public SDNode { unsigned CallingConv; bool IsVarArg; bool IsTailCall; + // We might eventually want a full-blown Attributes for the result; that + // will expand the size of the representation. At the moment we only + // need Inreg. + bool Inreg; virtual void ANCHOR(); // Out-of-line virtual method to give class a home. protected: friend class SelectionDAG; - CallSDNode(unsigned cc, bool isvararg, bool istailcall, + CallSDNode(unsigned cc, bool isvararg, bool istailcall, bool isinreg, SDVTList VTs, const SDValue *Operands, unsigned numOperands) : SDNode(ISD::CALL, VTs, Operands, numOperands), - CallingConv(cc), IsVarArg(isvararg), IsTailCall(istailcall) {} + CallingConv(cc), IsVarArg(isvararg), IsTailCall(istailcall), + Inreg(isinreg) {} public: unsigned getCallingConv() const { return CallingConv; } unsigned isVarArg() const { return IsVarArg; } unsigned isTailCall() const { return IsTailCall; } + unsigned isInreg() const { return Inreg; } /// Set this call to not be marked as a tail call. Normally setter /// methods in SDNodes are unsafe because it breaks the CSE map, |