[PATCH] D58461: [AArch64] Small fix for getIntImmCost

Adhemerval Zanella via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 20 10:07:32 PST 2019


zatrazz created this revision.
zatrazz added reviewers: javed.absar, huntergr, SjoerdMeijer, t.p.northover, echristo, evandro, rengolin, efriedma.
zatrazz added a project: LLVM.
Herald added a subscriber: kristof.beyls.

This patch takes in consideration immediate that can be materialize
as movz or movn.


Repository:
  rL LLVM

https://reviews.llvm.org/D58461

Files:
  lib/Target/AArch64/AArch64TargetTransformInfo.cpp


Index: lib/Target/AArch64/AArch64TargetTransformInfo.cpp
===================================================================
--- lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+++ lib/Target/AArch64/AArch64TargetTransformInfo.cpp
@@ -45,6 +45,9 @@
   if (Val == 0 || AArch64_AM::isLogicalImmediate(Val, 64))
     return 0;
 
+  if (AArch64_AM::isAnyMOVWMovAlias(Val, 64))
+    return 1;
+
   if (Val < 0)
     Val = ~Val;
 
@@ -74,8 +77,7 @@
     int64_t Val = Tmp.getSExtValue();
     Cost += getIntImmCost(Val);
   }
-  // We need at least one instruction to materialze the constant.
-  return std::max(1, Cost);
+  return Cost;
 }
 
 int AArch64TTIImpl::getIntImmCost(unsigned Opcode, unsigned Idx,


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D58461.187608.patch
Type: text/x-patch
Size: 705 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190220/660e0b6e/attachment.bin>


More information about the llvm-commits mailing list