llvm-project/llvm/lib
Jay Foad b777e551f0 [MachineScheduler] Reduce reordering due to mem op clustering
Summary:
Mem op clustering adds a weak edge in the DAG between two loads or
stores that should be clustered, but the direction of this edge is
pretty arbitrary (it depends on the sort order of MemOpInfo, which
represents the operands of a load or store). This often means that two
loads or stores will get reordered even if they would naturally have
been scheduled together anyway, which leads to test case churn and goes
against the scheduler's "do no harm" philosophy.

The fix makes sure that the direction of the edge always matches the
original code order of the instructions.

Reviewers: atrick, MatzeB, arsenm, rampitec, t.p.northover

Subscribers: jvesely, wdng, nhaehnle, kristof.beyls, hiraditya, javed.absar, arphaman, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D72706
2020-01-14 19:19:02 +00:00
..
Analysis [SCEV] Follow up of D71563: addressing post commit comment. NFC. 2020-01-13 08:54:38 +00:00
AsmParser Revert "Allow output constraints on "asm goto"" 2020-01-07 13:44:08 -08:00
BinaryFormat [AIX] Emit TOC entries for ASM printing 2019-11-27 17:20:55 -05:00
Bitcode [NFC] Fix trivial typos in comments 2020-01-06 10:50:26 +00:00
Bitstream [Bitstream] Delete skipAbbreviatedField which duplicates readAbbreviatedField 2019-12-25 18:55:02 -08:00
CodeGen [MachineScheduler] Reduce reordering due to mem op clustering 2020-01-14 19:19:02 +00:00
DWARFLinker [Dsymutil][Debuginfo][NFC] #3 Refactor dsymutil to separate DWARF optimizing part. 2020-01-13 23:33:25 +03:00
DebugInfo [DebugInfo] Make debug line address size mismatch non-fatal to parsing 2020-01-13 16:27:05 +00:00
Demangle Revert "Add some missing includes to MicrosoftDemangle.cpp (PR44217)" 2019-12-04 11:10:07 -08:00
ExecutionEngine [Disassembler] Delete the VStream parameter of MCDisassembler::getInstruction() 2020-01-11 13:34:52 -08:00
Frontend [OpenMP] Use the OpenMPIRBuilder for `omp parallel` 2019-12-30 13:57:13 -06:00
FuzzMutate [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
Fuzzer
IR [IR] fix potential crash in Constant::isElementWiseEqual() 2020-01-14 11:52:38 -05:00
IRReader [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
LTO [LTO] Constify lto::Config reference passed to backends (NFC) 2020-01-13 12:26:17 -08:00
LineEditor [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
Linker [NFC] Fixes -Wrange-loop-analysis warnings 2020-01-01 20:01:37 +01:00
MC [MC] Don't resolve relocations referencing STB_LOCAL STT_GNU_IFUNC 2020-01-13 23:36:06 -08:00
MCA [NFC] Fixes -Wrange-loop-analysis warnings 2020-01-01 20:01:37 +01:00
Object [MIPS][ELF] Use PC-relative relocations in .eh_frame when possible 2020-01-13 14:14:03 +00:00
ObjectYAML [NFC] Fixes -Wrange-loop-analysis warnings 2020-01-01 20:01:37 +01:00
Option [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
Passes [Inlining] Add PreInlineThreshold for the new pass manager 2020-01-13 07:59:42 -08:00
ProfileData [NFC] Fix trivial typos in comments 2020-01-06 10:50:26 +00:00
Remarks [Remarks] Allow empty temporary remark files 2019-11-22 15:58:12 -08:00
Support [NFC] Fix compilation of CrashRecoveryContext.cpp on mingw 2020-01-12 14:43:16 -05:00
TableGen [TableGen] Introduce an if/then/else statement. 2020-01-14 10:19:53 +00:00
Target [RISCV] Allow shrink wrapping for RISC-V 2020-01-14 18:59:11 +00:00
Testing
TextAPI [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
ToolDrivers [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
Transforms [ThinLTO/WPD] Remove an overly-aggressive assert 2020-01-14 10:57:14 -08:00
WindowsManifest Revert "Temporarily revert "build: avoid hardcoding the libxml2 library name"" 2019-12-03 09:27:14 -08:00
XRay [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
CMakeLists.txt [Dsymutil][Debuginfo][NFC] Reland: Refactor dsymutil to separate DWARF optimizing part. #2. 2020-01-08 14:15:31 +03:00
LLVMBuild.txt [Dsymutil][Debuginfo][NFC] Reland: Refactor dsymutil to separate DWARF optimizing part. #2. 2020-01-08 14:15:31 +03:00