Changeset View
Changeset View
Standalone View
Standalone View
test/Analysis/DependenceAnalysis/GCD.ll
Show All 9 Lines | |||||
;; A[2*i - 4*j] = i; | ;; A[2*i - 4*j] = i; | ||||
;; *B++ = A[6*i + 8*j]; | ;; *B++ = A[6*i + 8*j]; | ||||
define void @gcd0(i32* %A, i32* %B) nounwind uwtable ssp { | define void @gcd0(i32* %A, i32* %B) nounwind uwtable ssp { | ||||
entry: | entry: | ||||
br label %for.cond1.preheader | br label %for.cond1.preheader | ||||
; DELIN-LABEL: gcd0 | ; DELIN-LABEL: gcd0 | ||||
; DELIN: da analyze - output [* *]! | ; DELIN: da analyze - none! | ||||
; DELIN: da analyze - flow [=> *|<]! | ; DELIN: da analyze - flow [=> *|<]! | ||||
; DELIN: da analyze - confused! | ; DELIN: da analyze - confused! | ||||
; DELIN: da analyze - input [* *]! | ; DELIN: da analyze - none! | ||||
; DELIN: da analyze - confused! | ; DELIN: da analyze - confused! | ||||
; DELIN: da analyze - none! | ; DELIN: da analyze - none! | ||||
for.cond1.preheader: ; preds = %entry, %for.inc8 | for.cond1.preheader: ; preds = %entry, %for.inc8 | ||||
%B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc8 ] | %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc8 ] | ||||
%i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ] | %i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ] | ||||
br label %for.body3 | br label %for.body3 | ||||
Show All 33 Lines | |||||
;; A[2*i - 4*j] = i; | ;; A[2*i - 4*j] = i; | ||||
;; *B++ = A[6*i + 8*j + 1]; | ;; *B++ = A[6*i + 8*j + 1]; | ||||
define void @gcd1(i32* %A, i32* %B) nounwind uwtable ssp { | define void @gcd1(i32* %A, i32* %B) nounwind uwtable ssp { | ||||
entry: | entry: | ||||
br label %for.cond1.preheader | br label %for.cond1.preheader | ||||
; DELIN-LABEL: gcd1 | ; DELIN-LABEL: gcd1 | ||||
; DELIN: da analyze - output [* *]! | ; DELIN: da analyze - none! | ||||
; DELIN: da analyze - none! | ; DELIN: da analyze - none! | ||||
; DELIN: da analyze - confused! | ; DELIN: da analyze - confused! | ||||
; DELIN: da analyze - input [* *]! | ; DELIN: da analyze - none! | ||||
; DELIN: da analyze - confused! | ; DELIN: da analyze - confused! | ||||
; DELIN: da analyze - none! | ; DELIN: da analyze - none! | ||||
for.cond1.preheader: ; preds = %entry, %for.inc9 | for.cond1.preheader: ; preds = %entry, %for.inc9 | ||||
%B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc9 ] | %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc9 ] | ||||
%i.03 = phi i64 [ 0, %entry ], [ %inc10, %for.inc9 ] | %i.03 = phi i64 [ 0, %entry ], [ %inc10, %for.inc9 ] | ||||
br label %for.body3 | br label %for.body3 | ||||
Show All 34 Lines | |||||
;; A[2*i - 4*j + 1] = i; | ;; A[2*i - 4*j + 1] = i; | ||||
;; *B++ = A[6*i + 8*j]; | ;; *B++ = A[6*i + 8*j]; | ||||
define void @gcd2(i32* %A, i32* %B) nounwind uwtable ssp { | define void @gcd2(i32* %A, i32* %B) nounwind uwtable ssp { | ||||
entry: | entry: | ||||
br label %for.cond1.preheader | br label %for.cond1.preheader | ||||
; DELIN-LABEL: gcd2 | ; DELIN-LABEL: gcd2 | ||||
; DELIN: da analyze - output [* *]! | ; DELIN: da analyze - none! | ||||
; DELIN: da analyze - none! | ; DELIN: da analyze - none! | ||||
; DELIN: da analyze - confused! | ; DELIN: da analyze - confused! | ||||
; DELIN: da analyze - input [* *]! | ; DELIN: da analyze - none! | ||||
; DELIN: da analyze - confused! | ; DELIN: da analyze - confused! | ||||
; DELIN: da analyze - none! | ; DELIN: da analyze - none! | ||||
for.cond1.preheader: ; preds = %entry, %for.inc9 | for.cond1.preheader: ; preds = %entry, %for.inc9 | ||||
%B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc9 ] | %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc9 ] | ||||
%i.03 = phi i64 [ 0, %entry ], [ %inc10, %for.inc9 ] | %i.03 = phi i64 [ 0, %entry ], [ %inc10, %for.inc9 ] | ||||
br label %for.body3 | br label %for.body3 | ||||
Show All 34 Lines | |||||
;; A[i + 2*j] = i; | ;; A[i + 2*j] = i; | ||||
;; *B++ = A[i + 2*j - 1]; | ;; *B++ = A[i + 2*j - 1]; | ||||
define void @gcd3(i32* %A, i32* %B) nounwind uwtable ssp { | define void @gcd3(i32* %A, i32* %B) nounwind uwtable ssp { | ||||
entry: | entry: | ||||
br label %for.cond1.preheader | br label %for.cond1.preheader | ||||
; DELIN-LABEL: gcd3 | ; DELIN-LABEL: gcd3 | ||||
; DELIN: da analyze - output [* *]! | ; DELIN: da analyze - none! | ||||
; DELIN: da analyze - flow [<> *]! | ; DELIN: da analyze - flow [<> *]! | ||||
; DELIN: da analyze - confused! | ; DELIN: da analyze - confused! | ||||
; DELIN: da analyze - input [* *]! | ; DELIN: da analyze - none! | ||||
; DELIN: da analyze - confused! | ; DELIN: da analyze - confused! | ||||
; DELIN: da analyze - none! | ; DELIN: da analyze - none! | ||||
for.cond1.preheader: ; preds = %entry, %for.inc7 | for.cond1.preheader: ; preds = %entry, %for.inc7 | ||||
%B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc7 ] | %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc7 ] | ||||
%i.03 = phi i64 [ 0, %entry ], [ %inc8, %for.inc7 ] | %i.03 = phi i64 [ 0, %entry ], [ %inc8, %for.inc7 ] | ||||
br label %for.body3 | br label %for.body3 | ||||
▲ Show 20 Lines • Show All 162 Lines • ▼ Show 20 Lines | entry: | ||||
br i1 %cmp4, label %for.cond1.preheader.preheader, label %for.end12 | br i1 %cmp4, label %for.cond1.preheader.preheader, label %for.end12 | ||||
; DELIN-LABEL: gcd6 | ; DELIN-LABEL: gcd6 | ||||
; DELIN: da analyze - none! | ; DELIN: da analyze - none! | ||||
; DELIN: da analyze - none! | ; DELIN: da analyze - none! | ||||
; DELIN: da analyze - confused! | ; DELIN: da analyze - confused! | ||||
; DELIN: da analyze - none! | ; DELIN: da analyze - none! | ||||
; DELIN: da analyze - confused! | ; DELIN: da analyze - confused! | ||||
; DELIN: da analyze - output [* *]! | ; DELIN: da analyze - none! | ||||
for.cond1.preheader.preheader: ; preds = %entry | for.cond1.preheader.preheader: ; preds = %entry | ||||
br label %for.cond1.preheader | br label %for.cond1.preheader | ||||
for.cond1.preheader: ; preds = %for.cond1.preheader.preheader, %for.inc10 | for.cond1.preheader: ; preds = %for.cond1.preheader.preheader, %for.inc10 | ||||
%i.06 = phi i64 [ %inc11, %for.inc10 ], [ 0, %for.cond1.preheader.preheader ] | %i.06 = phi i64 [ %inc11, %for.inc10 ], [ 0, %for.cond1.preheader.preheader ] | ||||
%B.addr.05 = phi i32* [ %B.addr.1.lcssa, %for.inc10 ], [ %B, %for.cond1.preheader.preheader ] | %B.addr.05 = phi i32* [ %B.addr.1.lcssa, %for.inc10 ], [ %B, %for.cond1.preheader.preheader ] | ||||
%cmp21 = icmp sgt i64 %n, 0 | %cmp21 = icmp sgt i64 %n, 0 | ||||
▲ Show 20 Lines • Show All 50 Lines • ▼ Show 20 Lines | |||||
define void @gcd7(i32 %n, i32* %A, i32* %B) nounwind uwtable ssp { | define void @gcd7(i32 %n, i32* %A, i32* %B) nounwind uwtable ssp { | ||||
entry: | entry: | ||||
%0 = zext i32 %n to i64 | %0 = zext i32 %n to i64 | ||||
%cmp4 = icmp sgt i32 %n, 0 | %cmp4 = icmp sgt i32 %n, 0 | ||||
br i1 %cmp4, label %for.cond1.preheader.preheader, label %for.end15 | br i1 %cmp4, label %for.cond1.preheader.preheader, label %for.end15 | ||||
; DELIN-LABEL: gcd7 | ; DELIN-LABEL: gcd7 | ||||
; DELIN: da analyze - output [* *]! | ; DELIN: da analyze - none! | ||||
; DELIN: da analyze - flow [* *|<]! | ; DELIN: da analyze - flow [* *|<]! | ||||
; DELIN: da analyze - confused! | ; DELIN: da analyze - confused! | ||||
; DELIN: da analyze - input [* *]! | ; DELIN: da analyze - none! | ||||
; DELIN: da analyze - confused! | ; DELIN: da analyze - confused! | ||||
; DELIN: da analyze - output [* *]! | ; DELIN: da analyze - none! | ||||
for.cond1.preheader.preheader: ; preds = %entry | for.cond1.preheader.preheader: ; preds = %entry | ||||
br label %for.cond1.preheader | br label %for.cond1.preheader | ||||
for.cond1.preheader: ; preds = %for.cond1.preheader.preheader, %for.inc13 | for.cond1.preheader: ; preds = %for.cond1.preheader.preheader, %for.inc13 | ||||
%indvars.iv8 = phi i64 [ 0, %for.cond1.preheader.preheader ], [ %indvars.iv.next9, %for.inc13 ] | %indvars.iv8 = phi i64 [ 0, %for.cond1.preheader.preheader ], [ %indvars.iv.next9, %for.inc13 ] | ||||
%B.addr.05 = phi i32* [ %B.addr.1.lcssa, %for.inc13 ], [ %B, %for.cond1.preheader.preheader ] | %B.addr.05 = phi i32* [ %B.addr.1.lcssa, %for.inc13 ], [ %B, %for.cond1.preheader.preheader ] | ||||
%1 = add i32 %n, -1 | %1 = add i32 %n, -1 | ||||
▲ Show 20 Lines • Show All 62 Lines • ▼ Show 20 Lines | |||||
;; *B++ = A[n*8*i + 6*j + 1]; | ;; *B++ = A[n*8*i + 6*j + 1]; | ||||
define void @gcd8(i32 %n, i32* %A, i32* %B) nounwind uwtable ssp { | define void @gcd8(i32 %n, i32* %A, i32* %B) nounwind uwtable ssp { | ||||
entry: | entry: | ||||
%cmp4 = icmp sgt i32 %n, 0 | %cmp4 = icmp sgt i32 %n, 0 | ||||
br i1 %cmp4, label %for.cond1.preheader.preheader, label %for.end15 | br i1 %cmp4, label %for.cond1.preheader.preheader, label %for.end15 | ||||
; DELIN-LABEL: gcd8 | ; DELIN-LABEL: gcd8 | ||||
; DELIN: da analyze - output [* *]! | ; DELIN: da analyze - none! | ||||
; DELIN: da analyze - flow [* *|<]! | ; DELIN: da analyze - flow [* *|<]! | ||||
; DELIN: da analyze - confused! | ; DELIN: da analyze - confused! | ||||
; DELIN: da analyze - input [* *]! | ; DELIN: da analyze - none! | ||||
; DELIN: da analyze - confused! | ; DELIN: da analyze - confused! | ||||
; DELIN: da analyze - output [* *]! | ; DELIN: da analyze - none! | ||||
for.cond1.preheader.preheader: ; preds = %entry | for.cond1.preheader.preheader: ; preds = %entry | ||||
br label %for.cond1.preheader | br label %for.cond1.preheader | ||||
for.cond1.preheader: ; preds = %for.cond1.preheader.preheader, %for.inc13 | for.cond1.preheader: ; preds = %for.cond1.preheader.preheader, %for.inc13 | ||||
%i.06 = phi i32 [ %inc14, %for.inc13 ], [ 0, %for.cond1.preheader.preheader ] | %i.06 = phi i32 [ %inc14, %for.inc13 ], [ 0, %for.cond1.preheader.preheader ] | ||||
%B.addr.05 = phi i32* [ %B.addr.1.lcssa, %for.inc13 ], [ %B, %for.cond1.preheader.preheader ] | %B.addr.05 = phi i32* [ %B.addr.1.lcssa, %for.inc13 ], [ %B, %for.cond1.preheader.preheader ] | ||||
%0 = add i32 %n, -1 | %0 = add i32 %n, -1 | ||||
▲ Show 20 Lines • Show All 57 Lines • ▼ Show 20 Lines | |||||
define void @gcd9(i32 %n, i32* %A, i32* %B) nounwind uwtable ssp { | define void @gcd9(i32 %n, i32* %A, i32* %B) nounwind uwtable ssp { | ||||
entry: | entry: | ||||
%0 = zext i32 %n to i64 | %0 = zext i32 %n to i64 | ||||
%cmp4 = icmp eq i32 %n, 0 | %cmp4 = icmp eq i32 %n, 0 | ||||
br i1 %cmp4, label %for.end15, label %for.cond1.preheader.preheader | br i1 %cmp4, label %for.end15, label %for.cond1.preheader.preheader | ||||
; DELIN-LABEL: gcd9 | ; DELIN-LABEL: gcd9 | ||||
; DELIN: da analyze - output [* *]! | ; DELIN: da analyze - none! | ||||
; DELIN: da analyze - flow [* *|<]! | ; DELIN: da analyze - flow [* *|<]! | ||||
; DELIN: da analyze - confused! | ; DELIN: da analyze - confused! | ||||
; DELIN: da analyze - input [* *]! | ; DELIN: da analyze - none! | ||||
; DELIN: da analyze - confused! | ; DELIN: da analyze - confused! | ||||
; DELIN: da analyze - output [* *]! | ; DELIN: da analyze - none! | ||||
for.cond1.preheader.preheader: ; preds = %entry | for.cond1.preheader.preheader: ; preds = %entry | ||||
br label %for.cond1.preheader | br label %for.cond1.preheader | ||||
for.cond1.preheader: ; preds = %for.cond1.preheader.preheader, %for.inc13 | for.cond1.preheader: ; preds = %for.cond1.preheader.preheader, %for.inc13 | ||||
%indvars.iv8 = phi i64 [ 0, %for.cond1.preheader.preheader ], [ %indvars.iv.next9, %for.inc13 ] | %indvars.iv8 = phi i64 [ 0, %for.cond1.preheader.preheader ], [ %indvars.iv.next9, %for.inc13 ] | ||||
%B.addr.05 = phi i32* [ %B.addr.1.lcssa, %for.inc13 ], [ %B, %for.cond1.preheader.preheader ] | %B.addr.05 = phi i32* [ %B.addr.1.lcssa, %for.inc13 ], [ %B, %for.cond1.preheader.preheader ] | ||||
%1 = add i32 %n, -1 | %1 = add i32 %n, -1 | ||||
▲ Show 20 Lines • Show All 57 Lines • Show Last 20 Lines |