LLVM backend for 6502
Go to file
Quentin Colombet 2c6ef1c433 [InstCombiner] Expose opportunities to merge subtract and comparison.
Several architectures use the same instruction to perform both a comparison and
a subtract. The instruction selection framework does not allow to consider
different basic blocks to expose such fusion opportunities.

Therefore, these instructions are “merged” by CSE at MI IR level.

To increase the likelihood of CSE to apply in such situation, we reorder the
operands of the comparison, when they have the same complexity, so that they
matches the order of the most frequent subtract.
E.g.,

icmp A, B
...
sub B, A

<rdar://problem/14514580>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190352 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-09 20:56:48 +00:00
autoconf [conf] Add config variable to disable crash related overrides. 2013-08-30 20:39:21 +00:00
bindings We're in 3.4 land now. 2013-05-07 20:31:28 +00:00
cmake [CMake] Add -O1 in debug builds with LLVM_USE_SANITIZER 2013-09-02 09:15:01 +00:00
docs [docs] Fix Sphinx warning. 2013-09-09 19:13:28 +00:00
examples ExceptionDemo.cpp: Tweak a @param. [-Wdocumentation] 2013-07-29 11:03:50 +00:00
include Add the gnu pubnames and pubtypes sections to the mc object file 2013-09-09 20:03:14 +00:00
lib [InstCombiner] Expose opportunities to merge subtract and comparison. 2013-09-09 20:56:48 +00:00
projects Port the detection of zlib from the main autoconf system to the sample 2013-08-18 01:55:15 +00:00
runtime Bring back the build of libprofile_rt on Sparc. It is now working correctly. See: 2013-09-08 09:15:09 +00:00
test [InstCombiner] Expose opportunities to merge subtract and comparison. 2013-09-09 20:56:48 +00:00
tools Debug Info: Use DIScopeRef for DIType::getContext. 2013-09-09 19:47:11 +00:00
unittests Update CMake file to fix buildbots. 2013-09-09 19:25:11 +00:00
utils debuginfo-tests: Add support for an lldb wrapper script 2013-09-06 18:12:01 +00:00
.arcconfig Add .arcconfig to the repository. Useful if someone wants to use phabricator's command line tool. 2012-12-01 12:07:58 +00:00
.clang-format Add a clang-format file so that the tool can automatically detect the 2013-09-02 07:19:04 +00:00
.gitignore Add extra vim swap file pattern 2012-10-09 23:48:34 +00:00
CMakeLists.txt [conf] Add config variable to disable crash related overrides. 2013-08-30 20:39:21 +00:00
CODE_OWNERS.TXT Add more owners to CODE_OWNERS.TXT (Kostya Serebryany: AddressSanitizer and ThreadSanitizer; Evgeniy Stepanov: MemorySanitizer) 2013-06-27 08:47:12 +00:00
configure [conf] Add config variable to disable crash related overrides. 2013-08-30 20:39:21 +00:00
CREDITS.TXT Test commit. 2013-08-16 18:09:06 +00:00
LICENSE.TXT Be more specific and capitalize filenames. 2013-05-21 21:22:34 +00:00
llvm.spec.in Tidy up. s/Low Level Virtual Machine/LLVM/. 2012-01-25 22:00:23 +00:00
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile Fix regular expression used by 'make update' to only look for 'I' and '?' at the start of svn info results and to check for spaces after 'I' instead of just after '?'. 2013-07-03 14:48:37 +00:00
Makefile.common Makefile.common: Update a description, s/Source/SOURCES/ , according to MakefileGuide.html#control-variables . 2012-12-07 01:43:23 +00:00
Makefile.config.in Add an autoconf option for turning on -gsplit-dwarf by default 2013-06-25 01:12:25 +00:00
Makefile.rules Makefile.rules: Avoid -fomit-frame-pointer also on cygwin due to PR14646. 2013-08-18 03:38:40 +00:00
README.txt test 2013-04-17 05:34:03 +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.