34 const Type *RetTy,
const char * Func);
44 std::vector<TargetLowering::ArgListEntry> &FuncArgs,
56 void PreAnalyzeFormalArgumentsForVectorFloat(
87 :
CCState(CC, isVarArg, MF, locs, C), SpecialCallingConv(SpecialCC) {}
92 std::vector<TargetLowering::ArgListEntry> &FuncArgs,
94 PreAnalyzeCallOperands(Outs, FuncArgs, Func);
96 OriginalArgWasF128.
clear();
97 OriginalArgWasFloat.
clear();
98 OriginalArgWasFloatVector.
clear();
99 CallOperandIsFixed.
clear();
113 PreAnalyzeFormalArgumentsForF128(Ins);
115 OriginalArgWasFloat.
clear();
116 OriginalArgWasF128.
clear();
117 OriginalArgWasFloatVector.
clear();
123 PreAnalyzeCallResultForF128(Ins, RetTy, Func);
124 PreAnalyzeCallResultForVectorFloat(Ins, RetTy);
126 OriginalArgWasFloat.
clear();
127 OriginalArgWasF128.
clear();
128 OriginalArgWasFloatVector.
clear();
133 PreAnalyzeReturnForF128(Outs);
134 PreAnalyzeReturnForVectorFloat(Outs);
136 OriginalArgWasFloat.
clear();
137 OriginalArgWasF128.
clear();
138 OriginalArgWasFloatVector.
clear();
143 PreAnalyzeReturnForF128(ArgsFlags);
144 PreAnalyzeReturnForVectorFloat(ArgsFlags);
146 OriginalArgWasFloat.
clear();
147 OriginalArgWasF128.
clear();
148 OriginalArgWasFloatVector.
clear();
154 return OriginalArgWasFloat[ValNo];
157 return OriginalArgWasFloatVector[ValNo];
160 return OriginalRetWasFloatVector[ValNo];
void AnalyzeCallResult(const SmallVectorImpl< ISD::InputArg > &Ins, CCAssignFn Fn)
AnalyzeCallResult - Analyze the return values of a call, incorporating info about the passed values i...
This class represents lattice values for constants.
void AnalyzeFormalArguments(const SmallVectorImpl< ISD::InputArg > &Ins, CCAssignFn Fn)
void AnalyzeFormalArguments(const SmallVectorImpl< ISD::InputArg > &Ins, CCAssignFn Fn)
AnalyzeFormalArguments - Analyze an array of argument values, incorporating info about the formals in...
bool CCAssignFn(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State)
CCAssignFn - This function assigns a location for Val, updating State to reflect the change...
bool WasOriginalArgFloat(unsigned ValNo)
bool WasOriginalArgVectorFloat(unsigned ValNo) const
bool WasOriginalRetVectorFloat(unsigned ValNo) const
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
static SpecialCallingConvType getSpecialCallingConvForCallee(const SDNode *Callee, const MipsSubtarget &Subtarget)
Determine the SpecialCallingConvType for the given callee.
void AnalyzeCallResult(const SmallVectorImpl< ISD::InputArg > &Ins, CCAssignFn Fn, const Type *RetTy, const char *Func)
bool WasOriginalArgF128(unsigned ValNo)
amdgpu Simplify well known AMD library false Value * Callee
MipsCCState(CallingConv::ID CC, bool isVarArg, MachineFunction &MF, SmallVectorImpl< CCValAssign > &locs, LLVMContext &C, SpecialCallingConvType SpecialCC=NoSpecialCallingConv)
The instances of the Type class are immutable: once they are created, they are never changed...
This is an important class for using LLVM in a threaded context.
SpecialCallingConvType getSpecialCallingConv()
CCState - This class holds information needed while lowering arguments and return values...
void AnalyzeCallOperands(const SmallVectorImpl< ISD::OutputArg > &Outs, CCAssignFn Fn, std::vector< TargetLowering::ArgListEntry > &FuncArgs, const char *Func)
Represents one node in the SelectionDAG.
void AnalyzeCallOperands(const SmallVectorImpl< ISD::OutputArg > &Outs, CCAssignFn Fn)
AnalyzeCallOperands - Analyze the outgoing arguments to a call, incorporating info about the passed v...
bool IsCallOperandFixed(unsigned ValNo)
void AnalyzeReturn(const SmallVectorImpl< ISD::OutputArg > &Outs, CCAssignFn Fn)
bool CheckReturn(const SmallVectorImpl< ISD::OutputArg > &Outs, CCAssignFn Fn)
CheckReturn - Analyze the return values of a function, returning true if the return can be performed ...
void AnalyzeReturn(const SmallVectorImpl< ISD::OutputArg > &Outs, CCAssignFn Fn)
AnalyzeReturn - Analyze the returned values of a return, incorporating info about the result values i...
bool CheckReturn(const SmallVectorImpl< ISD::OutputArg > &ArgsFlags, CCAssignFn Fn)