llvm-project/llvm/lib
Florian Hahn abb4218b98 [AArch64] Make instruction fusion more aggressive.
Summary:
This patch makes instruction fusion more aggressive by
* adding artificial edges between the successors of FirstSU and
  SecondSU, similar to BaseMemOpClusterMutation::clusterNeighboringMemOps.
* updating PostGenericScheduler::tryCandidate to keep clusters together,
   similar to GenericScheduler::tryCandidate.

This change increases the number of AES instruction pairs generated on
 Cortex-A57 and Cortex-A72. This doesn't change code at all in
 most benchmarks or general code, but we've seen improvement on kernels
 using AESE/AESMC and AESD/AESIMC. 

Reviewers: evandro, kristof.beyls, t.p.northover, silviu.baranga, atrick, rengolin, MatzeB

Reviewed By: evandro

Subscribers: aemerson, rengolin, MatzeB, javed.absar, llvm-commits

Differential Revision: https://reviews.llvm.org/D33230

llvm-svn: 303618
2017-05-23 09:33:34 +00:00
..
Analysis InstructionSimplify: don't speculate about Constants changing. 2017-05-22 21:28:08 +00:00
AsmParser [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
Bitcode [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
CodeGen [AArch64] Make instruction fusion more aggressive. 2017-05-23 09:33:34 +00:00
DebugInfo libDebugInfo: Support symbolizing using DWP files 2017-05-23 06:48:53 +00:00
Demangle Revert r303375 "LLVM_FALLTHROUGH instead of fall-through comment." 2017-05-18 20:18:24 +00:00
ExecutionEngine [RuntimeDyld] Fix debug section relocation (pr20457) 2017-05-17 08:47:28 +00:00
Fuzzer [libFuzzer] fix tests on Windows 2017-05-15 22:55:00 +00:00
IR Support for taking the max of module flags when linking, use for PIE/PIC 2017-05-23 00:08:00 +00:00
IRReader Timer: Track name and description. 2016-11-18 19:43:18 +00:00
LTO Infer relocation model from module flags in relocatable LTO link. 2017-05-22 21:11:35 +00:00
LineEditor
Linker Support for taking the max of module flags when linking, use for PIE/PIC 2017-05-23 00:08:00 +00:00
MC Re-apply r302416: [ARM] Clear the constant pool cache on explicit .ltorg directives 2017-05-22 09:42:07 +00:00
Object COFF: Fix another StringRef return error 2017-05-20 21:54:15 +00:00
ObjectYAML [WebAssembly] Fix build error in wasm YAML code 2017-05-10 00:14:04 +00:00
Option ArgList: cache index ranges containing arguments with each ID 2017-04-12 23:19:51 +00:00
Passes [NewPM] Fix an innocent but silly typo. Reported by Craig Topper. 2017-05-22 23:47:11 +00:00
ProfileData Change sample profile writer to make it deterministic. 2017-05-11 23:43:44 +00:00
Support Added LLVM_FALLTHROUGH to address gcc warning: this statement may fall through. 2017-05-23 01:20:52 +00:00
TableGen Use print() instead of dump() in code 2017-01-28 02:47:46 +00:00
Target [AArch64] Make instruction fusion more aggressive. 2017-05-23 09:33:34 +00:00
ToolDrivers Add missing files 2017-05-13 22:10:13 +00:00
Transforms [KnownBits] Use !hasConflict() in asserts in place of Zero & One == 0 or similar. NFC 2017-05-23 07:18:37 +00:00
XRay [XRay][lib] Support and temporarily skip over CustomEvent records 2017-05-12 01:06:41 +00:00
CMakeLists.txt Move lib/LibDriver -> lib/ToolDrivers/llvm-lib. NFCI. 2017-05-13 22:06:46 +00:00
LLVMBuild.txt Move lib/LibDriver -> lib/ToolDrivers/llvm-lib. NFCI. 2017-05-13 22:06:46 +00:00