1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 20:23:11 +01:00
llvm-mirror/test/Bitcode
Momchil Velikov d98e321d12 [clang][AArch64] Correctly align HFA arguments when passed on the stack
When we pass a AArch64 Homogeneous Floating-Point
Aggregate (HFA) argument with increased alignment
requirements, for example

    struct S {
      __attribute__ ((__aligned__(16))) double v[4];
    };

Clang uses `[4 x double]` for the parameter, which is passed
on the stack at alignment 8, whereas it should be at
alignment 16, following Rule C.4 in
AAPCS (https://github.com/ARM-software/abi-aa/blob/master/aapcs64/aapcs64.rst#642parameter-passing-rules)

Currently we don't have a way to express in LLVM IR the
alignment requirements of the function arguments. The align
attribute is applicable to pointers only, and only for some
special ways of passing arguments (e..g byval). When
implementing AAPCS32/AAPCS64, clang resorts to dubious hacks
of coercing to types, which naturally have the needed
alignment. We don't have enough types to cover all the
cases, though.

This patch introduces a new use of the stackalign attribute
to control stack slot alignment, when and if an argument is
passed in memory.

The attribute align is left as an optimizer hint - it still
applies to pointer types only and pertains to the content of
the pointer, whereas the alignment of the pointer itself is
determined by the stackalign attribute.

For byval arguments, the stackalign attribute assumes the
role, previously perfomed by align, falling back to align if
stackalign` is absent.

On the clang side, when passing arguments using the "direct"
style (cf. `ABIArgInfo::Kind`), now we can optionally
specify an alignment, which is emitted as the new
`stackalign` attribute.

Patch by Momchil Velikov and Lucas Prates.

Differential Revision: https://reviews.llvm.org/D98794
2021-04-15 22:58:14 +01:00
..
Inputs Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
2006-12-11-Cast-ConstExpr.ll
2009-06-11-FirstClassAggregateConstant.ll
aarch64-addp-upgrade.bc
aarch64-addp-upgrade.ll
aarch64-bf16-upgrade.ll [ARM][BFloat16] Change types of some Arm and AArch64 bf16 intrinsics 2020-08-27 18:43:16 +01:00
aarch64-bf16-upgrade.ll.bc [ARM][BFloat16] Change types of some Arm and AArch64 bf16 intrinsics 2020-08-27 18:52:59 +01:00
aggregateInstructions.3.2.ll
aggregateInstructions.3.2.ll.bc
allocated.ll [DebugInfo] Support for DW_AT_associated and DW_AT_allocated. 2020-07-20 19:54:35 +05:30
anon-functions.ll
apple-clang-700-compat.test
arm32_neon_vcnt_upgrade.ll
arm-bf16-upgrade.ll [ARM][BFloat16] Change types of some Arm and AArch64 bf16 intrinsics 2020-08-27 18:43:16 +01:00
arm-bf16-upgrade.ll.bc [ARM][BFloat16] Change types of some Arm and AArch64 bf16 intrinsics 2020-08-27 18:52:59 +01:00
associated.ll [DebugInfo] Support for DW_AT_associated and DW_AT_allocated. 2020-07-20 19:54:35 +05:30
atomic-no-syncscope.ll
atomic-no-syncscope.ll.bc
atomic.ll
attributes-3.3.ll OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
attributes-3.3.ll.bc [AttributeFuncs] Consider align in typeIncompatible 2020-10-05 23:23:05 -05:00
attributes.ll Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
auto_upgrade_intrinsics.bc
avr-calling-conventions.ll
avr-calling-conventions.ll.bc
bcanalyzer-atomics.ll
bcanalyzer-comdat.ll [BitCodeAnalyzer] Add a few missing TYPE_CODES and MODULE_CODE_COMDAT to GetCodeName 2020-10-12 15:43:12 -07:00
bcanalyzer-types.ll [BitCodeAnalyzer] Add a few missing TYPE_CODES and MODULE_CODE_COMDAT to GetCodeName 2020-10-12 15:43:12 -07:00
binaryFloatInstructions.3.2.ll
binaryFloatInstructions.3.2.ll.bc
binaryIntInstructions.3.2.ll
binaryIntInstructions.3.2.ll.bc
bitcode-wrapper-header-armv7m.ll
bitcode-wrapper-header-x86_64.ll
bitwiseInstructions.3.2.ll
bitwiseInstructions.3.2.ll.bc
blockaddress.ll
branch-weight.ll [Bitcode] Drop invalid branch_weight in BitcodeReader 2020-07-23 09:07:15 -07:00
byval-upgrade.test
callbr.ll
callbr.ll.bc
calling-conventions.3.2.ll
calling-conventions.3.2.ll.bc
case-ranges-3.3.ll
case-ranges-3.3.ll.bc
cmpxchg-upgrade.ll
cmpxchg-upgrade.ll.bc
cmpxchg.3.6.ll
cmpxchg.3.6.ll.bc
compatibility-3.6.ll Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
compatibility-3.6.ll.bc
compatibility-3.7.ll Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
compatibility-3.7.ll.bc
compatibility-3.8.ll Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
compatibility-3.8.ll.bc
compatibility-3.9.ll Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
compatibility-3.9.ll.bc
compatibility-4.0.ll Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
compatibility-4.0.ll.bc
compatibility-5.0.ll Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
compatibility-5.0.ll.bc
compatibility-6.0.ll Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
compatibility-6.0.ll.bc
compatibility.ll [clang][AArch64] Correctly align HFA arguments when passed on the stack 2021-04-15 22:58:14 +01:00
constantsTest.3.2.ll
constantsTest.3.2.ll.bc
conversionInstructions.3.2.ll
conversionInstructions.3.2.ll.bc
dataLocation.ll [DebugInfo] support for DW_AT_data_location in llvm 2020-05-15 11:33:17 +05:30
debug-loc-again.ll
dicompileunit-gnu-pubnames.ll
DICompileUnit-no-DWOId.ll
DICompileUnit-no-DWOId.ll.bc
DIEnumerator-10.0.ll [DebugInfo] Change DIEnumerator payload type from int64_t to APInt 2020-04-18 12:49:31 -07:00
DIEnumerator-10.0.ll.bc [DebugInfo] Change DIEnumerator payload type from int64_t to APInt 2020-04-18 12:49:31 -07:00
DIExpression-4.0.ll
DIExpression-4.0.ll.bc
DIExpression-aggresult.ll OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
DIExpression-aggresult.ll.bc
DIExpression-deref.ll
DIExpression-deref.ll.bc
DIExpression-minus-upgrade.ll
DIExpression-minus-upgrade.ll.bc
diglobalvariable-3.8.ll
diglobalvariable-3.8.ll.bc
DIGlobalVariableExpression2.ll
DIGlobalVariableExpression2.ll.bc
DIGlobalVariableExpression.ll
DIGlobalVariableExpression.ll.bc
dilocalvariable-3.9.ll
dilocalvariable-3.9.ll.bc
DILocalVariable-explicit-tags.ll
DILocalVariable-explicit-tags.ll.bc
DILocation-implicit-code.ll
DILocation-implicit-code.ll.bc
DIModule-clang-module.ll [DebugInfo] Fortran module DebugInfo support in LLVM 2020-05-13 12:52:30 +05:30
DIModule-clang-module.ll.bc [DebugInfo] Fortran module DebugInfo support in LLVM 2020-05-13 12:52:30 +05:30
DIModule-fortran-external-module.ll [DebugInfo] Support Fortran 'use <external module>' statement. 2020-12-18 13:10:57 -05:00
DIModule-fortran-module.ll [DebugInfo] Fortran module DebugInfo support in LLVM 2020-05-13 12:52:30 +05:30
DIModule-fortran-module.ll.bc [DebugInfo] Fortran module DebugInfo support in LLVM 2020-05-13 12:52:30 +05:30
DINamespace.ll
DINamespace.ll.bc
DISubprogram-distinct-definitions.ll
DISubprogram-distinct-definitions.ll.bc
DISubprogram-v4.ll Fix DISubprogram-v4.ll after e17f52d623cc146b7d9bf5a2e02965043508b4c4 2020-09-25 10:08:43 -07:00
DISubprogram-v4.ll.bc Fix DISubprogram-v4.ll after e17f52d623cc146b7d9bf5a2e02965043508b4c4 2020-09-25 10:08:43 -07:00
DISubprogram-v5.ll
DISubprogram-v5.ll.bc
disubrange-v0.ll
disubrange-v0.ll.bc
disubrange.ll
DITemplateParameter-5.0.ll Reland "[DebugInfo][clang][DWARF5]: Added support for debuginfo generation for defaulted parameters 2020-03-02 16:45:48 +05:30
DITemplateParameter-5.0.ll.bc Reland "[DebugInfo][clang][DWARF5]: Added support for debuginfo generation for defaulted parameters 2020-03-02 16:45:48 +05:30
dityperefs-3.8.ll
dityperefs-3.8.ll.bc
drop-debug-info.3.5.ll
drop-debug-info.3.5.ll.bc
dso_local_equivalent.ll [llvm][Bitcode] Add bitcode reader/writer for DSOLocalEquivalent 2021-02-22 10:37:57 -08:00
dso_location.ll
DW_OP_over.ll [DebugInfo] Support for DWARF operator DW_OP_over 2020-10-17 08:42:28 +05:30
extractelement.ll [ConstProp] Remove ConstantPropagation 2020-08-26 15:51:30 -07:00
fcmp-fast.ll
flags.ll
fortranSubrange.ll [DebugInfo] Upgrade DISubrange to support Fortran dynamic arrays 2020-05-28 13:46:41 +05:30
fortranSubrangeBackward.ll [DebugInfo] Upgrade DISubrange to support Fortran dynamic arrays 2020-05-28 13:46:41 +05:30
fortranSubrangeBackward.ll.bc [DebugInfo] Upgrade DISubrange to support Fortran dynamic arrays 2020-05-28 13:46:41 +05:30
function-address-space-fwd-decl.ll
function-default-address-spaces.ll Revert "Revert "Reland "[Support] make report_fatal_error abort instead of exit""" 2020-02-13 10:16:06 -08:00
function-encoding-rel-operands.ll
function-local-metadata.3.5.ll
function-local-metadata.3.5.ll.bc
function-nonzero-address-spaces-types.ll
function-nonzero-address-spaces.ll
generic_subrange_const.ll [DebugInfo] Support for DW_TAG_generic_subrange 2020-10-29 01:34:15 +05:30
generic_subrange_count.ll [DebugInfo] Support for DW_TAG_generic_subrange 2020-10-29 01:34:15 +05:30
generic_subrange.ll [DebugInfo] Support for DW_TAG_generic_subrange 2020-10-29 01:34:15 +05:30
global-variables.3.2.ll
global-variables.3.2.ll.bc
globalvariable-attributes.ll
highLevelStructure.3.2.ll OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
highLevelStructure.3.2.ll.bc
identification.ll
inalloca-upgrade.test Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
inalloca.ll Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
infer_dso_local.ll
intrinsics-with-unnamed-types.ll Support intrinsic overloading on unnamed types 2021-03-19 14:34:25 +01:00
invalid-functionptr-align.ll Revert "Revert "Reland "[Support] make report_fatal_error abort instead of exit""" 2020-02-13 10:16:06 -08:00
invalid-functionptr-align.ll.bc
invalid-type-for-null-constant.ll
invalid-type-for-null-constant.ll.bc
invalid-weak-external.ll
invalid.ll
invalid.ll.bc
invalid.test Revert "Revert "Reland "[Support] make report_fatal_error abort instead of exit""" 2020-02-13 10:16:06 -08:00
linkage-types-3.2.ll
linkage-types-3.2.ll.bc
local-linkage-default-visibility.3.4.ll
local-linkage-default-visibility.3.4.ll.bc
mdnodes-distinct-in-post-order.ll
mdnodes-distinct-nodes-break-cycles.ll
mdnodes-distinct-nodes-first.ll
mdnodes-in-post-order.ll
mdstring-high-bits.ll
memInstructions.3.2.ll StoreInst should store Align, not MaybeAlign 2020-05-15 12:26:58 -07:00
memInstructions.3.2.ll.bc
metadata-2.ll
metadata-function-blocks.ll
metadata-only-empty-string.ll
metadata-source.ll
metadata-source.ll.bc
metadata-strings.ll
metadata.3.5.ll
metadata.3.5.ll.bc
metadata.ll
miscInstructions.3.2.ll
miscInstructions.3.2.ll.bc
module_hash.ll
module-hash-strtab.ll
multi-module.ll
null-type.ll
null-type.ll.bc
objectsize-upgrade-7.0.ll
objectsize-upgrade-7.0.ll.bc
old-aliases.ll
old-aliases.ll.bc
operand-bundles-bc-analyzer.ll [ObjC][ARC] Use operand bundle 'clang.arc.attachedcall' instead of 2021-03-04 11:22:30 -08:00
operand-bundles.ll
padding.test
pr18704.ll
pr18704.ll.bc
PR23310.test
ptest-new.ll
ptest-old.ll
rankConst.ll [DebugInfo] Support for DWARF attribute DW_AT_rank 2020-10-10 17:51:12 +05:30
rankExp.ll [DebugInfo] Support for DWARF attribute DW_AT_rank 2020-10-10 17:51:12 +05:30
select.ll
shuffle.ll
source-filename.test
ssse3_palignr.ll
standardCIntrinsic.3.2.ll
standardCIntrinsic.3.2.ll.bc
stream-types.c
stream-types.c.ast
stream-types.c.ast.incomplete
stream-types.c.dia
stream-types.c.dia.incomplete
stream-types.c.opt.bitstream
summary_version.ll Restore "[WPD/LowerTypeTests] Delay lowering/removal of type tests until after ICP" 2020-07-14 12:16:57 -07:00
tailcall.ll
terminatorInstructions.3.2.ll
terminatorInstructions.3.2.ll.bc
thinlto-alias2.ll [ThinLTO] Compute the basic block count across modules. 2020-05-28 10:33:05 -07:00
thinlto-alias3.ll
thinlto-alias.ll [ThinLTO] Add Visibility bits to GlobalValueSummary::GVFlags 2021-01-27 10:43:51 -08:00
thinlto-asm-noimport.ll
thinlto-deadstrip-flag.ll [LTO] Perform DSOLocal propagation in combined index 2021-02-12 22:58:26 -08:00
thinlto-empty-summary-section.ll
thinlto-function-summary-callgraph-cast.ll [ThinLTO] Compute the basic block count across modules. 2020-05-28 10:33:05 -07:00
thinlto-function-summary-callgraph-pgo.ll [ThinLTO] Compute the basic block count across modules. 2020-05-28 10:33:05 -07:00
thinlto-function-summary-callgraph-profile-summary.ll [ThinLTO] Add Visibility bits to GlobalValueSummary::GVFlags 2021-01-27 10:43:51 -08:00
thinlto-function-summary-callgraph-relbf.ll [ThinLTO] Add Visibility bits to GlobalValueSummary::GVFlags 2021-01-27 10:43:51 -08:00
thinlto-function-summary-callgraph-sample-profile-summary.ll [ThinLTO] Compute the basic block count across modules. 2020-05-28 10:33:05 -07:00
thinlto-function-summary-callgraph.ll [ThinLTO] Compute the basic block count across modules. 2020-05-28 10:33:05 -07:00
thinlto-function-summary-functionattrs.ll
thinlto-function-summary-originalnames.ll [ThinLTO] Compute the basic block count across modules. 2020-05-28 10:33:05 -07:00
thinlto-function-summary-paramaccess.ll [NFC][StackSafety] Move out sort from the loop 2020-08-17 03:30:14 -07:00
thinlto-function-summary-refgraph.ll [ThinLTO] Add Visibility bits to GlobalValueSummary::GVFlags 2021-01-27 10:43:51 -08:00
thinlto-function-summary.ll [ThinLTO] Compute the basic block count across modules. 2020-05-28 10:33:05 -07:00
thinlto-summary-globalvar.ll
thinlto-summary-linkage-types.ll
thinlto-summary-local-5.0.ll
thinlto-summary-local-5.0.ll.bc
thinlto-summary-section.ll
thinlto-synthetic-count-flag.ll [LTO] Perform DSOLocal propagation in combined index 2021-02-12 22:58:26 -08:00
thinlto-type-tests.ll [ThinLTO] Add Visibility bits to GlobalValueSummary::GVFlags 2021-01-27 10:43:51 -08:00
thinlto-type-vcalls.ll [ThinLTO] Add Visibility bits to GlobalValueSummary::GVFlags 2021-01-27 10:43:51 -08:00
thinlto-unused-type-tests.ll
upgrade-arc-runtime-calls-bitcast.bc
upgrade-arc-runtime-calls-bitcast.ll
upgrade-arc-runtime-calls-new.bc
upgrade-arc-runtime-calls.bc
upgrade-arc-runtime-calls.ll
upgrade-clang-arc-use.ll
upgrade-clang-arc-use.ll.bc
upgrade-datalayout2.ll
upgrade-datalayout3.ll
upgrade-datalayout.ll
upgrade-dbg-checksum.ll
upgrade-dbg-checksum.ll.bc
upgrade-dbg-value.ll
upgrade-dbg-value.ll.bc
upgrade-debug-info-for-profiling.ll
upgrade-debug-info-for-profiling.ll.bc
upgrade-frame-pointer.ll
upgrade-garbage-collection-for-objc.ll Fix conflict value for metadata "Objective-C Garbage Collection" in the mix of swift and Objective-C bitcode 2020-03-11 13:26:06 -07:00
upgrade-garbage-collection-for-swift.ll Fix conflict value for metadata "Objective-C Garbage Collection" in the mix of swift and Objective-C bitcode 2020-03-11 13:26:06 -07:00
upgrade-global-ctors.ll
upgrade-global-ctors.ll.bc
upgrade-global-dtors.ll
upgrade-global-dtors.ll.bc
upgrade-importedentity.ll
upgrade-importedentity.ll.bc
upgrade-invariant-group-barrier.ll [IR] Make nosync, nofree and willreturn default for intrinsics. 2020-10-20 11:57:19 +02:00
upgrade-linker-options-2.ll [Bitcode] Avoid duplicating linker option when upgrading 2020-07-23 13:07:28 -07:00
upgrade-linker-options.ll
upgrade-loop-metadata.ll
upgrade-loop-metadata.ll.bc
upgrade-memory-intrinsics.ll [Intrinsics] Added writeonly attribute to the first arg of llvm.memmove 2020-10-19 23:09:41 +02:00
upgrade-module-flag.ll
upgrade-mrr-runtime-calls.bc
upgrade-objcretainrelease-asm.ll
upgrade-objcretainrelease-asm.ll.bc
upgrade-objcretainrelease.ll
upgrade-objcretainrelease.ll.bc
upgrade-pointer-address-space.ll
upgrade-pointer-address-space.ll.bc
upgrade-ptr-annotation.ll Add auto-upgrade support for annotation intrinsics 2021-02-22 15:42:16 -08:00
upgrade-ptr-annotation.ll.bc Add auto-upgrade support for annotation intrinsics 2021-02-22 15:42:16 -08:00
upgrade-section-name.ll
upgrade-subprogram-this.ll
upgrade-subprogram-this.ll.bc
upgrade-subprogram.ll
upgrade-subprogram.ll.bc
upgrade-tbaa.ll
upgrade-var-annotation.ll Add auto-upgrade support for annotation intrinsics 2021-02-22 15:42:16 -08:00
upgrade-var-annotation.ll.bc Add auto-upgrade support for annotation intrinsics 2021-02-22 15:42:16 -08:00
upgrade-vecreduce-intrinsics.ll [llvm][mlir] Promote the experimental reduction intrinsics to be first class intrinsics. 2020-10-07 10:36:44 -07:00
upgrade-vecreduce-intrinsics.ll.bc [llvm][mlir] Promote the experimental reduction intrinsics to be first class intrinsics. 2020-10-07 10:36:44 -07:00
use-list-order2.ll
use-list-order.ll
value-with-long-name.ll
variableArgumentIntrinsic.3.2.ll
variableArgumentIntrinsic.3.2.ll.bc
vector-pcs.ll
vectorInstructions.3.2.ll
vectorInstructions.3.2.ll.bc
visibility-styles.3.2.ll
visibility-styles.3.2.ll.bc
vscale-round-trip.ll [SVE] Pass Scalable argument to VectorType::get in Bitcode Reader 2020-01-22 12:29:25 -08:00
vscale-shuffle.ll [BitcodeReader] Fix DelayedShuffle handling for ConstantExpr shuffles. 2020-06-30 13:23:07 -07:00
vst-forward-declaration.ll
weak-cmpxchg-upgrade.ll
weak-cmpxchg-upgrade.ll.bc
weak-macho-3.5.ll
weak-macho-3.5.ll.bc
x86_intr-upgrade.test OpaquePtr: Require byval on x86_intrcc parameter 0 2020-12-14 16:34:37 -05:00