LLVM backend for 6502
Go to file
Dan Gohman f20d70d57e Fix a bug in LoopStrengthReduce that caused it to emit IR with
use-before-def. The problem comes up in code with multiple PHIs where
one PHI is being rewritten in terms of the other, but the other needs
to be casted first. LLVM rules requre the cast instruction to be
inserted after any PHI instructions, but when instructions were
inserted to replace the second PHI value with a function of the first,
they were ended up going before the cast instruction. Avoid this
problem by remembering the location of the cast instruction, when one
is needed, and inserting the expansion of the new value after it.

This fixes a bug that surfaced in 255.vortex on x86-64 when
instcombine was removed from the middle of the loop optimization
passes. 


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51169 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 23:26:57 +00:00
autoconf Added configure switches for PIC16 in configure.ac. 2008-05-14 08:03:23 +00:00
bindings Merge LLVMBuilder and FoldingBuilder, calling 2008-04-13 06:22:09 +00:00
docs Add documentation for tail call optimization to CodeGenerator.html. Add a link 2008-05-14 09:17:12 +00:00
examples Fix a bunch of 80col violations that arose from the Create API change. Tweak makefile targets to find these better. 2008-05-15 10:04:30 +00:00
include Fix typos and comments. 2008-05-15 22:13:02 +00:00
lib Fix a bug in LoopStrengthReduce that caused it to emit IR with 2008-05-15 23:26:57 +00:00
projects remove attributions from the rest of the llvm makefiles. 2007-12-29 20:11:13 +00:00
runtime Fixing the stack walker. 2008-01-24 05:16:36 +00:00
test Fix a bug in LoopStrengthReduce that caused it to emit IR with 2008-05-15 23:26:57 +00:00
tools Fix a bunch of 80col violations that arose from the Create API change. Tweak makefile targets to find these better. 2008-05-15 10:04:30 +00:00
utils Do not generate by TableGen the hard-coded standard, target-independent part of 2008-05-14 10:17:11 +00:00
website Prepare for "core" website. 2007-08-03 05:43:35 +00:00
win32 Reverting r51100...I need to use VC++ 2005. 2008-05-15 20:09:48 +00:00
Xcode Merge LLVMBuilder and FoldingBuilder, calling 2008-04-13 06:22:09 +00:00
build-for-llvm-top.sh Allow the configure options to be set according to the llvm-top options. 2007-08-31 19:53:42 +00:00
configure Added configure switches for PIC16 in configure.ac. 2008-05-14 08:03:23 +00:00
CREDITS.TXT merge of use-diet branch to trunk 2008-05-10 08:32:32 +00:00
LICENSE.TXT scoped_ptr.h was removed. 2008-02-09 22:50:06 +00:00
llvm.spec.in * llvm.spec.in: update blurb 2007-07-13 09:48:29 +00:00
Makefile a happier version of happiness 2008-03-21 22:17:07 +00:00
Makefile.common remove attributions from the rest of the llvm makefiles. 2007-12-29 20:11:13 +00:00
Makefile.config.in Reverting r48974. See PR2183 for details. 2008-03-31 16:46:23 +00:00
Makefile.rules Fix a bunch of 80col violations that arose from the Create API change. Tweak makefile targets to find these better. 2008-05-15 10:04:30 +00:00
ModuleInfo.txt Update to include clean and install commands. 2007-07-20 20:54:41 +00:00
README.txt test 2007-04-20 20:49:25 +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.