LLVM backend for 6502
Go to file
Chris Lattner 1add46ddfa Carve out a place in instcombine to put transformations which work knowing that their
result is non-zero.  Implement an example optimization (PR9814), which allows us to
transform:
  A / ((1 << B) >>u 2)
into:
  A >>u (B-2)

which we compile into:

_divu3:                                 ## @divu3
	leal	-2(%rsi), %ecx
	shrl	%cl, %edi
	movl	%edi, %eax
	ret

instead of:

_divu3:                                 ## @divu3
	movb	%sil, %cl
	movl	$1, %esi
	shll	%cl, %esi
	shrl	$2, %esi
	movl	%edi, %eax
	xorl	%edx, %edx
	divl	%esi, %eax
	ret



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131860 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-22 18:18:41 +00:00
autoconf Re-add the autoconf rule for the docs/doxygen.cfg file. 2011-05-13 03:27:56 +00:00
bindings
cmake Another try at fixing cmake. 2011-05-19 00:13:04 +00:00
docs insertvalue takes a variable number of arguments, document this, fixing PR9935. 2011-05-22 07:18:08 +00:00
examples Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
include Add a parameter to ConstantFoldTerminator() that callers can use to ask it to also clean up the condition of any conditional terminator it folds to be unconditional, if that turns the condition into dead code. This just means it calls RecursivelyDeleteTriviallyDeadInstructions() in strategic spots. It defaults to the old behavior. 2011-05-22 16:24:18 +00:00
lib Carve out a place in instcombine to put transformations which work knowing that their 2011-05-22 18:18:41 +00:00
projects Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
runtime The computation of string length is not that complicated. Fix it, again. :) 2011-05-05 23:52:18 +00:00
test Carve out a place in instcombine to put transformations which work knowing that their 2011-05-22 18:18:41 +00:00
tools initialize and finalize function passes, pointed out by Cameron. 2011-05-22 06:44:19 +00:00
unittests Add CreateLifetimeStart and CreateLifetimeEnd to the IRBuilder, with plans to 2011-05-21 23:14:36 +00:00
utils Fix PR9947 by placing OPFL_MemRefs on the node using memory operands rather than 2011-05-19 21:13:30 +00:00
website
.gitignore
build-for-llvm-top.sh
CMakeLists.txt Rename profile_rt.so to libprofile_rt.so under configure+make (it already was 2011-04-29 02:12:06 +00:00
configure Re-add the autoconf rule for the docs/doxygen.cfg file. 2011-05-13 03:27:56 +00:00
CREDITS.TXT
LICENSE.TXT
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
README.txt reverting test commit 2011-05-12 17:38:08 +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.