Deleted Added
full compact
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 ---