LLVM backend for 6502
Go to file
Benjamin Kramer 0baa94a13b InstCombine: Turn icmp + sext into bitwise/integer ops when the input has only one unknown bit.
int test1(unsigned x) { return (x&8) ? 0 : -1; }
int test3(unsigned x) { return (x&8) ? -1 : 0; }

before (x86_64):
_test1:
	andl	$8, %edi
	cmpl	$1, %edi
	sbbl	%eax, %eax
	ret
_test3:
	andl	$8, %edi
	cmpl	$1, %edi
	sbbl	%eax, %eax
	notl	%eax
	ret

after:
_test1:
	shrl	$3, %edi
	andl	$1, %edi
	leal	-1(%rdi), %eax
	ret
_test3:
	shll	$28, %edi
	movl	%edi, %eax
	sarl	$31, %eax
	ret

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128732 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-01 20:09:10 +00:00
autoconf Check that the AsmParser exists for the native target to enable initialization 2011-03-14 22:12:35 +00:00
bindings
cmake Fix assignment of -fPIC to CMAKE_C_FLAGS. Configure llvm-config.in.in 2011-04-01 19:36:06 +00:00
docs Pick better examples. "fpext float 3.1415 to double" won't parse because 3.1415 2011-03-31 18:20:19 +00:00
examples Remove PHINode::reserveOperandSpace(). Instead, add a parameter to 2011-03-30 11:28:46 +00:00
include Various Instructions' resizeOperands() methods are only used to grow the 2011-04-01 08:00:58 +00:00
lib InstCombine: Turn icmp + sext into bitwise/integer ops when the input has only one unknown bit. 2011-04-01 20:09:10 +00:00
projects
runtime
test InstCombine: Turn icmp + sext into bitwise/integer ops when the input has only one unknown bit. 2011-04-01 20:09:10 +00:00
tools Fix assignment of -fPIC to CMAKE_C_FLAGS. Configure llvm-config.in.in 2011-04-01 19:36:06 +00:00
unittests While testing dragonegg I noticed that isCastable and getCastOpcode 2011-04-01 03:34:54 +00:00
utils Add annotations to tablegen-generated processor itineraries, or replace them with something meaningful. I want to be able to read and debug the generated tables. 2011-04-01 02:22:47 +00:00
website
.gitignore
build-for-llvm-top.sh
CMakeLists.txt Supports building with a list of targets that does not contain 2011-03-23 17:42:13 +00:00
configure Check that the AsmParser exists for the native target to enable initialization 2011-03-14 22:12:35 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
Makefile
Makefile.common
Makefile.config.in
Makefile.rules Makefile.rules: [PR2928] "make install" may install include files along explicit pattern, not to install CMake's building stuff. 2011-03-09 09:11:27 +00:00
ModuleInfo.txt
README.txt

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.