Avoid unnecessay .s2a write access when used only in PHIs
PHI accesses will be handled separately by buildPHIAccesses, buildScalarDependences does not need to create additional accesses. llvm-svn: 250517
This commit is contained in:
parent
4585ed006a
commit
aeceab770e
|
|
@ -3272,7 +3272,7 @@ bool ScopInfo::buildScalarDependences(Instruction *Inst, Region *R,
|
|||
continue;
|
||||
|
||||
// Check whether or not the use is in the SCoP.
|
||||
if (!R->contains(UseParent)) {
|
||||
if (!isa<PHINode>(UI) && !R->contains(UseParent)) {
|
||||
AnyCrossStmtUse = true;
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
; INNERMOST: Domain :=
|
||||
; INNERMOST: [p_0, p_1, p_2, p_3] -> { Stmt_bb16[i0] : i0 <= 1023 - p_0 and i0 >= 0 }
|
||||
; INNERMOST: Schedule :=
|
||||
; INNERMOST: [p_0, p_1, p_2, p_3] -> { Stmt_bb16[i0] -> [0, i0] }
|
||||
; INNERMOST: [p_0, p_1, p_2, p_3] -> { Stmt_bb16[i0] -> [i0] }
|
||||
; INNERMOST: ReadAccess := [Reduction Type: NONE] [Scalar: 0]
|
||||
; INNERMOST: [p_0, p_1, p_2, p_3] -> { Stmt_bb16[i0] -> MemRef_A[o0] : 4o0 = p_1 };
|
||||
; INNERMOST: ReadAccess := [Reduction Type: NONE] [Scalar: 0]
|
||||
|
|
@ -38,15 +38,6 @@
|
|||
; INNERMOST: [p_0, p_1, p_2, p_3] -> { Stmt_bb16[i0] -> MemRef_A[o0] : 4o0 = p_3 + 4i0 };
|
||||
; INNERMOST: MustWriteAccess := [Reduction Type: +] [Scalar: 0]
|
||||
; INNERMOST: [p_0, p_1, p_2, p_3] -> { Stmt_bb16[i0] -> MemRef_A[o0] : 4o0 = p_3 + 4i0 };
|
||||
; INNERMOST: Stmt_bb26
|
||||
; INNERMOST: Domain :=
|
||||
; INNERMOST: [p_0, p_1, p_2, p_3] -> { Stmt_bb26[] : p_0 <= 1024 };
|
||||
; INNERMOST: Schedule :=
|
||||
; INNERMOST: [p_0, p_1, p_2, p_3] -> { Stmt_bb26[] -> [1, 0] };
|
||||
; INNERMOST: MustWriteAccess := [Reduction Type: NONE] [Scalar: 1]
|
||||
; INNERMOST: [p_0, p_1, p_2, p_3] -> { Stmt_bb26[] -> MemRef_indvars_iv_next6[] };
|
||||
; INNERMOST: MustWriteAccess := [Reduction Type: NONE] [Scalar: 1]
|
||||
; INNERMOST: [p_0, p_1, p_2, p_3] -> { Stmt_bb26[] -> MemRef_indvars_iv_next4[] };
|
||||
; INNERMOST: }
|
||||
;
|
||||
; ALL: Function: f
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
; INNERMOST-DAG: i0 <= -1 + p_0
|
||||
; INNERMOST-DAG: };
|
||||
; INNERMOST: Schedule :=
|
||||
; INNERMOST: [p_0, p_1, p_2] -> { Stmt_bb16[i0] -> [0, i0] };
|
||||
; INNERMOST: [p_0, p_1, p_2] -> { Stmt_bb16[i0] -> [i0] };
|
||||
; INNERMOST: ReadAccess := [Reduction Type: NONE] [Scalar: 0]
|
||||
; INNERMOST: [p_0, p_1, p_2] -> { Stmt_bb16[i0] -> MemRef_A[o0] : 4o0 = p_1 };
|
||||
; INNERMOST: ReadAccess := [Reduction Type: NONE] [Scalar: 0]
|
||||
|
|
@ -56,15 +56,6 @@
|
|||
; INNERMOST: [p_0, p_1, p_2] -> { Stmt_bb16[i0] -> MemRef_A[i0] };
|
||||
; INNERMOST: MustWriteAccess := [Reduction Type: +] [Scalar: 0]
|
||||
; INNERMOST: [p_0, p_1, p_2] -> { Stmt_bb16[i0] -> MemRef_A[i0] };
|
||||
; INNERMOST: Stmt_bb26
|
||||
; INNERMOST: Domain :=
|
||||
; INNERMOST: [p_0, p_1, p_2] -> { Stmt_bb26[] : p_0 >= 0 };
|
||||
; INNERMOST: Schedule :=
|
||||
; INNERMOST: [p_0, p_1, p_2] -> { Stmt_bb26[] -> [1, 0] };
|
||||
; INNERMOST: MustWriteAccess := [Reduction Type: NONE] [Scalar: 1]
|
||||
; INNERMOST: [p_0, p_1, p_2] -> { Stmt_bb26[] -> MemRef_indvars_iv_next6[] };
|
||||
; INNERMOST: MustWriteAccess := [Reduction Type: NONE] [Scalar: 1]
|
||||
; INNERMOST: [p_0, p_1, p_2] -> { Stmt_bb26[] -> MemRef_indvars_iv_next4[] };
|
||||
; INNERMOST: }
|
||||
;
|
||||
; ALL: Function: f
|
||||
|
|
|
|||
|
|
@ -27,8 +27,6 @@
|
|||
; CHECK: { Stmt_bb1[i0] -> MemRef_phisum__phi[] };
|
||||
; CHECK: ReadAccess := [Reduction Type: NONE] [Scalar: 1]
|
||||
; CHECK: { Stmt_bb1[i0] -> MemRef_phisum__phi[] };
|
||||
; CHECK: MustWriteAccess := [Reduction Type: NONE] [Scalar: 1]
|
||||
; CHECK: { Stmt_bb1[i0] -> MemRef_phisum[] };
|
||||
; CHECK: ReadAccess := [Reduction Type: NONE] [Scalar: 0]
|
||||
; CHECK: { Stmt_bb1[i0] -> MemRef_A[i0] };
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue