llvm-project/llvm/lib
Petr Pavlu 8b6eff4e77 [ARM] Fix over-alignment in arguments that are HA of 128-bit vectors
Code in `CC_ARM_AAPCS_Custom_Aggregate()` is responsible for handling
homogeneous aggregates for `CC_ARM_AAPCS_VFP`. When an aggregate ends up
fully on stack, the function tries to pack all resulting items of the
aggregate as tightly as possible according to AAPCS.

Once the first item was laid out, the alignment used for consecutive
items was the size of one item. This logic went wrong for 128-bit
vectors because their alignment is normally only 64 bits, and so could
result in inserting unexpected padding between the first and second
element.

The patch fixes the problem by updating the alignment with the item size
only if this results in reducing it.

Differential Revision: https://reviews.llvm.org/D49720

llvm-svn: 338233
2018-07-30 08:49:30 +00:00
..
Analysis [InstSimplify] fold funnel shifts with 0-shift amount 2018-07-29 16:36:38 +00:00
AsmParser [AsmParser] Fix inconsistent declaration parameter name 2018-07-12 02:03:53 +00:00
BinaryFormat [dwarfdump] Add pretty printer for accelerator table based on Atom. 2018-07-13 17:21:51 +00:00
Bitcode [ThinLTO] Only emit referenced type id records in index files 2018-07-19 22:25:56 +00:00
CodeGen [RegisterScavenger] Fix debug print 2018-07-30 08:17:00 +00:00
DebugInfo [DWARF v5] Don't report an error when the .debug_rnglists section is empty or non-existent. Fixes PR38297. 2018-07-26 01:12:41 +00:00
Demangle Try to fix build. 2018-07-30 03:25:27 +00:00
ExecutionEngine Move JIT listener C binding fallbackks to ExecutionEngineBindings.cpp. 2018-07-25 15:04:57 +00:00
FuzzMutate [llvm-opt-fuzzer] Add irce to the fuzzing options 2018-03-20 11:32:13 +00:00
Fuzzer
IR [DebugInfo] LowerDbgDeclare: Add derefs when handling CallInst users 2018-07-26 20:56:53 +00:00
IRReader LLParser: add an argument for overriding data layout and do not check alloca addr space 2018-01-30 22:32:39 +00:00
LTO [LTO] Don't internalize declarations 2018-07-27 05:40:29 +00:00
LineEditor
Linker [NFC] Remove an empty line. 2018-07-27 06:50:45 +00:00
MC [MC] Add support for the .rva assembler directive for COFF targets 2018-07-26 20:11:26 +00:00
Object [llvm-objdump] Add dynamic section printing to private-headers option 2018-07-25 11:09:20 +00:00
ObjectYAML MC: Implement support for new .addrsig and .addrsig_sym directives. 2018-07-17 22:17:18 +00:00
Option Re-revert "[Option] Fix PR37006 prefix choice in findNearest" 2018-05-19 16:21:01 +00:00
Passes [ThinLTO] Enable ThinLTO WholeProgramDevirt and LowerTypeTests in new PM 2018-07-19 14:51:32 +00:00
ProfileData [InstrProf] Use comdats on COFF for available_externally functions 2018-07-26 22:59:17 +00:00
Support [dsymutil] Simplify temporary file handling. 2018-07-29 14:56:15 +00:00
TableGen [TableGen] Add missing std::moves to fix build failure. 2018-07-11 08:57:56 +00:00
Target [ARM] Fix over-alignment in arguments that are HA of 128-bit vectors 2018-07-30 08:49:30 +00:00
Testing [LLVMTestingSupport] Add explicit linkage to LLVMSupport 2018-04-08 06:49:17 +00:00
ToolDrivers Give llvm-lib rudimentary help output. 2018-07-14 02:29:44 +00:00
Transforms [NFC] Prepare GuardWidening for widening of cond branches 2018-07-30 07:07:32 +00:00
WindowsManifest Convert line endings of lib/WindowsManifest/CMakeLists.txt to unix. 2018-04-07 04:28:08 +00:00
XRay [XRay][compiler-rt] Add PID field to llvm-xray tool and add PID metadata record entry in FDR mode 2018-07-13 05:38:22 +00:00
CMakeLists.txt
LLVMBuild.txt