LLVM backend for 6502
Go to file
Chris Lattner 0a1c997c27 fix an x86 fast isel issue where we'd completely give up on folding an address
when we have a global variable base an an index.  Instead, just give up on
folding the global variable.

Before we'd geenrate:

_test:                                  ## @test
## BB#0:
	movq	_rtx_length@GOTPCREL(%rip), %rax
	leaq	(%rax), %rax
	addq	%rdi, %rax
	movzbl	(%rax), %eax
	ret

now we generate:

_test:                                  ## @test
## BB#0:
	movq	_rtx_length@GOTPCREL(%rip), %rax
	movzbl	(%rax,%rdi), %eax
	ret

The difference is even more significant when there is a scale
involved.

This fixes rdar://9289558 - total fail with addr mode formation at -O0/x86-64


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129664 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-17 17:47:38 +00:00
autoconf Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
bindings Fix compiling the ocaml kaleidoscope tutorials 2011-02-09 18:32:02 +00:00
cmake Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
docs Introduce support to encode Objective-C property information in debugging information generated for an interface. 2011-04-16 00:11:51 +00:00
examples Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
include Fix rdar://9289512 - not folding load into compare at -O0 2011-04-17 06:35:44 +00:00
lib fix an x86 fast isel issue where we'd completely give up on folding an address 2011-04-17 17:47:38 +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 fix an x86 fast isel issue where we'd completely give up on folding an address 2011-04-17 17:47:38 +00:00
tools Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
unittests Implements StringRef::compare with bounds. It is behaves similarly to strncmp(). Unit tests also included. 2011-04-15 17:56:50 +00:00
utils Initial work to improve documentation for Clang's diagnostics, from Matthieu Monrocq 2011-04-15 22:04:07 +00:00
website
.gitignore Cleanup and document .gitignore. 2010-12-17 17:22:50 +00:00
build-for-llvm-top.sh Patch to build llvm with srcdir != objdir from 2009-01-23 08:42:38 +00:00
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 build: Add support for a SHOW_DIAGNOSTICS build variable. 2011-04-11 22:37:39 +00:00
Makefile.common
Makefile.config.in autoconf: Add --disable-embed-stdcxx to suppress linking libstdc++.a into llvm.dll with --enable-shared on Cygming. 2010-12-29 03:59:14 +00:00
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.