Fork of llvm with experimental commits and workarounds for RPCS3
Go to file
Jim Grosbach 61c5ce1bde Add register-reuse to frame-index register scavenging. When a target uses
a virtual register to eliminate a frame index, it can return that register
and the constant stored there to PEI to track. When scavenging to allocate
for those registers, PEI then tracks the last-used register and value, and
if it is still available and matches the value for the next index, reuses
the existing value rather and removes the re-materialization instructions.
Fancier tracking and adjustment of scavenger allocations to keep more
values live for longer is possible, but not yet implemented and would likely
be better done via a different, less special-purpose, approach to the
problem.

eliminateFrameIndex() is modified so the target implementations can return
the registers they wish to be tracked for reuse.

ARM Thumb1 implements and utilizes the new mechanism. All other targets are
simply modified to adjust for the changed eliminateFrameIndex() prototype.

llvm-svn: 83467
2009-10-07 17:12:56 +00:00
autoconf Fix configure bug that only shows up in a clean build. Don't try to invoke gcc 2009-09-29 06:18:00 +00:00
bindings Expose the rest of the attribute settings. 2009-09-28 04:42:47 +00:00
cmake CMake misses a check for sbrk on NetBSD. 2009-10-05 23:05:32 +00:00
docs callgraph changes came after the 2.6 branch. 2009-10-05 07:07:29 +00:00
examples Revert 82694 "Auto-upgrade malloc instructions to malloc calls." because it causes regressions in the nightly tests. 2009-09-25 18:11:52 +00:00
include Add register-reuse to frame-index register scavenging. When a target uses 2009-10-07 17:12:56 +00:00
lib Add register-reuse to frame-index register scavenging. When a target uses 2009-10-07 17:12:56 +00:00
projects install-sh chmods to 0755 by default, and this causes 'git diff' to show 2009-08-28 16:12:48 +00:00
runtime OptimalEdgeProfiling: Creation of profiles. 2009-09-01 19:03:44 +00:00
test Update NEON struct names to match llvm-gcc changes. 2009-10-06 21:16:19 +00:00
tools Introduce and use convenience methods for getting pointer types 2009-10-06 15:40:36 +00:00
unittests Fix illegal cross-type aliasing. Found by baldrick on a newer gcc. 2009-10-06 19:06:16 +00:00
utils Add instruction flags: hasExtraSrcRegAllocReq and hasExtraDefRegAllocReq. When 2009-10-01 08:21:18 +00:00
website
win32 Revert the ConstantInt constructors back to their 2.5 forms where possible, thanks to contexts-on-types. More to come. 2009-07-24 23:12:02 +00:00
Xcode
build-for-llvm-top.sh
CMakeLists.txt remove llvm-db: it is completely broken and if anyone wants to do a debugger, 2009-10-05 02:29:51 +00:00
configure Regenerate. 2009-09-29 06:18:23 +00:00
CREDITS.TXT Add myself to the blame list. 2009-08-20 15:20:15 +00:00
LICENSE.TXT Add regular expression matching support, based on OpenBSD regexec()/regcomp() 2009-08-30 08:24:09 +00:00
llvm.spec.in
Makefile Speed up clang-only link, by really linking only clang, and not the unittests 2009-09-26 20:18:58 +00:00
Makefile.common
Makefile.config.in Enable -g with DEBUG_SYMBOLS and --enable-debug-symbols instead of 2009-09-27 17:47:29 +00:00
Makefile.rules Remove trailing whitespace from build output. 2009-10-04 17:54:36 +00:00
ModuleInfo.txt
README.txt First test commit 2009-10-05 22:29:11 +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.