LLVM backend for 6502
Go to file
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
autoconf Re-enable support for --program-prefix. 2012-10-01 18:40:32 +00:00
bindings Fix the ocaml binding breakage from TargetData -> DataLayout changes. 2012-10-08 17:06:25 +00:00
cmake [CMake] add_lit_testsuite: EXCLUDE_FROM_ALL excludes the test ${target} out of check-all. 2012-10-10 13:32:55 +00:00
docs Add bitcode instruction encoding documentation for module version 2012-10-12 18:13:17 +00:00
examples ExceptionDemo.cpp: Use Function::setDoesNotReturn(). Attributes stuff was updated. 2012-10-12 14:11:48 +00:00
include [ms-inline asm] Remove the MatchInstruction() function. Previously, this was 2012-10-13 00:26:04 +00:00
lib Teach SROA to cope with wrapper aggregates. These show up a lot in ABI 2012-10-13 10:49:33 +00:00
projects Re-enable support for --program-prefix. 2012-10-01 18:40:32 +00:00
runtime Place temporary LTO files into their own subdirectory. 2012-10-10 05:29:15 +00:00
test Teach SROA to cope with wrapper aggregates. These show up a lot in ABI 2012-10-13 10:49:33 +00:00
tools Set default CPU for Darwin targets with LTO. <rdar://problem/12457841> 2012-10-12 17:39:25 +00:00
unittests Add powerpc-ibm-aix to Triple. Patch by Kai. 2012-10-12 11:08:57 +00:00
utils [ms-inline asm] Use the new API introduced in r165830 in lieu of the 2012-10-12 22:53:36 +00:00
.gitignore Add extra vim swap file pattern 2012-10-09 23:48:34 +00:00
CMakeLists.txt Removing dependency on third party library for Intel JIT event support. 2012-09-28 17:35:20 +00:00
CODE_OWNERS.TXT Add the list of code owners to the top level of the LLVM source tree to 2012-07-26 08:04:09 +00:00
configure Re-enable support for --program-prefix. 2012-10-01 18:40:32 +00:00
CREDITS.TXT Move TargetData to DataLayout. 2012-10-08 16:40:38 +00:00
LICENSE.TXT Add YAML parser to Support. 2012-04-03 23:09:22 +00:00
llvm.spec.in Tidy up. s/Low Level Virtual Machine/LLVM/. 2012-01-25 22:00:23 +00:00
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile Remove dead variable. 2012-10-10 18:20:49 +00:00
Makefile.common [docs] Remove unsupported references to ExtraSource variable. 2012-05-15 21:32:27 +00:00
Makefile.config.in Re-enable support for --program-prefix. 2012-10-01 18:40:32 +00:00
Makefile.rules Use MACOSX_DEPLOYMENT_TARGET when it is set. <rdar://problem/12433905> 2012-10-12 21:48:14 +00:00
README.txt test commit 2012-07-11 17:34:12 +00:00

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the HTML documentation provided in docs/index.html for further
assistance with LLVM.

If you're writing a package for LLVM, see docs/Packaging.html for our
suggestions.