You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.207
Former-commit-id: 3b152f462918d427ce18620a2cbe4f8b79650449
This commit is contained in:
parent
8e12397d70
commit
eb85e2fc17
@ -1,20 +0,0 @@
|
||||
; This testcase makes sure that size is taken to account when alias analysis
|
||||
; is performed. It is not legal to delete the second load instruction because
|
||||
; the value computed by the first load instruction is changed by the store.
|
||||
|
||||
; RUN: opt < %s -basicaa -gvn -instcombine -S | FileCheck %s
|
||||
|
||||
define i32 @test() {
|
||||
; CHECK: %Y.DONOTREMOVE = load i32, i32* %A
|
||||
; CHECK: %Z = sub i32 0, %Y.DONOTREMOVE
|
||||
%A = alloca i32
|
||||
store i32 0, i32* %A
|
||||
%X = load i32, i32* %A
|
||||
%B = bitcast i32* %A to i8*
|
||||
%C = getelementptr i8, i8* %B, i64 1
|
||||
store i8 1, i8* %C ; Aliases %A
|
||||
%Y.DONOTREMOVE = load i32, i32* %A
|
||||
%Z = sub i32 %X, %Y.DONOTREMOVE
|
||||
ret i32 %Z
|
||||
}
|
||||
|
@ -1,7 +0,0 @@
|
||||
; RUN: opt < %s -basicaa -aa-eval -disable-output 2>/dev/null
|
||||
; Test for a bug in BasicAA which caused a crash when querying equality of P1&P2
|
||||
define void @test({[2 x i32],[2 x i32]}* %A, i64 %X, i64 %Y) {
|
||||
%P1 = getelementptr {[2 x i32],[2 x i32]}, {[2 x i32],[2 x i32]}* %A, i64 0, i32 0, i64 %X
|
||||
%P2 = getelementptr {[2 x i32],[2 x i32]}, {[2 x i32],[2 x i32]}* %A, i64 0, i32 1, i64 %Y
|
||||
ret void
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
; RUN: opt < %s -basicaa -gvn -instcombine -S | FileCheck %s
|
||||
|
||||
; BasicAA was incorrectly concluding that P1 and P2 didn't conflict!
|
||||
|
||||
define i32 @test(i32 *%Ptr, i64 %V) {
|
||||
; CHECK: sub i32 %X, %Y
|
||||
%P2 = getelementptr i32, i32* %Ptr, i64 1
|
||||
%P1 = getelementptr i32, i32* %Ptr, i64 %V
|
||||
%X = load i32, i32* %P1
|
||||
store i32 5, i32* %P2
|
||||
%Y = load i32, i32* %P1
|
||||
%Z = sub i32 %X, %Y
|
||||
ret i32 %Z
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
; RUN: opt < %s -basicaa -aa-eval -disable-output 2>/dev/null
|
||||
; Test for a bug in BasicAA which caused a crash when querying equality of P1&P2
|
||||
define void @test([17 x i16]* %mask_bits) {
|
||||
%P1 = getelementptr [17 x i16], [17 x i16]* %mask_bits, i64 0, i64 0
|
||||
%P2 = getelementptr [17 x i16], [17 x i16]* %mask_bits, i64 252645134, i64 0
|
||||
ret void
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
; RUN: opt < %s -basicaa -licm -disable-output
|
||||
%struct..apr_array_header_t = type { i32*, i32, i32, i32, i8* }
|
||||
%struct..apr_table_t = type { %struct..apr_array_header_t, i32, [32 x i32], [32 x i32] }
|
||||
|
||||
define void @table_reindex(%struct..apr_table_t* %t.1) { ; No predecessors!
|
||||
br label %loopentry
|
||||
|
||||
loopentry: ; preds = %0, %no_exit
|
||||
%tmp.101 = getelementptr %struct..apr_table_t, %struct..apr_table_t* %t.1, i64 0, i32 0, i32 2
|
||||
%tmp.11 = load i32, i32* %tmp.101 ; <i32> [#uses=0]
|
||||
br i1 false, label %no_exit, label %UnifiedExitNode
|
||||
|
||||
no_exit: ; preds = %loopentry
|
||||
%tmp.25 = sext i32 0 to i64 ; <i64> [#uses=1]
|
||||
%tmp.261 = getelementptr %struct..apr_table_t, %struct..apr_table_t* %t.1, i64 0, i32 3, i64 %tmp.25 ; <i32*> [#uses=1]
|
||||
store i32 0, i32* %tmp.261
|
||||
br label %loopentry
|
||||
|
||||
UnifiedExitNode: ; preds = %loopentry
|
||||
ret void
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
; RUN: opt < %s -basicaa -aa-eval -disable-output 2>/dev/null
|
||||
|
||||
define i32 @MTConcat([3 x i32]* %a.1) {
|
||||
%tmp.961 = getelementptr [3 x i32], [3 x i32]* %a.1, i64 0, i64 4
|
||||
%tmp.97 = load i32, i32* %tmp.961
|
||||
%tmp.119 = getelementptr [3 x i32], [3 x i32]* %a.1, i64 1, i64 0
|
||||
%tmp.120 = load i32, i32* %tmp.119
|
||||
%tmp.1541 = getelementptr [3 x i32], [3 x i32]* %a.1, i64 0, i64 4
|
||||
%tmp.155 = load i32, i32* %tmp.1541
|
||||
ret i32 0
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
; RUN: opt < %s -basicaa -aa-eval -disable-output 2>/dev/null
|
||||
|
||||
%struct..RefPoint = type { i32, { i32, i8, i8 } }
|
||||
%struct..RefRect = type { %struct..RefPoint, %struct..RefPoint }
|
||||
|
||||
define i32 @BMT_CommitPartDrawObj() {
|
||||
%tmp.19111 = getelementptr %struct..RefRect, %struct..RefRect* null, i64 0, i32 0, i32 1, i32 2
|
||||
%tmp.20311 = getelementptr %struct..RefRect, %struct..RefRect* null, i64 0, i32 1, i32 1, i32 2
|
||||
ret i32 0
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
; In this test, a local alloca cannot alias an incoming argument.
|
||||
|
||||
; RUN: opt < %s -basicaa -gvn -instcombine -S | FileCheck %s
|
||||
|
||||
; CHECK: define i32 @test
|
||||
; CHECK-NEXT: ret i32 0
|
||||
|
||||
define i32 @test(i32* %P) {
|
||||
%X = alloca i32
|
||||
%V1 = load i32, i32* %P
|
||||
store i32 0, i32* %X
|
||||
%V2 = load i32, i32* %P
|
||||
%Diff = sub i32 %V1, %V2
|
||||
ret i32 %Diff
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
; This testcase consists of alias relations which should be completely
|
||||
; resolvable by basicaa.
|
||||
|
||||
; RUN: opt < %s -basicaa -aa-eval -print-may-aliases -disable-output 2>&1 | FileCheck %s
|
||||
|
||||
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
||||
|
||||
%T = type { i32, [10 x i8] }
|
||||
|
||||
; CHECK: Function: test
|
||||
; CHECK-NOT: MayAlias:
|
||||
|
||||
define void @test(%T* %P) {
|
||||
%A = getelementptr %T, %T* %P, i64 0
|
||||
%B = getelementptr %T, %T* %P, i64 0, i32 0
|
||||
%C = getelementptr %T, %T* %P, i64 0, i32 1
|
||||
%D = getelementptr %T, %T* %P, i64 0, i32 1, i64 0
|
||||
%E = getelementptr %T, %T* %P, i64 0, i32 1, i64 5
|
||||
ret void
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
; This testcase consists of alias relations which should be completely
|
||||
; resolvable by basicaa, but require analysis of getelementptr constant exprs.
|
||||
|
||||
; RUN: opt < %s -basicaa -aa-eval -print-may-aliases -disable-output 2>&1 | FileCheck %s
|
||||
|
||||
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
||||
|
||||
%T = type { i32, [10 x i8] }
|
||||
|
||||
@G = external global %T
|
||||
|
||||
; CHECK: Function: test
|
||||
; CHECK-NOT: MayAlias:
|
||||
|
||||
define void @test() {
|
||||
%D = getelementptr %T, %T* @G, i64 0, i32 0
|
||||
%E = getelementptr %T, %T* @G, i64 0, i32 1, i64 5
|
||||
%F = getelementptr i32, i32* getelementptr (%T, %T* @G, i64 0, i32 0), i64 0
|
||||
%X = getelementptr [10 x i8], [10 x i8]* getelementptr (%T, %T* @G, i64 0, i32 1), i64 0, i64 5
|
||||
|
||||
ret void
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
; RUN: opt < %s -basicaa -dse -S | FileCheck %s
|
||||
|
||||
define void @test({i32,i32 }* %P) {
|
||||
; CHECK: store i32 0, i32* %X
|
||||
%Q = getelementptr {i32,i32}, {i32,i32}* %P, i32 1
|
||||
%X = getelementptr {i32,i32}, {i32,i32}* %Q, i32 0, i32 1
|
||||
%Y = getelementptr {i32,i32}, {i32,i32}* %Q, i32 1, i32 1
|
||||
store i32 0, i32* %X
|
||||
store i32 1, i32* %Y
|
||||
ret void
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
; RUN: opt < %s -basicaa -aa-eval -disable-output 2>&1 | FileCheck %s
|
||||
; TEST that A[1][0] may alias A[0][i].
|
||||
target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
|
||||
|
||||
; CHECK: 2 no alias responses
|
||||
|
||||
define void @test(i32 %N) {
|
||||
entry:
|
||||
%X = alloca [3 x [3 x i32]] ; <[3 x [3 x i32]]*> [#uses=4]
|
||||
%tmp.24 = icmp sgt i32 %N, 0 ; <i1> [#uses=1]
|
||||
br i1 %tmp.24, label %no_exit, label %loopexit
|
||||
|
||||
no_exit: ; preds = %no_exit, %entry
|
||||
%i.0.0 = phi i32 [ 0, %entry ], [ %inc, %no_exit ] ; <i32> [#uses=2]
|
||||
%tmp.6 = getelementptr [3 x [3 x i32]], [3 x [3 x i32]]* %X, i32 0, i32 0, i32 %i.0.0 ; <i32*> [#uses=1]
|
||||
store i32 1, i32* %tmp.6
|
||||
%tmp.8 = getelementptr [3 x [3 x i32]], [3 x [3 x i32]]* %X, i32 0, i32 0, i32 0 ; <i32*> [#uses=1]
|
||||
%tmp.9 = load i32, i32* %tmp.8 ; <i32> [#uses=1]
|
||||
%tmp.11 = getelementptr [3 x [3 x i32]], [3 x [3 x i32]]* %X, i32 0, i32 1, i32 0 ; <i32*> [#uses=1]
|
||||
%tmp.12 = load i32, i32* %tmp.11 ; <i32> [#uses=1]
|
||||
%tmp.13 = add i32 %tmp.12, %tmp.9 ; <i32> [#uses=1]
|
||||
%inc = add i32 %i.0.0, 1 ; <i32> [#uses=2]
|
||||
%tmp.2 = icmp slt i32 %inc, %N ; <i1> [#uses=1]
|
||||
br i1 %tmp.2, label %no_exit, label %loopexit
|
||||
|
||||
loopexit: ; preds = %no_exit, %entry
|
||||
%Y.0.1 = phi i32 [ 0, %entry ], [ %tmp.13, %no_exit ] ; <i32> [#uses=1]
|
||||
%tmp.4 = getelementptr [3 x [3 x i32]], [3 x [3 x i32]]* %X, i32 0, i32 0 ; <[3 x i32]*> [#uses=1]
|
||||
%tmp.15 = call i32 (...) @foo( [3 x i32]* %tmp.4, i32 %Y.0.1 ) ; <i32> [#uses=0]
|
||||
ret void
|
||||
}
|
||||
|
||||
declare i32 @foo(...)
|
@ -1,48 +0,0 @@
|
||||
; RUN: opt < %s -basicaa -licm -disable-output
|
||||
target datalayout = "E-p:32:32"
|
||||
target triple = "powerpc-apple-darwin8.7.0"
|
||||
|
||||
define void @glgRunProcessor() {
|
||||
entry:
|
||||
br i1 false, label %bb2037.i, label %cond_true.i18
|
||||
|
||||
cond_true.i18: ; preds = %entry
|
||||
ret void
|
||||
|
||||
bb205.i: ; preds = %bb2037.i
|
||||
switch i32 0, label %bb1013.i [
|
||||
i32 14, label %bb239.i
|
||||
i32 15, label %bb917.i
|
||||
]
|
||||
|
||||
bb239.i: ; preds = %bb205.i
|
||||
br i1 false, label %cond_false277.i, label %cond_true264.i
|
||||
|
||||
cond_true264.i: ; preds = %bb239.i
|
||||
ret void
|
||||
|
||||
cond_false277.i: ; preds = %bb239.i
|
||||
%tmp1062.i = getelementptr [2 x <4 x i32>], [2 x <4 x i32>]* null, i32 0, i32 1 ; <<4 x i32>*> [#uses=1]
|
||||
store <4 x i32> zeroinitializer, <4 x i32>* %tmp1062.i
|
||||
br i1 false, label %cond_true1032.i, label %cond_false1063.i85
|
||||
|
||||
bb917.i: ; preds = %bb205.i
|
||||
ret void
|
||||
|
||||
bb1013.i: ; preds = %bb205.i
|
||||
ret void
|
||||
|
||||
cond_true1032.i: ; preds = %cond_false277.i
|
||||
%tmp1187.i = getelementptr [2 x <4 x i32>], [2 x <4 x i32>]* null, i32 0, i32 0, i32 7 ; <i32*> [#uses=1]
|
||||
store i32 0, i32* %tmp1187.i
|
||||
br label %bb2037.i
|
||||
|
||||
cond_false1063.i85: ; preds = %cond_false277.i
|
||||
ret void
|
||||
|
||||
bb2037.i: ; preds = %cond_true1032.i, %entry
|
||||
br i1 false, label %bb205.i, label %cond_next2042.i
|
||||
|
||||
cond_next2042.i: ; preds = %bb2037.i
|
||||
ret void
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
; RUN: opt < %s -basicaa -gvn -instcombine -S | FileCheck %s
|
||||
; PR1109
|
||||
|
||||
target datalayout = "e-p:32:32"
|
||||
target triple = "i686-apple-darwin8"
|
||||
%struct.CONSTRAINT = type { i32, i32, i32, i32 }
|
||||
%struct.FILE_POS = type { i8, i8, i16, i32 }
|
||||
%struct.FIRST_UNION = type { %struct.FILE_POS }
|
||||
%struct.FOURTH_UNION = type { %struct.CONSTRAINT }
|
||||
%struct.GAP = type { i8, i8, i16 }
|
||||
%struct.LIST = type { %struct.rec*, %struct.rec* }
|
||||
%struct.SECOND_UNION = type { { i16, i8, i8 } }
|
||||
%struct.STYLE = type { { %struct.GAP }, { %struct.GAP }, i16, i16, i16, i8, i8 }
|
||||
%struct.THIRD_UNION = type { { [2 x i32], [2 x i32] } }
|
||||
%struct.closure_type = type { [2 x %struct.LIST], %struct.FIRST_UNION, %struct.SECOND_UNION, %struct.THIRD_UNION, %struct.FOURTH_UNION, %struct.rec*, { %struct.rec* } }
|
||||
%struct.head_type = type { [2 x %struct.LIST], %struct.FIRST_UNION, %struct.SECOND_UNION, %struct.THIRD_UNION, %struct.FOURTH_UNION, %struct.rec*, { %struct.rec* }, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, i32 }
|
||||
%struct.rec = type { %struct.head_type }
|
||||
|
||||
; CHECK: define i32 @test
|
||||
; CHECK: %Z = sub i32 %A, %Q
|
||||
; CHECK: ret i32 %Z
|
||||
|
||||
define i32 @test(%struct.closure_type* %tmp18169) {
|
||||
%tmp18174 = getelementptr %struct.closure_type, %struct.closure_type* %tmp18169, i32 0, i32 4, i32 0, i32 0 ; <i32*> [#uses=2]
|
||||
%tmp18269 = bitcast i32* %tmp18174 to %struct.STYLE* ; <%struct.STYLE*> [#uses=1]
|
||||
%A = load i32, i32* %tmp18174 ; <i32> [#uses=1]
|
||||
|
||||
%tmp18272 = getelementptr %struct.STYLE, %struct.STYLE* %tmp18269, i32 0, i32 0, i32 0, i32 2 ; <i16*> [#uses=1]
|
||||
store i16 123, i16* %tmp18272
|
||||
|
||||
%Q = load i32, i32* %tmp18174 ; <i32> [#uses=1]
|
||||
%Z = sub i32 %A, %Q ; <i32> [#uses=1]
|
||||
ret i32 %Z
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
; RUN: opt < %s -basicaa -aa-eval -print-all-alias-modref-info -disable-output 2>&1 | FileCheck %s
|
||||
|
||||
; CHECK: Function: foo
|
||||
; CHECK: MayAlias: i32* %x, i32* %y
|
||||
|
||||
define void @foo(i32* noalias %x) {
|
||||
%y = call i32* @unclear(i32* %x)
|
||||
store i32 0, i32* %x
|
||||
store i32 0, i32* %y
|
||||
ret void
|
||||
}
|
||||
|
||||
declare i32* @unclear(i32* %a)
|
@ -1,22 +0,0 @@
|
||||
; RUN: opt < %s -basicaa -aa-eval -print-all-alias-modref-info -disable-output 2>&1 | FileCheck %s
|
||||
|
||||
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
||||
|
||||
; CHECK: Function: foo
|
||||
; CHECK: MayAlias: i32* %Ipointer, i32* %Jpointer
|
||||
; CHECK: 9 no alias responses
|
||||
; CHECK: 6 may alias responses
|
||||
|
||||
define void @foo(i32* noalias %p, i32* noalias %q, i32 %i, i32 %j) {
|
||||
%Ipointer = getelementptr i32, i32* %p, i32 %i
|
||||
%qi = getelementptr i32, i32* %q, i32 %i
|
||||
%Jpointer = getelementptr i32, i32* %p, i32 %j
|
||||
%qj = getelementptr i32, i32* %q, i32 %j
|
||||
store i32 0, i32* %p
|
||||
store i32 0, i32* %Ipointer
|
||||
store i32 0, i32* %Jpointer
|
||||
store i32 0, i32* %q
|
||||
store i32 0, i32* %qi
|
||||
store i32 0, i32* %qj
|
||||
ret void
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
; RUN: opt < %s -basicaa -gvn -instcombine -S | FileCheck %s
|
||||
; PR1600
|
||||
|
||||
declare i16 @llvm.cttz.i16(i16, i1)
|
||||
|
||||
define i32 @test(i32* %P, i16* %Q) {
|
||||
; CHECK: ret i32 0
|
||||
%A = load i16, i16* %Q ; <i16> [#uses=1]
|
||||
%x = load i32, i32* %P ; <i32> [#uses=1]
|
||||
%B = call i16 @llvm.cttz.i16( i16 %A, i1 true ) ; <i16> [#uses=1]
|
||||
%y = load i32, i32* %P ; <i32> [#uses=1]
|
||||
store i16 %B, i16* %Q
|
||||
%z = sub i32 %x, %y ; <i32> [#uses=1]
|
||||
ret i32 %z
|
||||
}
|
||||
|
@ -1,16 +0,0 @@
|
||||
; RUN: opt < %s -basicaa -gvn -dce -S | FileCheck %s
|
||||
|
||||
%struct.A = type { i32 }
|
||||
%struct.B = type { %struct.A }
|
||||
@a = global %struct.B zeroinitializer ; <%struct.B*> [#uses=2]
|
||||
|
||||
define i32 @_Z3fooP1A(%struct.A* %b) {
|
||||
; CHECK: %tmp7 = load
|
||||
; CHECK: ret i32 %tmp7
|
||||
entry:
|
||||
store i32 1, i32* getelementptr (%struct.B, %struct.B* @a, i32 0, i32 0, i32 0), align 8
|
||||
%tmp4 = getelementptr %struct.A, %struct.A* %b, i32 0, i32 0 ;<i32*> [#uses=1]
|
||||
store i32 0, i32* %tmp4, align 4
|
||||
%tmp7 = load i32, i32* getelementptr (%struct.B, %struct.B* @a, i32 0, i32 0, i32 0), align 8 ; <i32> [#uses=1]
|
||||
ret i32 %tmp7
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
; RUN: opt < %s -basicaa -gvn -disable-output
|
||||
; PR1774
|
||||
|
||||
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
|
||||
target triple = "x86_64-unknown-linux-gnu"
|
||||
%struct.device = type { [20 x i8] }
|
||||
%struct.pci_device_id = type { i32, i32, i32, i32, i32, i32, i64 }
|
||||
%struct.usb_bus = type { %struct.device* }
|
||||
%struct.usb_hcd = type { %struct.usb_bus, i64, [0 x i64] }
|
||||
@uhci_pci_ids = constant [1 x %struct.pci_device_id] zeroinitializer
|
||||
|
||||
@__mod_pci_device_table = alias [1 x %struct.pci_device_id], [1 x %struct.pci_device_id]* @uhci_pci_ids
|
||||
; <[1 x %struct.pci_device_id]*> [#uses=0]
|
||||
|
||||
define i32 @uhci_suspend(%struct.usb_hcd* %hcd) {
|
||||
entry:
|
||||
%tmp17 = getelementptr %struct.usb_hcd, %struct.usb_hcd* %hcd, i32 0, i32 2, i64 1
|
||||
; <i64*> [#uses=1]
|
||||
%tmp1718 = bitcast i64* %tmp17 to i32* ; <i32*> [#uses=1]
|
||||
%tmp19 = load i32, i32* %tmp1718, align 4 ; <i32> [#uses=0]
|
||||
br i1 false, label %cond_true34, label %done_okay
|
||||
|
||||
cond_true34: ; preds = %entry
|
||||
%tmp631 = getelementptr %struct.usb_hcd, %struct.usb_hcd* %hcd, i32 0, i32 2, i64
|
||||
2305843009213693950 ; <i64*> [#uses=1]
|
||||
%tmp70 = bitcast i64* %tmp631 to %struct.device**
|
||||
|
||||
%tmp71 = load %struct.device*, %struct.device** %tmp70, align 8
|
||||
|
||||
ret i32 undef
|
||||
|
||||
done_okay: ; preds = %entry
|
||||
ret i32 undef
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
; RUN: opt < %s -basicaa -gvn -disable-output
|
||||
; PR1782
|
||||
|
||||
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
|
||||
target triple = "x86_64-unknown-linux-gnu"
|
||||
%struct.device = type { [20 x i8] }
|
||||
%struct.pci_device_id = type { i32, i32, i32, i32, i32, i32, i64 }
|
||||
%struct.usb_bus = type { %struct.device* }
|
||||
%struct.usb_hcd = type { %struct.usb_bus, [0 x i64] }
|
||||
@pci_ids = constant [1 x %struct.pci_device_id] zeroinitializer
|
||||
|
||||
@__mod_pci_device_table = alias [1 x %struct.pci_device_id], [1 x %struct.pci_device_id]* @pci_ids ; <[1 x %struct.pci_device_id]*> [#uses=0]
|
||||
|
||||
define i32 @ehci_pci_setup(%struct.usb_hcd* %hcd) {
|
||||
entry:
|
||||
%tmp14 = getelementptr %struct.usb_hcd, %struct.usb_hcd* %hcd, i32 0, i32 0, i32 0 ; <%struct.device**> [#uses=1]
|
||||
%tmp15 = load %struct.device*, %struct.device** %tmp14, align 8 ; <%struct.device*> [#uses=0]
|
||||
br i1 false, label %bb25, label %return
|
||||
|
||||
bb25: ; preds = %entry
|
||||
br i1 false, label %cond_true, label %return
|
||||
|
||||
cond_true: ; preds = %bb25
|
||||
%tmp601 = getelementptr %struct.usb_hcd, %struct.usb_hcd* %hcd, i32 0, i32 1, i64 2305843009213693951 ; <i64*> [#uses=1]
|
||||
%tmp67 = bitcast i64* %tmp601 to %struct.device** ; <%struct.device**> [#uses=1]
|
||||
%tmp68 = load %struct.device*, %struct.device** %tmp67, align 8 ; <%struct.device*> [#uses=0]
|
||||
ret i32 undef
|
||||
|
||||
return: ; preds = %bb25, %entry
|
||||
ret i32 undef
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user