Old fork of llvm-mirror, used on older RPCS3 builds
Go to file
Geoff Berry d168a77ec3 Re-enable "[MachineCopyPropagation] Extend pass to do COPY source forwarding"
Issues addressed since original review:
- Moved removal of dead instructions found by
  LiveIntervals::shrinkToUses() outside of loop iterating over
  instructions to avoid instructions being deleted while pointed to by
  iterator.
- Fixed ARMLoadStoreOptimizer bug exposed by this change in r311907.
- The pass no longer forwards COPYs to physical register uses, since
  doing so can break code that implicitly relies on the physical
  register number of the use.
- The pass no longer forwards COPYs to undef uses, since doing so
  can break the machine verifier by creating LiveRanges that don't
  end on a use (since the undef operand is not considered a use).

  [MachineCopyPropagation] Extend pass to do COPY source forwarding

  This change extends MachineCopyPropagation to do COPY source forwarding.

  This change also extends the MachineCopyPropagation pass to be able to
  be run during register allocation, after physical registers have been
  assigned, but before the virtual registers have been re-written, which
  allows it to remove virtual register COPY LiveIntervals that become dead
  through the forwarding of all of their uses.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312328 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-01 14:27:20 +00:00
bindings Update the Go bindings for r309426 (remove offset from llvm.dbg.value) 2017-07-28 22:44:44 +00:00
cmake Revert r312240 2017-08-31 15:51:23 +00:00
docs [Docs] Update CodingStandards to recommend range-based for loops 2017-08-31 12:34:20 +00:00
examples [ORC][Kaleidoscope] Update Chapter 1 of BuildingAJIT to incorporate recent ORC 2017-08-15 19:20:10 +00:00
include Re-enable "[MachineCopyPropagation] Extend pass to do COPY source forwarding" 2017-09-01 14:27:20 +00:00
lib Re-enable "[MachineCopyPropagation] Extend pass to do COPY source forwarding" 2017-09-01 14:27:20 +00:00
projects
resources
runtimes [CMake] Add more runtime configurations. 2017-09-01 01:05:59 +00:00
test Re-enable "[MachineCopyPropagation] Extend pass to do COPY source forwarding" 2017-09-01 14:27:20 +00:00
tools Fix check-llvm on kernel 4.9+ with asan or msan 2017-09-01 01:47:34 +00:00
unittests [BinaryFormat] Fix out of bounds read. 2017-08-31 12:50:42 +00:00
utils [lit] Fix some issues with short paths in test discovery introduced in r312254 2017-08-31 21:56:14 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt [cmake] Stop putting the revision info in LLVM_VERSION_STRING 2017-08-29 21:44:21 +00:00
CODE_OWNERS.TXT [ARC] Add ARC backend. 2017-08-24 15:40:33 +00:00
configure
CREDITS.TXT Another test commit 2017-07-01 03:24:06 +00:00
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
README.txt Test commit access 2017-08-18 02:39:28 +00:00
RELEASE_TESTERS.TXT [RelTest] Diana is doing both releases now 2017-07-14 08:33:52 +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 are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.