llvm-6502/test
Chandler Carruth 07525a6be6 Teach SROA to cope with wrapper aggregates. These show up a lot in ABI
type coercion code, especially when targetting ARM. Things like [1
x i32] instead of i32 are very common there.

The goal of this logic is to ensure that when we are picking an alloca
type, we look through such wrapper aggregates and across any zero-length
aggregate elements to find the simplest type possible to form a type
partition.

This logic should (generally speaking) rarely fire. It only ends up
kicking in when an alloca is accessed using two different types (for
instance, i32 and float), and the underlying alloca type has wrapper
aggregates around it. I noticed a significant amount of this occurring
looking at stepanov_abstraction generated code for arm, and suspect it
happens elsewhere as well.

Note that this doesn't yet address truly heinous IR productions such as
PR14059 is concerning. Those result in mismatched *sizes* of types in
addition to mismatched access and alloca types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165870 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-13 10:49:33 +00:00
..
Analysis dependence analysis 2012-10-11 07:32:34 +00:00
Archive
Assembler Don't crash if a .ll file contains a forward-reference that looks like a global 2012-10-11 00:38:25 +00:00
Bindings/Ocaml Move TargetData to DataLayout. 2012-10-08 16:39:34 +00:00
Bitcode Change encoding of instruction operands in bitcode binaries to be relative 2012-10-11 20:20:40 +00:00
BugPoint
CodeGen X86: Promote i8 cmov when both operands are coming from truncates of the same width. 2012-10-13 10:39:49 +00:00
DebugInfo Make sure to generate the right kind of MDNode for enum forward declarations. 2012-10-05 01:49:14 +00:00
ExecutionEngine Some regression tests which are testing the old jit and are exercising functionality which is both known to be broken and not expected to be fixed in the old jit. To remove these from the regression test output, I've marked them XFAIL (for lit tests) and ifdef'd them out (unit tests). These modifications remove the last long-standing regression test failures from the buildbots (though updating the triple to reflect new ubuntu configuration has temporarily caused some new failures). Tested on x86-64 and ARM Linux. 2012-10-08 13:06:30 +00:00
Feature Change the linker_private_weak_def_auto' linkage to linkonce_odr_auto_hide' to 2012-08-17 18:33:14 +00:00
Instrumentation tsan: update the test for new atomic enums 2012-10-03 13:19:20 +00:00
Integer
Linker
MC Add test cases for correct parsing of register names in 32- and 64-bit modes. 2012-10-11 12:42:49 +00:00
Object
Other Enable response files in all tools. Patch by Liu, Yaxun (Sam). I have simplified 2012-10-09 19:52:10 +00:00
Scripts
TableGen
Transforms Teach SROA to cope with wrapper aggregates. These show up a lot in ABI 2012-10-13 10:49:33 +00:00
Unit
Verifier
YAMLParser
CMakeLists.txt [CMake] check-all: Don't include check-llvm into check-all without LLVM_BUILD_TOOLS. 2012-10-10 13:33:00 +00:00
lit.cfg Enable llvm/test/ExecutionEngine/MCJIT also for cygwin. 2012-10-05 14:10:29 +00:00
lit.site.cfg.in
Makefile Revert r117093, "test/Makefile: Force lit -j1 on Cygwin." 2012-10-09 05:07:18 +00:00
Makefile.tests
TestRunner.sh