1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
llvm-mirror/lib
Philip Reames ffb679618c [GC] Loosen ordering on statepoint reloads to allow CSE
We just removed a broken duplicate elimination algorithm in D75964, and after landed that it occurred to me that duplicate elimination is simply CSE. SelectionDAG has a build in CSE, so why wasn't that triggering? Well, it turns out we were overly conservative in the memory states for our reloads and CSE (rightly) considers the incoming memory state for a load part of the identity of the load.

By loosening the chain and allowing reordering, we also allow CSE. As shown in the test case, doing iterative CSE as we go is enough to eliminate duplicate stores in later statepoints as well. We key our (block local) slot map by SDValue, so commoning a previous pair of loads at construction time means we also common following stores.

Differential Revision: https://reviews.llvm.org/D76013
2020-03-11 12:30:06 -07:00
..
Analysis [TTI][ARM][MVE] Refine gather/scatter cost model 2020-03-11 10:23:41 +00:00
AsmParser Revert "Restore "[WPD/LowerTypeTests] Delay lowering/removal of type tests until after ICP"" 2020-03-02 14:02:13 -08:00
BinaryFormat [DebugInfo]: Added DWARFv5 macro header flags and corresponding helper 2020-03-07 17:53:01 +05:30
Bitcode [Bitcode] Fix -Wswitch after c5ec8890c95bf9f56beff285efbcc7b797ffb15a 2020-03-03 10:02:34 -08:00
Bitstream
CodeGen [GC] Loosen ordering on statepoint reloads to allow CSE 2020-03-11 12:30:06 -07:00
DebugInfo [DebugInfo] Add check for .debug_line minimum_instruction_length of 0 2020-03-09 12:59:44 +00:00
Demangle
DWARFLinker [dsymutil] Fix template stripping in getDIENames(...) to account for overloaded operators 2020-03-04 14:54:31 -08:00
ExecutionEngine [RuntimeDyld][COFF] Build stubs for COFF dllimport symbols. 2020-03-10 16:08:40 -07:00
Frontend
Fuzzer
FuzzMutate
IR Fixed [AssumeBundles] Move to IR so it can be used by Analysis 2020-03-10 18:02:39 +01:00
IRReader
LineEditor
Linker
LTO [LTO] onfig::addSaveTemps: clear ResolutionFile upon an error 2020-03-02 17:49:04 -08:00
MC [MC] Allow Stackmap sections after DWARF in MachO. 2020-03-09 18:33:32 -07:00
MCA
Object [Object] Fix handling of large archive members 2020-03-11 10:29:45 +00:00
ObjectYAML [lib/ObjectYAML] - Make ELFYAML::Relocation::Offset optional. 2020-03-06 13:59:58 +03:00
Option
Passes Fixed [AssumeBundles] Move to IR so it can be used by Analysis 2020-03-10 18:02:39 +01:00
ProfileData [Coverage] Collect all function records in an object (D69471 followup) 2020-03-02 12:01:09 -08:00
Remarks
Support Make IEEEFloat::roundToIntegral more standard conformant 2020-03-11 10:38:46 +07:00
TableGen Explicitly include <cassert> when using assert 2020-03-02 22:45:28 +01:00
Target [llvm][CodeGen] IR intrinsics for SVE2 contiguous conflict detection instructions. 2020-03-11 18:28:02 +00:00
Testing
TextAPI [llvm][MachO] fix adding weak def syms 2020-03-02 17:00:24 -08:00
ToolDrivers
Transforms [Matrix] Add remark propagation along the inlined-at chain. 2020-03-11 17:40:08 +00:00
WindowsManifest Try to fix WindowsManifest CMake logic on Windows 2020-02-28 17:24:03 -08:00
XRay
CMakeLists.txt
LLVMBuild.txt