Cost Model: change the default cost of control flow instructions (br / ret / ......
authorNadav Rotem <nrotem@apple.com>
Wed, 5 Dec 2012 21:21:26 +0000 (21:21 +0000)
committerNadav Rotem <nrotem@apple.com>
Wed, 5 Dec 2012 21:21:26 +0000 (21:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169423 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/TargetTransformImpl.cpp
test/Analysis/CostModel/X86/arith.ll
test/Analysis/CostModel/X86/cast.ll
test/Analysis/CostModel/X86/cmp.ll
test/Analysis/CostModel/X86/i32.ll
test/Analysis/CostModel/X86/tiny.ll
test/Analysis/CostModel/X86/vectorized-loop.ll

index b36e6f858f7251b0cde7803ce8cdaedd08f946a1..2df72630bb33cfe073fe493199695ffb12e81120 100644 (file)
@@ -283,7 +283,7 @@ unsigned VectorTargetTransformImpl::getCastInstrCost(unsigned Opcode, Type *Dst,
  }
 
 unsigned VectorTargetTransformImpl::getCFInstrCost(unsigned Opcode) const {
-  return 1;
+  return 0;
 }
 
 unsigned VectorTargetTransformImpl::getCmpSelInstrCost(unsigned Opcode,
index 37cca8d5406705f44c55a5dab95436d483823ae4..ae78d44aeb495e94af1e220cfacdd9853bd7c697 100644 (file)
@@ -14,7 +14,7 @@ define i32 @add(i32 %arg) {
   %D = add <4 x i64> undef, undef
   ;CHECK: cost of 8 {{.*}} add
   %E = add <8 x i64> undef, undef
-  ;CHECK: cost of 1 {{.*}} ret
+  ;CHECK: cost of 0 {{.*}} ret
   ret i32 undef
 }
 
@@ -28,7 +28,7 @@ define i32 @xor(i32 %arg) {
   %C = xor <2 x i64> undef, undef
   ;CHECK: cost of 1 {{.*}} xor
   %D = xor <4 x i64> undef, undef
-  ;CHECK: cost of 1 {{.*}} ret
+  ;CHECK: cost of 0 {{.*}} ret
   ret i32 undef
 }
 
index 75c97a781e7fad9766e0cc2c93f298259d06d6d3..cedc68259888fa9145f5c27a0d71e7ebe8994142 100644 (file)
@@ -28,7 +28,7 @@ define i32 @add(i32 %arg) {
   ;CHECK: cost of 0 {{.*}} trunc
   %H = trunc i32 undef to i1
 
-  ;CHECK: cost of 1 {{.*}} ret
+  ;CHECK: cost of 0 {{.*}} ret
   ret i32 undef
 }
 
index f868bd18b54fcb17f1bbb7b3a9305ca0ff74925a..90b09c1154efd5b379e0b71a633de30b899860b2 100644 (file)
@@ -35,7 +35,7 @@ define i32 @cmp(i32 %arg) {
   ;CHECK: cost of 4 {{.*}} icmp
   %M = icmp eq <32 x i8> undef, undef
 
-  ;CHECK: cost of 1 {{.*}} ret
+  ;CHECK: cost of 0 {{.*}} ret
   ret i32 undef
 }
 
index 4015e0b1eef4b6bcfa5c2e191ebc1c5b322aa99d..52c295934c762ec6447f85461b2f4ecf1a8b7aac 100644 (file)
@@ -2,7 +2,7 @@
 
 
 ;CHECK: cost of 2 {{.*}} add
-;CHECK: cost of 1 {{.*}} ret
+;CHECK: cost of 0 {{.*}} ret
 define i32 @no_info(i32 %arg) {
   %e = add i64 undef, undef
   ret i32 undef
index cc7b443a7dfc823bb0f9e00ea2d38517ba60387e..0dafdadb5b159d571cd623ce06b095da9fc062bc 100644 (file)
@@ -4,7 +4,7 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
 target triple = "x86_64-apple-macosx10.8.0"
 
 ;CHECK: cost of 1 {{.*}} add
-;CHECK: cost of 1 {{.*}} ret
+;CHECK: cost of 0 {{.*}} ret
 define i32 @no_info(i32 %arg) {
   %e = add i32 %arg, %arg
   ret i32 %e
index 7919a9ca9a64fa515d280b1555742832dfc92e07..6c9e111bb10f7b1a336b900d2e394a12cd49febb 100644 (file)
@@ -41,7 +41,7 @@ vector.body:                                      ; preds = %for.body.lr.ph, %ve
   store <8 x i32> %11, <8 x i32>* %9, align 4
   %index.next = add i64 %index, 8
   %12 = icmp eq i64 %index.next, %end.idx.rnd.down
-  ;CHECK: cost of 1 {{.*}} br
+  ;CHECK: cost of 0 {{.*}} br
   br i1 %12, label %middle.block, label %vector.body
 
 middle.block:                                     ; preds = %vector.body, %for.body.lr.ph
@@ -65,11 +65,11 @@ for.body:                                         ; preds = %middle.block, %for.
   ;CHECK: cost of 0 {{.*}} trunc
   %16 = trunc i64 %indvars.iv.next to i32
   %cmp = icmp slt i32 %16, %end
-  ;CHECK: cost of 1 {{.*}} br
+  ;CHECK: cost of 0 {{.*}} br
   br i1 %cmp, label %for.body, label %for.end
 
 for.end:                                          ; preds = %middle.block, %for.body, %entry
-  ;CHECK: cost of 1 {{.*}} ret
+  ;CHECK: cost of 0 {{.*}} ret
   ret i32 undef
 }