Old fork of llvm-mirror, used on older RPCS3 builds
Go to file
Matthias Braun 3f1ec42ec7 RegAllocGreedy: Improve live interval order in ReverseLocal mode
When allocating live intervals in linear order and all of them are local
to a single basic block you get an optimal coloring. This is also true
if you reverse the order, but it is not true if you sort live ranges
beginnings in reverse order, change to sort live range endings in
reverse order. Take the following live ranges for example:

   |---| |--------|
|----------| |-------|

They get colored suboptimally with 3 registers if you sort the live range
starting points in reverse order (but optimally with live range begins in order,
or live range ends in reverse order).

Apparently the previous strategy was intentional because of allocation
time considerations. I am having a hard time replicating these effects,
while I see substantial improvements in allocation quality with this
change.

No testcase as none of the (in tree) targets use reverse order mode.

Differential Revision: http://reviews.llvm.org/D8625

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233742 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-31 19:57:49 +00:00
autoconf [ADT][CMake][AutoConf] Fail-fast iterators for DenseMap 2015-03-26 19:25:01 +00:00
bindings Go bindings: use MDNode::replaceAllUsesWith instead of MDTuple::replaceAllUsesWith. 2015-03-05 22:55:38 +00:00
cmake [CMake] Removing duplicates from the list of test suites to generate targets for. 2015-03-27 21:45:49 +00:00
docs [docs] add cross-reference 2015-03-31 15:07:53 +00:00
examples Rework r233647, "llvm/examples: Suppress building a few JIT examples." 2015-03-31 16:41:25 +00:00
include Make llc use getHostCPUFeatures when 'native' is specified for cpu. 2015-03-31 05:52:57 +00:00
lib RegAllocGreedy: Improve live interval order in ReverseLocal mode 2015-03-31 19:57:49 +00:00
projects Reverse the order libc++ and libc++abi are added in CMake. 2015-03-04 01:16:43 +00:00
test [X86, AVX] fix zero-extending integer operand load patterns to use integer instructions 2015-03-31 18:43:43 +00:00
tools Make llc use getHostCPUFeatures when 'native' is specified for cpu. 2015-03-31 05:52:57 +00:00
unittests Verifier: Move over DISubprogram::Verify() 2015-03-31 02:09:55 +00:00
utils [MCInstPrinter] Enable MCInstPrinter to change its behavior based on the 2015-03-27 20:36:02 +00:00
.arcconfig Updated phabricator server. 2014-04-07 03:57:04 +00:00
.clang-format Test commit. 2014-03-02 13:08:46 +00:00
.clang-tidy Enable display of compiler diagnostics in clang-tidy by default. 2014-10-29 17:29:38 +00:00
.gitignore Ignore compile_commands.json only at the root of the tree. 2015-03-26 18:55:42 +00:00
CMakeLists.txt CMake: enable installing utils 2015-03-27 16:53:06 +00:00
CODE_OWNERS.TXT Tom is also responsible for the 3.6 branch. 2015-03-16 18:15:27 +00:00
configure [ADT][CMake][AutoConf] Fail-fast iterators for DenseMap 2015-03-26 19:25:01 +00:00
CREDITS.TXT Rise from the dead and update personal info 2014-08-25 17:51:04 +00:00
LICENSE.TXT Update for a new year. 2015-03-12 01:25:29 +00:00
llvm.spec.in Tidy up. s/Low Level Virtual Machine/LLVM/. 2012-01-25 22:00:23 +00:00
LLVMBuild.txt Remove the very substantial, largely unmaintained legacy PGO 2013-10-02 15:42:23 +00:00
Makefile [configure/make] Propagate names of build host tools when making BuildTools 2014-03-25 21:45:41 +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 a check for misbehaving -Wcomment from gcc-4.7 and add 2014-11-05 00:35:15 +00:00
Makefile.rules Add support for SunOS function/data sections and associated 2015-03-03 20:54:29 +00:00
README.txt Revert test commit at revision 233535. 2015-03-30 12:39:03 +00:00

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for LLVM,
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.