CallingConvLower.h (208954) | CallingConvLower.h (210299) |
---|---|
1//===-- llvm/CallingConvLower.h - Calling Conventions -----------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file declares the CCState and CCValAssign classes, used for lowering 11// and implementing calling conventions. 12// 13//===----------------------------------------------------------------------===// 14 15#ifndef LLVM_CODEGEN_CALLINGCONVLOWER_H 16#define LLVM_CODEGEN_CALLINGCONVLOWER_H 17 18#include "llvm/ADT/SmallVector.h" 19#include "llvm/CodeGen/ValueTypes.h" | 1//===-- llvm/CallingConvLower.h - Calling Conventions -----------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file declares the CCState and CCValAssign classes, used for lowering 11// and implementing calling conventions. 12// 13//===----------------------------------------------------------------------===// 14 15#ifndef LLVM_CODEGEN_CALLINGCONVLOWER_H 16#define LLVM_CODEGEN_CALLINGCONVLOWER_H 17 18#include "llvm/ADT/SmallVector.h" 19#include "llvm/CodeGen/ValueTypes.h" |
20#include "llvm/CodeGen/SelectionDAGNodes.h" | 20#include "llvm/Target/TargetCallingConv.h" |
21#include "llvm/CallingConv.h" 22 23namespace llvm { 24 class TargetRegisterInfo; 25 class TargetMachine; 26 class CCState; | 21#include "llvm/CallingConv.h" 22 23namespace llvm { 24 class TargetRegisterInfo; 25 class TargetMachine; 26 class CCState; |
27 class SDNode; | |
28 29/// CCValAssign - Represent assignment of one arg/retval to a location. 30class CCValAssign { 31public: 32 enum LocInfo { 33 Full, // The value fills the full location. 34 SExt, // The value is sign extended in the location. 35 ZExt, // The value is zero extended in the location. 36 AExt, // The value is extended with undefined upper bits. 37 BCvt, // The value is bit-converted in the location. | 27 28/// CCValAssign - Represent assignment of one arg/retval to a location. 29class CCValAssign { 30public: 31 enum LocInfo { 32 Full, // The value fills the full location. 33 SExt, // The value is sign extended in the location. 34 ZExt, // The value is zero extended in the location. 35 AExt, // The value is extended with undefined upper bits. 36 BCvt, // The value is bit-converted in the location. |
37 VExt, // The value is vector-widened in the location. 38 // FIXME: Not implemented yet. Code that uses AExt to mean 39 // vector-widen should be fixed to use VExt instead. |
|
38 Indirect // The location contains pointer to the value. 39 // TODO: a subset of the value is in the location. 40 }; 41private: 42 /// ValNo - This is the value number begin assigned (e.g. an argument number). 43 unsigned ValNo; 44 45 /// Loc is either a stack offset or a register number. --- 135 unchanged lines hidden (view full) --- 181 /// AnalyzeReturn - Analyze the returned values of a return, 182 /// incorporating info about the result values into this state. 183 void AnalyzeReturn(const SmallVectorImpl<ISD::OutputArg> &Outs, 184 CCAssignFn Fn); 185 186 /// CheckReturn - Analyze the return values of a function, returning 187 /// true if the return can be performed without sret-demotion, and 188 /// false otherwise. | 40 Indirect // The location contains pointer to the value. 41 // TODO: a subset of the value is in the location. 42 }; 43private: 44 /// ValNo - This is the value number begin assigned (e.g. an argument number). 45 unsigned ValNo; 46 47 /// Loc is either a stack offset or a register number. --- 135 unchanged lines hidden (view full) --- 183 /// AnalyzeReturn - Analyze the returned values of a return, 184 /// incorporating info about the result values into this state. 185 void AnalyzeReturn(const SmallVectorImpl<ISD::OutputArg> &Outs, 186 CCAssignFn Fn); 187 188 /// CheckReturn - Analyze the return values of a function, returning 189 /// true if the return can be performed without sret-demotion, and 190 /// false otherwise. |
189 bool CheckReturn(const SmallVectorImpl<EVT> &OutTys, 190 const SmallVectorImpl<ISD::ArgFlagsTy> &ArgsFlags, | 191 bool CheckReturn(const SmallVectorImpl<ISD::OutputArg> &ArgsFlags, |
191 CCAssignFn Fn); 192 193 /// AnalyzeCallOperands - Analyze the outgoing arguments to a call, 194 /// incorporating info about the passed values into this state. 195 void AnalyzeCallOperands(const SmallVectorImpl<ISD::OutputArg> &Outs, 196 CCAssignFn Fn); 197 198 /// AnalyzeCallOperands - Same as above except it takes vectors of types --- 95 unchanged lines hidden --- | 192 CCAssignFn Fn); 193 194 /// AnalyzeCallOperands - Analyze the outgoing arguments to a call, 195 /// incorporating info about the passed values into this state. 196 void AnalyzeCallOperands(const SmallVectorImpl<ISD::OutputArg> &Outs, 197 CCAssignFn Fn); 198 199 /// AnalyzeCallOperands - Same as above except it takes vectors of types --- 95 unchanged lines hidden --- |