|
static void | rewriteInputConstraintReferences (unsigned FirstIn, unsigned NumNewOuts, std::string &AsmString) |
| Rewrite input constraint references after adding some output constraints. More...
|
|
static bool | is32Or64BitBasicType (QualType Ty, ASTContext &Context) |
|
static bool | addFieldSizes (ASTContext &Context, const RecordDecl *RD, uint64_t &Size) |
|
static bool | addBaseAndFieldSizes (ASTContext &Context, const CXXRecordDecl *RD, uint64_t &Size) |
|
static ABIArgInfo | classifyOpenCL (QualType Ty, ASTContext &Context) |
|
static bool | doOpenCLClassification (CGFunctionInfo &FI, ASTContext &Context) |
|
static bool | isArgInAlloca (const ABIArgInfo &Info) |
|
static void | addX86InterruptAttrs (const FunctionDecl *FD, llvm::GlobalValue *GV, CodeGen::CodeGenModule &CGM) |
|
static void | initFeatureMaps (const ASTContext &Ctx, llvm::StringMap< bool > &CallerMap, const FunctionDecl *Caller, llvm::StringMap< bool > &CalleeMap, const FunctionDecl *Callee) |
|
static bool | checkAVXParamFeature (DiagnosticsEngine &Diag, SourceLocation CallLoc, const llvm::StringMap< bool > &CallerMap, const llvm::StringMap< bool > &CalleeMap, QualType Ty, StringRef Feature, bool IsArgument) |
|
static bool | checkAVX512ParamFeature (DiagnosticsEngine &Diag, SourceLocation CallLoc, const llvm::StringMap< bool > &CallerMap, const llvm::StringMap< bool > &CalleeMap, QualType Ty, bool IsArgument) |
|
static bool | checkAVXParam (DiagnosticsEngine &Diag, ASTContext &Ctx, SourceLocation CallLoc, const llvm::StringMap< bool > &CallerMap, const llvm::StringMap< bool > &CalleeMap, QualType Ty, bool IsArgument) |
|
static bool | BitsContainNoUserData (QualType Ty, unsigned StartBit, unsigned EndBit, ASTContext &Context) |
| BitsContainNoUserData - Return true if the specified [start,end) bit range is known to either be off the end of the specified type or being in alignment padding. More...
|
|
static llvm::Type * | getFPTypeAtOffset (llvm::Type *IRType, unsigned IROffset, const llvm::DataLayout &TD) |
| getFPTypeAtOffset - Return a floating point type at the specified offset. More...
|
|
static llvm::Type * | GetX86_64ByValArgumentPair (llvm::Type *Lo, llvm::Type *Hi, const llvm::DataLayout &TD) |
| GetX86_64ByValArgumentPair - Given a high and low type that can ideally be used as elements of a two register pair to pass or return, return a first class aggregate to represent them. More...
|
|
static Address | EmitX86_64VAArgFromMemory (CodeGenFunction &CGF, Address VAListAddr, QualType Ty) |
|
BitsContainNoUserData - Return true if the specified [start,end) bit range is known to either be off the end of the specified type or being in alignment padding.
The user type specified is known to be at most 128 bits in size, and have passed through X86_64ABIInfo::classify with a successful classification that put one of the two halves in the INTEGER class.
It is conservatively correct to return false.
Definition at line 2344 of file X86.cpp.
static llvm::Type* GetX86_64ByValArgumentPair |
( |
llvm::Type * |
Lo, |
|
|
llvm::Type * |
Hi, |
|
|
const llvm::DataLayout & |
TD |
|
) |
| |
|
static |
GetX86_64ByValArgumentPair - Given a high and low type that can ideally be used as elements of a two register pair to pass or return, return a first class aggregate to represent them.
For example, if the low part of a by-value argument should be passed as i32* and the high part as float, return {i32*, float}.
Definition at line 2580 of file X86.cpp.
static void rewriteInputConstraintReferences |
( |
unsigned |
FirstIn, |
|
|
unsigned |
NumNewOuts, |
|
|
std::string & |
AsmString |
|
) |
| |
|
static |
Rewrite input constraint references after adding some output constraints.
In the case where there is one output and one input and we add one output, we need to replace all operand references greater than or equal to 1: mov $0, $1 mov eax, $1 The result will be: mov $0, $2 mov eax, $2
Definition at line 262 of file X86.cpp.