1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/include/llvm
Geoff Berry ff1e9931cc Re-enable "[MachineCopyPropagation] Extend pass to do COPY source forwarding"
Issues addressed since original review:
- Avoid bug in regalloc greedy/machine verifier when forwarding to use
  in an instruction that re-defines the same virtual register.
- Fixed bug when forwarding to use in EarlyClobber instruction slot.
- Fixed incorrect forwarding to register definitions that showed up in
  explicit_uses() iterator (e.g. in INLINEASM).
- 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.

llvm-svn: 314729
2017-10-02 22:01:37 +00:00
..
ADT fix 80 column violation. 2017-09-29 22:46:22 +00:00
Analysis Revert "Use the basic cost if a GEP is not used as addressing mode" 2017-09-29 22:04:45 +00:00
AsmParser Move the stripping of invalid debug info from the Verifier to AutoUpgrade. 2017-10-02 18:31:29 +00:00
BinaryFormat Add ELFOSABI_FIRST_ARCH, ELFOSABI_LAST_ARCH and start using those in llvm-readobj 2017-10-02 20:49:58 +00:00
Bitcode
CodeGen Re-enable "[MachineCopyPropagation] Extend pass to do COPY source forwarding" 2017-10-02 22:01:37 +00:00
Config Cleanup some problems with LLVM_ENABLE_DUMP in release builds, and 2017-09-27 21:19:56 +00:00
DebugInfo Fix two header comments. NFC. 2017-10-02 19:48:28 +00:00
Demangle
ExecutionEngine [ORC] Fix the type of RTDyldObjectLinkingLayer::NotifyLoadedFtor. 2017-09-28 17:43:07 +00:00
FuzzMutate
IR Update getMergedLocation to check the instruction type and merge properly. 2017-10-02 18:13:14 +00:00
IRReader Move the stripping of invalid debug info from the Verifier to AutoUpgrade. 2017-10-02 18:31:29 +00:00
LineEditor
Linker
LTO [Support] Rename tool_output_file to ToolOutputFile, NFC 2017-09-23 01:03:17 +00:00
MC Fix Wmismatched-tags warning. 2017-09-29 16:52:27 +00:00
Object [WebAssembly] Use function/global index space in WasmSymbol 2017-09-26 18:21:12 +00:00
ObjectYAML [WebAssembly] Allow each data segment to specify its own alignment 2017-09-29 16:50:08 +00:00
Option
Passes
ProfileData Separate the logic when handling indirect calls in SamplePGO ThinLTO compile phase and other phases. 2017-10-01 05:24:51 +00:00
Support Use a BumpPtrAllocator for Loop objects 2017-09-28 02:45:42 +00:00
TableGen
Target [SystemZ] implement shouldCoalesce() 2017-09-29 14:31:39 +00:00
Testing/Support
ToolDrivers
Transforms Separate the logic when handling indirect calls in SamplePGO ThinLTO compile phase and other phases. 2017-10-01 05:24:51 +00:00
WindowsManifest Fix bug 34608 by moving private header out of public header. 2017-09-14 23:01:13 +00:00
WindowsResource [llvm-readobj] Teach readobj to dump .res files (WindowsResource). 2017-09-20 18:33:35 +00:00
XRay [XRay] convert FDR arg1 log entries 2017-09-27 04:48:03 +00:00
CMakeLists.txt
InitializePasses.h Re-enable "[MachineCopyPropagation] Extend pass to do COPY source forwarding" 2017-10-02 22:01:37 +00:00
LinkAllIR.h
LinkAllPasses.h
module.modulemap [ARC] Prepare the implementation of relocation for LLD 2017-09-13 01:49:49 +00:00
module.modulemap.build
Pass.h
PassAnalysisSupport.h
PassInfo.h
PassRegistry.h
PassSupport.h