LLVM backend for 6502
Go to file
Hal Finkel 92b38a9d1c Remove extra truncs/exts around i32 bit operations on PPC64
This generalizes the code to eliminate extra truncs/exts around i1 bit
operations to also do the same on PPC64 for i32 bit operations. This eliminates
a fairly prevalent code wart:

int foo(int a) {
  return a == 5 ? 7 : 8;
}

On PPC64, because of the extension implied by the ABI, this would generate:

	cmplwi 0, 3, 5
	li 12, 8
	li 4, 7
	isel 3, 4, 12, 2
	rldicl 3, 3, 0, 32
	blr

where the 'rldicl 3, 3, 0, 32', the extension, is completely unnecessary. At
least for the single-BB case (which is all that the DAG combine mechanism can
handle), this unnecessary extension is no longer generated.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202600 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-01 21:36:57 +00:00
autoconf [C++11] Replace autoconf --enable-cxx11 with --enable-cxx1y. The 2014-03-01 03:33:08 +00:00
bindings [python-bindings] Remove some cruft that snuck in. 2014-02-23 04:43:26 +00:00
cmake [C++11] Switch the CMake option from LLVM_ENABLE_CXX11 (default on) to 2014-03-01 03:16:07 +00:00
docs [docs] Update the docs to remove my hedging about C++98 vs. C++11. =] 2014-03-01 02:48:03 +00:00
examples Use DataLayout from the module when easily available. 2014-02-25 23:25:17 +00:00
include [C++11] Remove LLVM_HAS_CXX11_STDLIB now that it is just on. 2014-03-01 10:57:19 +00:00
lib Remove extra truncs/exts around i32 bit operations on PPC64 2014-03-01 21:36:57 +00:00
projects Drop libtool from llvm. 2014-02-28 18:17:54 +00:00
test Remove extra truncs/exts around i32 bit operations on PPC64 2014-03-01 21:36:57 +00:00
tools Now that we have C++11, turn simple functors into lambdas and remove a ton of boilerplate. 2014-03-01 11:47:00 +00:00
unittests [C++11] Remove LLVM_HAS_CXX11_STDLIB now that it is just on. 2014-03-01 10:57:19 +00:00
utils Now that we have C++11, turn simple functors into lambdas and remove a ton of boilerplate. 2014-03-01 11:47:00 +00:00
.arcconfig
.clang-format
.gitignore Added .DS_Store entry in .gitignore for ignoring .DS_Store files in the source 2014-01-25 15:15:16 +00:00
CMakeLists.txt [C++11] Switch the CMake option from LLVM_ENABLE_CXX11 (default on) to 2014-03-01 03:16:07 +00:00
CODE_OWNERS.TXT Add myself as owner for libc++ 2014-02-18 14:03:17 +00:00
configure [C++11] Replace autoconf --enable-cxx11 with --enable-cxx1y. The 2014-03-01 03:33:08 +00:00
CREDITS.TXT Fix documentation typos 2013-12-20 00:33:39 +00:00
LICENSE.TXT Update the copyright credits -- Happy new year 2014! 2014-01-01 08:27:31 +00:00
llvm.spec.in
LLVMBuild.txt
Makefile Provide CMake package modules in install tree 2014-02-09 16:37:02 +00:00
Makefile.common
Makefile.config.in [C++11] Replace autoconf --enable-cxx11 with --enable-cxx1y. The 2014-03-01 03:33:08 +00:00
Makefile.rules [C++11] Replace autoconf --enable-cxx11 with --enable-cxx1y. The 2014-03-01 03:33:08 +00:00
README.txt Revert "Test commit to check e-mail address. Please discard this." 2013-10-04 10:59:13 +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 documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.