1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 04:52:54 +02:00
Go to file
Jakob Stoklund Olesen 6d4ef2b65f Consider ad hoc aliasing when building RegUnits.
Register units can be used to compute if two registers overlap:

  A overlaps B iff units(A) intersects units(B).

With this change, the above holds true even on targets that use ad hoc
aliasing (currently only ARM). This means that register units can be
used to implement regsOverlap() more efficiently, and the register
allocator can use the concept to model interference.

When there is no ad hoc aliasing, the register units correspond to the
maximal cliques in the register overlap graph. This is optimal, no other
register unit assignment can have fewer units.

With ad hoc aliasing, weird things are possible, and we don't try too
hard to compute the maximal cliques. The current approach is always
correct, and it works very well (probably optimally) as long as the ad
hoc aliasing doesn't have cliques larger than pairs. It seems unlikely
that any target would need more.

llvm-svn: 156763
2012-05-14 15:20:39 +00:00
autoconf Revert r156393, "[tests] Remove some remaining DejaGNU related cruft.", this 2012-05-08 18:26:07 +00:00
bindings [python] Add negative MemoryBuffer testcase 2012-03-22 11:23:52 +00:00
cmake Adding -fcolor-diagnostics is causing problem to users that parse the build 2012-05-08 18:11:06 +00:00
docs Formatting changes. Remove the '...' placeholders. 2012-05-14 08:11:53 +00:00
examples Remove llvm-ld and llvm-stub (which is only used by llvm-ld). 2012-04-19 19:27:54 +00:00
include Add BitVector::anyCommon(). 2012-05-14 15:01:19 +00:00
lib SwitchInst cosmetics: renamed "Hash" method to "hash" 2012-05-14 08:26:31 +00:00
projects Update all outdated autoconf files in the sample project. 2012-05-05 15:02:39 +00:00
runtime Switch to c-style comments in a C file. 2012-04-27 19:30:29 +00:00
test Add support for the .rept directive. Patch by Vladmir Sorokin. I added support 2012-05-12 16:31:10 +00:00
tools Fix a use after free when the streamer is destroyed. Fixes pr12622. 2012-05-11 03:42:13 +00:00
unittests Add BitVector::anyCommon(). 2012-05-14 15:01:19 +00:00
utils Consider ad hoc aliasing when building RegUnits. 2012-05-14 15:20:39 +00:00
.gitignore Add tools/lld to .gitignore. 2012-05-02 21:25:32 +00:00
CMakeLists.txt Make it possible to switch off solution folders. VS Express does not support 2012-05-09 15:10:54 +00:00
configure Revert r156393, "[tests] Remove some remaining DejaGNU related cruft.", this 2012-05-08 18:26:07 +00:00
CREDITS.TXT Update the documentation of CellSPU, in case it gets removed in 3.1. 2012-04-29 20:00:55 +00:00
LICENSE.TXT Add YAML parser to Support. 2012-04-03 23:09:22 +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 Do not install llvm-config-host for cross-builds of clang. rdar://11317847 2012-05-09 00:07:02 +00:00
Makefile.common Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
Makefile.config.in Make IntelJITEvents and OProfileJIT as optional libraries and add 2012-05-07 19:38:40 +00:00
Makefile.rules Make IntelJITEvents and OProfileJIT as optional libraries and add 2012-05-07 19:38:40 +00:00
README.txt test commit 2012-03-20 13:12:38 +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.