Lines Matching +full:address +full:- +full:aligned
1 //===- ABIInfoImpl.h --------------------------------------------*- C++ -*-===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
17 /// DefaultABIInfo - The default implementation for ABI specific
19 /// self-consistent and sensible LLVM IR generation, but does not
32 RValue EmitVAArg(CodeGenFunction &CGF, Address VAListAddr, QualType Ty,
45 // other canonical coercions that return a coerced-type of larger size.
47 // Ty - The argument / return value type
48 // Context - The associated ASTContext
49 // LLVMContext - The associated LLVMContext
79 /// This version implements the core direct-value passing rules.
81 /// \param SlotSize - The size and alignment of a stack slot.
83 /// slots, and all the slots will be aligned to this value.
84 /// \param AllowHigherAlign - The slot alignment is not a cap;
86 /// will be emitted on a higher-alignment address, potentially
88 /// is false, the returned address might be less-aligned than
90 /// \param ForceRightAdjust - Default is false. On big-endian platform and
92 /// right-adjust the argument in its slot irrespective of the type.
93 Address emitVoidPtrDirectVAArg(CodeGenFunction &CGF, Address VAListAddr,
102 /// \param IsIndirect - Values of this type are passed indirectly.
103 /// \param ValueInfo - The size and alignment of this type, generally
105 /// \param SlotSizeAndAlign - The size and alignment of a stack slot.
107 /// slots, and all the slots will be aligned to this value.
108 /// \param AllowHigherAlign - The slot alignment is not a cap;
110 /// will be emitted on a higher-alignment address, potentially
112 /// \param ForceRightAdjust - Default is false. On big-endian platform and
114 /// right-adjust the argument in its slot irrespective of the type.
115 RValue emitVoidPtrVAArg(CodeGenFunction &CGF, Address VAListAddr,
121 Address emitMergePHI(CodeGenFunction &CGF, Address Addr1,
122 llvm::BasicBlock *Block1, Address Addr2,
125 /// isEmptyField - Return true iff a the field is "empty", that is it
126 /// is an unnamed bit-field or an (array of) empty record(s). If
132 /// isEmptyRecord - Return true iff a structure contains only empty
140 /// isEmptyFieldForLayout - Return true iff the field is "empty", that is,
141 /// either a zero-width bit-field or an \ref isEmptyRecordForLayout.
144 /// isEmptyRecordForLayout - Return true iff a structure contains only empty
150 /// isSingleElementStruct - Determine if a structure is a "single
151 /// element struct", i.e. it has exactly one non-empty field or
156 /// \return The field declaration for the single non-empty field, if
160 Address EmitVAArgInstr(CodeGenFunction &CGF, Address VAListAddr, QualType Ty,