For PR1258:
authorReid Spencer <rspencer@reidspencer.com>
Mon, 19 Mar 2007 18:27:35 +0000 (18:27 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Mon, 19 Mar 2007 18:27:35 +0000 (18:27 +0000)
Revise numeric value references to accommodate collapsed type planes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35170 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/ARM/2007-03-07-CombinerCrash.ll
test/CodeGen/X86/2007-03-01-SpillerCrash.ll
test/Integer/basictest_bt.ll
test/Integer/constexpr_bt.ll
test/Integer/constpointer_bt.ll
test/Integer/indirectcall_bt.ll
test/Integer/testvarargs_bt.ll
test/Transforms/ADCE/2002-01-31-UseStuckAround.ll

index 649105a41a14a66a77970547bca42f77bfd10d5d..7317e62e3182405cf8cd7b45f1b546716f9b0b3f 100644 (file)
@@ -3,19 +3,19 @@
 define fastcc i8* @read_sleb128(i8* %p, i32* %val) {
        br label %bb
 
-bb:
-       %p_addr.0 = getelementptr i8* %p, i32 0
-       %tmp2 = load i8* %p_addr.0
-       %tmp4.rec = add i32 0, 1
-       %tmp4 = getelementptr i8* %p, i32 %tmp4.rec
-       %tmp56 = zext i8 %tmp2 to i32
-       %tmp7 = and i32 %tmp56, 127
-       %tmp9 = shl i32 %tmp7, 0
-       %tmp11 = or i32 %tmp9, 0
-       icmp slt i8 %tmp2, 0
-       br i1 %0, label %bb, label %cond_next28
+bb:            ; preds = %bb, %0
+       %p_addr.0 = getelementptr i8* %p, i32 0         ; <i8*> [#uses=1]
+       %tmp2 = load i8* %p_addr.0              ; <i8> [#uses=2]
+       %tmp4.rec = add i32 0, 1                ; <i32> [#uses=1]
+       %tmp4 = getelementptr i8* %p, i32 %tmp4.rec             ; <i8*> [#uses=1]
+       %tmp56 = zext i8 %tmp2 to i32           ; <i32> [#uses=1]
+       %tmp7 = and i32 %tmp56, 127             ; <i32> [#uses=1]
+       %tmp9 = shl i32 %tmp7, 0                ; <i32> [#uses=1]
+       %tmp11 = or i32 %tmp9, 0                ; <i32> [#uses=1]
+       icmp slt i8 %tmp2, 0            ; <i1>:1 [#uses=1]
+       br i1 %1, label %bb, label %cond_next28
 
-cond_next28:
+cond_next28:           ; preds = %bb
        store i32 %tmp11, i32* %val
        ret i8* %tmp4
 }
index 75cc6939fb4a241aaccdbffaaff9ed409c6596a1..2d11bfb10f5d0e95259d77e7a1a55397d926b0f8 100644 (file)
@@ -8,78 +8,78 @@ test.exit:
        mul <4 x float> %0, %2          ; <<4 x float>>:3 [#uses=1]
        sub <4 x float> zeroinitializer, %3             ; <<4 x float>>:4 [#uses=1]
        mul <4 x float> %4, zeroinitializer             ; <<4 x float>>:5 [#uses=2]
-       bitcast <4 x float> zeroinitializer to <4 x i32>                ; <<4 x i32>>:0 [#uses=1]
-       and <4 x i32> %0, < i32 2147483647, i32 2147483647, i32 2147483647, i32 2147483647 >            ; <<4 x i32>>:1 [#uses=1]
-       bitcast <4 x i32> %1 to <4 x float>             ; <<4 x float>>:6 [#uses=2]
-       extractelement <4 x float> %6, i32 0            ; <float>:0 [#uses=1]
-       extractelement <4 x float> %6, i32 1            ; <float>:1 [#uses=2]
-       br i1 false, label %0, label %5
+       bitcast <4 x float> zeroinitializer to <4 x i32>                ; <<4 x i32>>:6 [#uses=1]
+       and <4 x i32> %6, < i32 2147483647, i32 2147483647, i32 2147483647, i32 2147483647 >            ; <<4 x i32>>:7 [#uses=1]
+       bitcast <4 x i32> %7 to <4 x float>             ; <<4 x float>>:8 [#uses=2]
+       extractelement <4 x float> %8, i32 0            ; <float>:9 [#uses=1]
+       extractelement <4 x float> %8, i32 1            ; <float>:10 [#uses=2]
+       br i1 false, label %11, label %19
 
-; <label>:           ; preds = %test.exit
-       br i1 false, label %3, label %1
+; <label>:11           ; preds = %test.exit
+       br i1 false, label %17, label %12
 
-; <label>:1            ; preds = %0
-       br i1 false, label %5, label %2
+; <label>:12           ; preds = %11
+       br i1 false, label %19, label %13
 
-; <label>:2            ; preds = %1
-       sub float -0.000000e+00, 0.000000e+00           ; <float>:2 [#uses=1]
+; <label>:13           ; preds = %12
+       sub float -0.000000e+00, 0.000000e+00           ; <float>:14 [#uses=1]
        %tmp207 = extractelement <4 x float> zeroinitializer, i32 0             ; <float> [#uses=1]
        %tmp208 = extractelement <4 x float> zeroinitializer, i32 2             ; <float> [#uses=1]
-       sub float -0.000000e+00, %tmp208                ; <float>:3 [#uses=1]
+       sub float -0.000000e+00, %tmp208                ; <float>:15 [#uses=1]
        %tmp155 = extractelement <4 x float> zeroinitializer, i32 0             ; <float> [#uses=1]
        %tmp156 = extractelement <4 x float> zeroinitializer, i32 2             ; <float> [#uses=1]
-       sub float -0.000000e+00, %tmp156                ; <float>:4 [#uses=1]
-       br label %5
+       sub float -0.000000e+00, %tmp156                ; <float>:16 [#uses=1]
+       br label %19
 
-; <label>:3            ; preds = %0
-       br i1 false, label %5, label %4
+; <label>:17           ; preds = %11
+       br i1 false, label %19, label %18
 
-; <label>:4            ; preds = %3
-       br label %5
+; <label>:18           ; preds = %17
+       br label %19
 
-; <label>:5            ; preds = %4, %3, %2, %1, %test.exit
-       phi i32 [ 5, %4 ], [ 3, %2 ], [ 1, %test.exit ], [ 2, %1 ], [ 4, %3 ]           ; <i32>:0 [#uses=0]
-       phi float [ 0.000000e+00, %4 ], [ %4, %2 ], [ 0.000000e+00, %test.exit ], [ 0.000000e+00, %1 ], [ 0.000000e+00, %3 ]            ; <float>:5 [#uses=1]
-       phi float [ 0.000000e+00, %4 ], [ %tmp155, %2 ], [ 0.000000e+00, %test.exit ], [ 0.000000e+00, %1 ], [ 0.000000e+00, %3 ]               ; <float>:6 [#uses=1]
-       phi float [ 0.000000e+00, %4 ], [ %3, %2 ], [ 0.000000e+00, %test.exit ], [ 0.000000e+00, %1 ], [ 0.000000e+00, %3 ]            ; <float>:7 [#uses=1]
-       phi float [ 0.000000e+00, %4 ], [ %tmp207, %2 ], [ 0.000000e+00, %test.exit ], [ 0.000000e+00, %1 ], [ 0.000000e+00, %3 ]               ; <float>:8 [#uses=1]
-       phi float [ 0.000000e+00, %4 ], [ %1, %2 ], [ %0, %test.exit ], [ %1, %1 ], [ 0.000000e+00, %3 ]                ; <float>:9 [#uses=2]
-       phi float [ 0.000000e+00, %4 ], [ %2, %2 ], [ 0.000000e+00, %test.exit ], [ 0.000000e+00, %1 ], [ 0.000000e+00, %3 ]            ; <float>:10 [#uses=1]
-       phi float [ 0.000000e+00, %4 ], [ 0.000000e+00, %2 ], [ 0.000000e+00, %test.exit ], [ 0.000000e+00, %1 ], [ 0.000000e+00, %3 ]          ; <float>:11 [#uses=1]
-       insertelement <4 x float> undef, float %11, i32 0               ; <<4 x float>>:7 [#uses=1]
-       insertelement <4 x float> %7, float %10, i32 1          ; <<4 x float>>:8 [#uses=0]
-       insertelement <4 x float> undef, float %8, i32 0                ; <<4 x float>>:9 [#uses=1]
-       insertelement <4 x float> %9, float %7, i32 1           ; <<4 x float>>:10 [#uses=1]
-       insertelement <4 x float> %10, float %9, i32 2          ; <<4 x float>>:11 [#uses=1]
-       insertelement <4 x float> %11, float %9, i32 3          ; <<4 x float>>:12 [#uses=1]
-       fdiv <4 x float> %12, zeroinitializer           ; <<4 x float>>:13 [#uses=1]
-       mul <4 x float> %13, < float 5.000000e-01, float 5.000000e-01, float 5.000000e-01, float 5.000000e-01 >         ; <<4 x float>>:14 [#uses=1]
-       insertelement <4 x float> undef, float %6, i32 0                ; <<4 x float>>:15 [#uses=1]
-       insertelement <4 x float> %15, float %5, i32 1          ; <<4 x float>>:16 [#uses=0]
-       br i1 false, label %foo.exit, label %6
+; <label>:19           ; preds = %18, %17, %13, %12, %test.exit
+       phi i32 [ 5, %18 ], [ 3, %13 ], [ 1, %test.exit ], [ 2, %12 ], [ 4, %17 ]               ; <i32>:20 [#uses=0]
+       phi float [ 0.000000e+00, %18 ], [ %16, %13 ], [ 0.000000e+00, %test.exit ], [ 0.000000e+00, %12 ], [ 0.000000e+00, %17 ]               ; <float>:21 [#uses=1]
+       phi float [ 0.000000e+00, %18 ], [ %tmp155, %13 ], [ 0.000000e+00, %test.exit ], [ 0.000000e+00, %12 ], [ 0.000000e+00, %17 ]           ; <float>:22 [#uses=1]
+       phi float [ 0.000000e+00, %18 ], [ %15, %13 ], [ 0.000000e+00, %test.exit ], [ 0.000000e+00, %12 ], [ 0.000000e+00, %17 ]               ; <float>:23 [#uses=1]
+       phi float [ 0.000000e+00, %18 ], [ %tmp207, %13 ], [ 0.000000e+00, %test.exit ], [ 0.000000e+00, %12 ], [ 0.000000e+00, %17 ]           ; <float>:24 [#uses=1]
+       phi float [ 0.000000e+00, %18 ], [ %10, %13 ], [ %9, %test.exit ], [ %10, %12 ], [ 0.000000e+00, %17 ]          ; <float>:25 [#uses=2]
+       phi float [ 0.000000e+00, %18 ], [ %14, %13 ], [ 0.000000e+00, %test.exit ], [ 0.000000e+00, %12 ], [ 0.000000e+00, %17 ]               ; <float>:26 [#uses=1]
+       phi float [ 0.000000e+00, %18 ], [ 0.000000e+00, %13 ], [ 0.000000e+00, %test.exit ], [ 0.000000e+00, %12 ], [ 0.000000e+00, %17 ]              ; <float>:27 [#uses=1]
+       insertelement <4 x float> undef, float %27, i32 0               ; <<4 x float>>:28 [#uses=1]
+       insertelement <4 x float> %28, float %26, i32 1         ; <<4 x float>>:29 [#uses=0]
+       insertelement <4 x float> undef, float %24, i32 0               ; <<4 x float>>:30 [#uses=1]
+       insertelement <4 x float> %30, float %23, i32 1         ; <<4 x float>>:31 [#uses=1]
+       insertelement <4 x float> %31, float %25, i32 2         ; <<4 x float>>:32 [#uses=1]
+       insertelement <4 x float> %32, float %25, i32 3         ; <<4 x float>>:33 [#uses=1]
+       fdiv <4 x float> %33, zeroinitializer           ; <<4 x float>>:34 [#uses=1]
+       mul <4 x float> %34, < float 5.000000e-01, float 5.000000e-01, float 5.000000e-01, float 5.000000e-01 >         ; <<4 x float>>:35 [#uses=1]
+       insertelement <4 x float> undef, float %22, i32 0               ; <<4 x float>>:36 [#uses=1]
+       insertelement <4 x float> %36, float %21, i32 1         ; <<4 x float>>:37 [#uses=0]
+       br i1 false, label %foo.exit, label %38
 
-; <label>:6            ; preds = %5
-       extractelement <4 x float> %0, i32 0            ; <float>:12 [#uses=1]
-       fcmp ogt float %12, 0.000000e+00                ; <i1>:0 [#uses=1]
-       extractelement <4 x float> %0, i32 2            ; <float>:13 [#uses=1]
-       extractelement <4 x float> %0, i32 1            ; <float>:14 [#uses=1]
-       sub float -0.000000e+00, %14            ; <float>:15 [#uses=2]
+; <label>:38           ; preds = %19
+       extractelement <4 x float> %0, i32 0            ; <float>:39 [#uses=1]
+       fcmp ogt float %39, 0.000000e+00                ; <i1>:40 [#uses=1]
+       extractelement <4 x float> %0, i32 2            ; <float>:41 [#uses=1]
+       extractelement <4 x float> %0, i32 1            ; <float>:42 [#uses=1]
+       sub float -0.000000e+00, %42            ; <float>:43 [#uses=2]
        %tmp189 = extractelement <4 x float> %5, i32 2          ; <float> [#uses=1]
-       br i1 %0, label %7, label %8
+       br i1 %40, label %44, label %46
 
-; <label>:7            ; preds = %6
-       sub float -0.000000e+00, %tmp189                ; <float>:16 [#uses=0]
+; <label>:44           ; preds = %38
+       sub float -0.000000e+00, %tmp189                ; <float>:45 [#uses=0]
        br label %foo.exit
 
-; <label>:8            ; preds = %6
+; <label>:46           ; preds = %38
        %tmp192 = extractelement <4 x float> %5, i32 1          ; <float> [#uses=1]
-       sub float -0.000000e+00, %tmp192                ; <float>:17 [#uses=1]
+       sub float -0.000000e+00, %tmp192                ; <float>:47 [#uses=1]
        br label %foo.exit
 
-foo.exit:              ; preds = %8, %7, %5
-       phi float [ 0.000000e+00, %7 ], [ %17, %8 ], [ 0.000000e+00, %5 ]               ; <float>:18 [#uses=0]
-       phi float [ %15, %7 ], [ %15, %8 ], [ 0.000000e+00, %5 ]                ; <float>:19 [#uses=0]
-       phi float [ 0.000000e+00, %7 ], [ %13, %8 ], [ 0.000000e+00, %5 ]               ; <float>:20 [#uses=0]
-       shufflevector <4 x float> %14, <4 x float> zeroinitializer, <4 x i32> < i32 0, i32 4, i32 1, i32 5 >            ; <<4 x float>>:17 [#uses=0]
+foo.exit:              ; preds = %46, %44, %19
+       phi float [ 0.000000e+00, %44 ], [ %47, %46 ], [ 0.000000e+00, %19 ]            ; <float>:48 [#uses=0]
+       phi float [ %43, %44 ], [ %43, %46 ], [ 0.000000e+00, %19 ]             ; <float>:49 [#uses=0]
+       phi float [ 0.000000e+00, %44 ], [ %41, %46 ], [ 0.000000e+00, %19 ]            ; <float>:50 [#uses=0]
+       shufflevector <4 x float> %35, <4 x float> zeroinitializer, <4 x i32> < i32 0, i32 4, i32 1, i32 5 >            ; <<4 x float>>:51 [#uses=0]
        unreachable
 }
index 38d9ac98167594e03694b23df29937cf26d60d0e..e5771075b1b29860dba94f5b02143818ada41b00 100644 (file)
@@ -2,33 +2,31 @@
 ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
 ; RUN: diff %t1.ll %t2.ll
 
-implementation
+implementation   ; Functions:
 
 ; Test "stripped" format where nothing is symbolic... this is how the bytecode
 ; format looks anyways (except for negative vs positive offsets)...
 ;
-define void @"void"(i39, i39)   ; Def %0, %1
-begin
-       add i39 0, 0      ; Def 2
-       sub i39 0, 4      ; Def 3
-       br label %1
+define void @void(i39, i39) {
+       add i39 0, 0                    ; <i39>:3 [#uses=2]
+       sub i39 0, 4                    ; <i39>:4 [#uses=2]
+       br label %5
 
-; <label>:1            ; preds = %1, %0
-       add i39 %0, %1    ; Def 4
-       sub i39 %4, %3    ; Def 5
-       icmp sle i39 %5, %2  ; Def 0 - i1 plane
-       br i1 %0, label %2, label %1
+; <label>:5                            ; preds = %5, %2
+       add i39 %0, %1                  ; <i39>:6 [#uses=2]
+       sub i39 %6, %4                  ; <i39>:7 [#uses=1]
+       icmp sle i39 %7, %3             ; <i1>:8 [#uses=1]
+       br i1 %8, label %9, label %5
 
-; <label>:2            ; preds = %1
-       add i39 %0, %1    ; Def 6
-       sub i39 %4, %3    ; Def 7
-       icmp sle i39 %7, %2  ; Def 1 - i1 plane
+; <label>:9                            ; preds = %5
+       add i39 %0, %1                  ; <i39>:10 [#uses=0]
+       sub i39 %6, %4                  ; <i39>:11 [#uses=1]
+       icmp sle i39 %11, %3            ; <i1>:12 [#uses=0]
        ret void
-end
+}
 
 ; This function always returns zero
-define i39 @"zarro"()
-begin
+define i39 @zarro() {
 Startup:
        ret i39 0
-end
+}
index 2a8391acf46f4b48c2a5c52c97366df72c194dbf..1faa287e521a81fd78ecdda51ee5ec07d1aaaaca 100644 (file)
@@ -24,8 +24,8 @@ global i63  s0x012312   ; hexadecimal signed integer constants
 @t9 = global i33 fptosi (float sitofp (i33 8 to float) to i33) ;; Nested cast expression
 
 
-global i32* bitcast (float* @0 to i32*)   ;; Forward numeric reference
-global float* @0                       ;; Duplicate forward numeric reference
+global i32* bitcast (float* @4 to i32*)   ;; Forward numeric reference
+global float* @4                       ;; Duplicate forward numeric reference
 global float 0.0
 
 
index be8fdfdcc7d3d09afc28dfd4fc35f944e52d68e7..5d541571bb4d7a408fbdffc4333f89b7fbcfb9c0 100644 (file)
 
 @t2 = global i40 * @t1
 
-global float * @0                ;; Forward numeric reference
-global float * @0                ;; Duplicate forward numeric reference
+global float * @2                ;; Forward numeric reference
+global float * @2                ;; Duplicate forward numeric reference
 global float 0.0
-global float * @0                ;; Numeric reference
+global float * @2                ;; Numeric reference
 
 
 @fptr = global void() * @f       ;; Forward ref method defn
index 747b39d8d7d0804d498b86ec195e205f3babbad3..67cff4e754f0a632c757b1b0ab83b9ca182e78d4 100644 (file)
@@ -8,8 +8,8 @@ declare i32 @"atoi"(i8 *)
 
 define i63 @"fib"(i63 %n)
 begin
-  icmp ult i63 %n, 2       ; {i1}:0
-  br i1 %0, label %BaseCase, label %RecurseCase
+  icmp ult i63 %n, 2       ; {i1}:1
+  br i1 %1, label %BaseCase, label %RecurseCase
 
 BaseCase:
   ret i63 1
@@ -25,8 +25,8 @@ end
 
 define i63 @"realmain"(i32 %argc, i8 ** %argv)
 begin
-  icmp eq i32 %argc, 2      ; {i1}:0
-  br i1 %0, label %HasArg, label %Continue
+  icmp eq i32 %argc, 2      ; {i1}:1
+  br i1 %1, label %HasArg, label %Continue
 HasArg:
   ; %n1 = atoi(argv[1])
   %n1 = add i32 1, 1
index d62e270dcafc251ec81b452a09f5d9b2fc6e70cd..68cb36414c438c99a1600555bb453641a1f44bee 100644 (file)
@@ -9,7 +9,7 @@ declare i31 @"printf"(i8*, ...)   ;; Prototype for: i32 __builtin_printf(const c
 define i31 @"testvarar"()
 begin
        call i31(i8*, ...) *@printf(i8 * null, i31 12, i8 42);
-       ret i31 %0
+       ret i31 %1
 end
 
 
index f902bc97b8f577b819bf5b8243d6364d18d2fc9e..b3c12ffe1fa94360002f2958a97e86514e54feae 100644 (file)
@@ -1,14 +1,14 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -adce
+; RUN:  llvm-as %s -o - | opt -adce
 
 implementation
 
-int "main"(int %argc)
+define i32 @"main"(i32 %argc)
 begin
        br label %2
 
-       %retval = phi int [ %argc, %2 ]         ; <int> [#uses=2]
-       %two = add int %retval, %retval         ; <int> [#uses=1]
-       ret int %two
+       %retval = phi i32 [ %argc, %2 ]         ; <i32> [#uses=2]
+       %two = add i32 %retval, %retval         ; <i32> [#uses=1]
+       ret i32 %two
 
        br label %1
 end