llvm.org GIT mirror llvm / 1776483
Improve documentation of the 'a' specifier and the '<abi>:<pref>' align pair. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198636 91177308-0d34-0410-b5e6-96231b3b80d8 Rafael Espindola 6 years ago
2 changed file(s) with 12 addition(s) and 7 deletion(s). Raw diff Collapse all Expand all
11401140 ``p[n]:::``
11411141 This specifies the *size* of a pointer and its ```` and
11421142 ````\erred alignments for address space ``n``. All sizes are in
1143 bits. Specifying the ```` alignment is optional. If omitted, the
1144 preceding ``:`` should be omitted too. The address space, ``n`` is
1145 optional, and if not specified, denotes the default address space 0.
1146 The value of ``n`` must be in the range [1,2^23).
1143 bits. The address space, ``n`` is optional, and if not specified,
1144 denotes the default address space 0. The value of ``n`` must be
1145 in the range [1,2^23).
11471146 ``i::``
11481147 This specifies the alignment for an integer type of a given bit
11491148 ````. The value of ```` must be in the range [1,2^23).
11561155 will work. 32 (float) and 64 (double) are supported on all targets; 80
11571156 or 128 (different flavors of long double) are also supported on some
11581157 targets.
1159 ``a::``
1160 This specifies the alignment for an aggregate type of a given bit
1161 ````.
1158 ``a::``
1159 This specifies the alignment for an object of aggregate type.
11621160 ``m:``
11631161 If prerest, specifies that llvm names are mangled in the output. The
11641162 options are
11741172 ``n32:64`` for PowerPC 64, or ``n8:16:32:64`` for X86-64. Elements of
11751173 this set are considered to support most general arithmetic operations
11761174 efficiently.
1175
1176 On every specification that takes a ``:``, specifying the
1177 ```` alignment is optional. If omitted, the preceding ``:``
1178 should be omitted too and ```` will be equal to ````.
11771179
11781180 When constructing the data layout for a given target, LLVM starts with a
11791181 default set of specifications which are then (possibly) overridden by
285285
286286 // Bit size.
287287 unsigned Size = Tok.empty() ? 0 : getInt(Tok);
288
289 assert((AlignType != AGGREGATE_ALIGN || Size == 0) &&
290 "These specifications don't have a size");
288291
289292 // ABI alignment.
290293 Split = split(Rest, ':');