LLVM backend for 6502
Go to file
Chris Lattner fdb19e5887 Fix PR2506 by being a bit more careful about reverse fact propagation when
disproving a condition.  This actually compiles the existing testcase
(udiv_select_to_select_shift) to:

define i64 @test(i64 %X, i1 %Cond) {
entry:
	%divisor1.t = lshr i64 %X, 3		; <i64> [#uses=1]
	%quotient2 = lshr i64 %X, 3		; <i64> [#uses=1]
	%sum = add i64 %divisor1.t, %quotient2		; <i64> [#uses=1]
	ret i64 %sum
}

instead of:

define i64 @test(i64 %X, i1 %Cond) {
entry:
	%quotient1.v = select i1 %Cond, i64 3, i64 4		; <i64> [#uses=1]
	%quotient1 = lshr i64 %X, %quotient1.v		; <i64> [#uses=1]
	%quotient2 = lshr i64 %X, 3		; <i64> [#uses=1]
	%sum = add i64 %quotient1, %quotient2		; <i64> [#uses=1]
	ret i64 %sum
}



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53534 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-14 00:15:52 +00:00
autoconf Make LLVM compile on DragonFly BSD (PR2499). 2008-06-26 10:36:58 +00:00
bindings Remove a duplicative binding. Patch by Mahadevan R. 2008-05-19 05:47:10 +00:00
docs add a description. 2008-07-13 21:27:36 +00:00
examples API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. Legacy interfaces will be in place for some time. (Merge from use-diet branch.) 2008-05-16 19:29:10 +00:00
include Inline typedef for alist_iterator::pointer to work with MSVC++. 2008-07-12 18:28:46 +00:00
lib Fix PR2506 by being a bit more careful about reverse fact propagation when 2008-07-14 00:15:52 +00:00
projects Allow the test suite to be checked out into projects/test-suite. 2008-06-24 13:01:57 +00:00
runtime Fixing the stack walker. 2008-01-24 05:16:36 +00:00
test Fix PR2506 by being a bit more careful about reverse fact propagation when 2008-07-14 00:15:52 +00:00
tools Fix comment. 2008-07-13 20:14:38 +00:00
utils Porting r53478 into mainline: 2008-07-11 22:42:10 +00:00
website Prepare for "core" website. 2007-08-03 05:43:35 +00:00
win32 Remove deleted files from VC++ project. 2008-07-13 11:12:36 +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 Make LLVM compile on DragonFly BSD (PR2499). 2008-06-26 10:36:58 +00:00
CREDITS.TXT merge of use-diet branch to trunk 2008-05-10 08:32:32 +00:00
LICENSE.TXT llvmc doesn't exist anymore, and llvmc2 doesn't have a special license file. 2008-06-20 20:05:57 +00:00
llvm.spec.in * llvm.spec.in: update blurb 2007-07-13 09:48:29 +00:00
Makefile For PR1338: rename include/llvm/ADT/ilist and friends to end with ".h" 2008-05-29 17:41:17 +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 Add support for building on solaris, working around namespace 2008-06-24 17:44:42 +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.