[llvm] r251038 - AArch64: Disable the latency heuristic

Matthias Braun via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 22 11:07:38 PDT 2015


Author: matze
Date: Thu Oct 22 13:07:38 2015
New Revision: 251038

URL: http://llvm.org/viewvc/llvm-project?rev=251038&view=rev
Log:
AArch64: Disable the latency heuristic

It turned out not to improve any of our benchmarks but occasionally led
to increased register pressure and spilling.

Only enabling for the Cyclone CPU as the results on the cortex CPUs
give mixed results.

Differential Revision: http://reviews.llvm.org/D13708

Modified:
    llvm/trunk/lib/Target/AArch64/AArch64Subtarget.cpp

Modified: llvm/trunk/lib/Target/AArch64/AArch64Subtarget.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64Subtarget.cpp?rev=251038&r1=251037&r2=251038&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64Subtarget.cpp (original)
+++ llvm/trunk/lib/Target/AArch64/AArch64Subtarget.cpp Thu Oct 22 13:07:38 2015
@@ -114,6 +114,11 @@ void AArch64Subtarget::overrideSchedPoli
   // bi-directional scheduling. 253.perlbmk.
   Policy.OnlyTopDown = false;
   Policy.OnlyBottomUp = false;
+  // Enabling or Disabling the latency heuristic is a close call: It seems to
+  // help nearly no benchmark on out-of-order architectures, on the other hand
+  // it regresses register pressure on a few benchmarking.
+  if (isCyclone())
+    Policy.DisableLatencyHeuristic = true;
 }
 
 bool AArch64Subtarget::enableEarlyIfConversion() const {




More information about the llvm-commits mailing list