[PATCH] D20172: [AArch64] Disable narrow load merge by default

Jun Bum Lim via llvm-commits llvm-commits at lists.llvm.org
Wed May 11 08:43:41 PDT 2016


junbuml created this revision.
junbuml added reviewers: jmolloy, t.p.northover, mcrosier.
junbuml added a subscriber: llvm-commits.
Herald added subscribers: mcrosier, rengolin, aemerson.

As this optimization converts two loads into one load with two shift instructions,
it could potentially hurt performance if a loop is arithmetic operation intensive.

http://reviews.llvm.org/D20172

Files:
  lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
  test/CodeGen/AArch64/arm64-narrow-ldst-merge.ll

Index: test/CodeGen/AArch64/arm64-narrow-ldst-merge.ll
===================================================================
--- test/CodeGen/AArch64/arm64-narrow-ldst-merge.ll
+++ test/CodeGen/AArch64/arm64-narrow-ldst-merge.ll
@@ -1,6 +1,6 @@
-; RUN: llc < %s -mtriple aarch64--none-eabi -mcpu=cortex-a57 -verify-machineinstrs | FileCheck %s --check-prefix=CHECK --check-prefix=LE
-; RUN: llc < %s -mtriple aarch64_be--none-eabi -mcpu=cortex-a57 -verify-machineinstrs | FileCheck %s --check-prefix=CHECK --check-prefix=BE
-; RUN: llc < %s -mtriple aarch64--none-eabi -mcpu=kryo -verify-machineinstrs | FileCheck %s --check-prefix=CHECK --check-prefix=LE
+; RUN: llc < %s -mtriple aarch64--none-eabi -mcpu=cortex-a57 -verify-machineinstrs -enable-narrow-ld-merge=true | FileCheck %s --check-prefix=CHECK --check-prefix=LE
+; RUN: llc < %s -mtriple aarch64_be--none-eabi -mcpu=cortex-a57 -verify-machineinstrs -enable-narrow-ld-merge=true | FileCheck %s --check-prefix=CHECK --check-prefix=BE
+; RUN: llc < %s -mtriple aarch64--none-eabi -mcpu=kryo -verify-machineinstrs -enable-narrow-ld-merge=true | FileCheck %s --check-prefix=CHECK --check-prefix=LE
 
 ; CHECK-LABEL: Ldrh_merge
 ; CHECK-NOT: ldrh
Index: lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
===================================================================
--- lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
+++ lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
@@ -52,7 +52,7 @@
                                      cl::Hidden);
 
 static cl::opt<bool> EnableNarrowLdMerge("enable-narrow-ld-merge", cl::Hidden,
-                                         cl::init(true),
+                                         cl::init(false),
                                          cl::desc("Enable narrow load merge"));
 
 namespace llvm {


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D20172.56920.patch
Type: text/x-patch
Size: 1799 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160511/75546252/attachment.bin>


More information about the llvm-commits mailing list