LLVM backend for 6502
Go to file
Chris Lattner 1f821512fc Enhance MemDep: When alias analysis returns a partial alias result,
return it as a clobber.  This allows GVN to do smart things.

Enhance GVN to be smart about the case when a small load is clobbered
by a larger overlapping load.  In this case, forward the value.  This
allows us to compile stuff like this:

int test(void *P) {
  int tmp = *(unsigned int*)P;
  return tmp+*((unsigned char*)P+1);
}

into:

_test:                                  ## @test
	movl	(%rdi), %ecx
	movzbl	%ch, %eax
	addl	%ecx, %eax
	ret

which has one load.  We already handled the case where the smaller
load was from a must-aliased base pointer.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130180 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 01:21:15 +00:00
autoconf Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
bindings
cmake Disable warning C4181: "qualifier applied to reference type; ignored" 2011-04-19 00:03:17 +00:00
docs Regenerate. 2011-04-24 14:17:37 +00:00
examples Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
include Enhance MemDep: When alias analysis returns a partial alias result, 2011-04-26 01:21:15 +00:00
lib Enhance MemDep: When alias analysis returns a partial alias result, 2011-04-26 01:21:15 +00:00
projects Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
runtime Write out uint64_t as i{0..32},i{33..64} instead of i{0..32},0. 2011-04-16 10:25:32 +00:00
test Enhance MemDep: When alias analysis returns a partial alias result, 2011-04-26 01:21:15 +00:00
tools Remove all references to plugins from the LLVMC docs. 2011-04-24 14:17:32 +00:00
unittests PR9214: Convert Metadata API to use ArrayRef. 2011-04-21 19:59:31 +00:00
utils Add a TODO. 2011-04-24 14:17:41 +00:00
website
.gitignore
build-for-llvm-top.sh
CMakeLists.txt Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
configure Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
CREDITS.TXT Another git svn dcommit test. This time let's hope it doesn't kill my repo. 2010-12-10 14:45:10 +00:00
LICENSE.TXT 2010 is upon us. 2010-01-09 18:40:31 +00:00
llvm.spec.in
Makefile
Makefile.common
Makefile.config.in
Makefile.rules Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
ModuleInfo.txt Remove trailing space. This is just an excuse to poke the 2010-10-05 20:32:15 +00:00
README.txt Test commit. 2011-02-11 19:11:57 +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.