[PATCH] Add a way to enable/disable the ARM load/store optimization pass

Ranjeet Singh ranjeet.singh at arm.com
Thu Mar 26 04:41:46 PDT 2015


This patch adds an option to enable/disable the ARM load/store optimization pass which I find useful when debugging with llc.

http://reviews.llvm.org/D8630

Files:
  lib/Target/ARM/ARMTargetMachine.cpp

Index: lib/Target/ARM/ARMTargetMachine.cpp
===================================================================
--- lib/Target/ARM/ARMTargetMachine.cpp
+++ lib/Target/ARM/ARMTargetMachine.cpp
@@ -37,6 +37,11 @@
                           " to make use of cmpxchg flow-based information"),
                  cl::init(true));
 
+static cl::opt<bool>
+EnableARMLoadStoreOpt("arm-load-store-opt", cl::Hidden,
+                      cl::desc("Enable ARM load/store optimization pass"),
+                      cl::init(true));
+
 extern "C" void LLVMInitializeARMTarget() {
   // Register the target.
   RegisterTargetMachine<ARMLETargetMachine> X(TheARMLETarget);
@@ -348,18 +353,22 @@
 }
 
 void ARMPassConfig::addPreRegAlloc() {
-  if (getOptLevel() != CodeGenOpt::None)
-    addPass(createARMLoadStoreOptimizationPass(true));
-  if (getOptLevel() != CodeGenOpt::None)
+  if (getOptLevel() != CodeGenOpt::None) {
     addPass(createMLxExpansionPass());
-  if (getOptLevel() != CodeGenOpt::None && !DisableA15SDOptimization) {
-    addPass(createA15SDOptimizerPass());
+    if (EnableARMLoadStoreOpt) {
+      addPass(createARMLoadStoreOptimizationPass(true));
+    }
+    if (!DisableA15SDOptimization) {
+      addPass(createA15SDOptimizerPass());
+    }
   }
 }
 
 void ARMPassConfig::addPreSched2() {
   if (getOptLevel() != CodeGenOpt::None) {
-    addPass(createARMLoadStoreOptimizationPass());
+    if (EnableARMLoadStoreOpt) {
+      addPass(createARMLoadStoreOptimizationPass());
+    }
     addPass(createExecutionDependencyFixPass(&ARM::DPRRegClass));
   }
 
@@ -373,7 +382,7 @@
       addPass(createThumb2SizeReductionPass());
     if (!getARMSubtarget().isThumb1Only())
       addPass(&IfConverterID);
-   }
+  }
   addPass(createThumb2ITBlockPass());
 }

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D8630.22708.patch
Type: text/x-patch
Size: 1765 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150326/6e5a23df/attachment.bin>


More information about the llvm-commits mailing list