LLVM backend for 6502
Go to file
Louis Gerbarg 5fb3c84898 Retain alignment requirements for load->selects modified by DAGCombine
DAGCombine may choose to rewrite graphs where two loads feed a select into
graphs where a select of two addresses feed a load. While it sanity checks the
loads to make sure they are broadly equivalent it currently just uses the
alignment restriction of the left node. In cases where the right node has
stronger alignment requiresment this may lead to bad codegen, such as generating
an aligned load where an unaligned load is required. This patch makes the
combine generate a load with an alignment that is the same as whichever is more
restrictive of the two alignments.

Tests included.

rdar://17762530

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214322 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-30 18:24:41 +00:00
autoconf [autoconf] Fixup s/3.5/3.6/. Clang's ident was 3.5.0svn in autoconf build. 2014-07-29 08:35:03 +00:00
bindings
cmake Emit a warning if llvm_map_components_to_libraries() is used noting that its 2014-07-28 13:36:50 +00:00
docs Correct vector type definition in LangRef. 2014-07-30 12:30:06 +00:00
examples
include Add the missing hasLinkOnceODRLinkage predicate. 2014-07-30 15:57:51 +00:00
lib Retain alignment requirements for load->selects modified by DAGCombine 2014-07-30 18:24:41 +00:00
projects
test Retain alignment requirements for load->selects modified by DAGCombine 2014-07-30 18:24:41 +00:00
tools Rename llvm-uselistorder => verify-uselistorder 2014-07-30 17:11:27 +00:00
unittests [Debug Info] add DISubroutineType and its creation takes DITypeArray. 2014-07-28 22:24:06 +00:00
utils Fix FileCheck crash when empty prefix is passed. 2014-07-29 20:30:53 +00:00
.arcconfig
.clang-format
.gitignore
CMakeLists.txt Update LLVM version: 3.5 => 3.6 2014-07-28 22:10:52 +00:00
CODE_OWNERS.TXT Claim AA generally as code owner 2014-07-25 16:45:10 +00:00
configure [autoconf] Fixup s/3.5/3.6/. Clang's ident was 3.5.0svn in autoconf build. 2014-07-29 08:35:03 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in
Makefile.rules
README.txt

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 documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

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