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;
 | 
					      continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Check whether or not the use is in the SCoP.
 | 
					    // Check whether or not the use is in the SCoP.
 | 
				
			||||||
    if (!R->contains(UseParent)) {
 | 
					    if (!isa<PHINode>(UI) && !R->contains(UseParent)) {
 | 
				
			||||||
      AnyCrossStmtUse = true;
 | 
					      AnyCrossStmtUse = true;
 | 
				
			||||||
      continue;
 | 
					      continue;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,7 +29,7 @@
 | 
				
			||||||
; INNERMOST:            Domain :=
 | 
					; INNERMOST:            Domain :=
 | 
				
			||||||
; INNERMOST:                [p_0, p_1, p_2, p_3] -> { Stmt_bb16[i0] : i0 <= 1023 - p_0 and i0 >= 0 }
 | 
					; INNERMOST:                [p_0, p_1, p_2, p_3] -> { Stmt_bb16[i0] : i0 <= 1023 - p_0 and i0 >= 0 }
 | 
				
			||||||
; INNERMOST:            Schedule :=
 | 
					; 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:            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:                [p_0, p_1, p_2, p_3] -> { Stmt_bb16[i0] -> MemRef_A[o0] : 4o0 = p_1 };
 | 
				
			||||||
; INNERMOST:            ReadAccess := [Reduction Type: NONE] [Scalar: 0]
 | 
					; 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:                [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:            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:                [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:    }
 | 
					; INNERMOST:    }
 | 
				
			||||||
;
 | 
					;
 | 
				
			||||||
; ALL:    Function: f
 | 
					; ALL:    Function: f
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -47,7 +47,7 @@
 | 
				
			||||||
; INNERMOST-DAG:               i0 <= -1 + p_0
 | 
					; INNERMOST-DAG:               i0 <= -1 + p_0
 | 
				
			||||||
; INNERMOST-DAG:             };
 | 
					; INNERMOST-DAG:             };
 | 
				
			||||||
; INNERMOST:            Schedule :=
 | 
					; 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:            ReadAccess := [Reduction Type: NONE] [Scalar: 0]
 | 
				
			||||||
; INNERMOST:                [p_0, p_1, p_2] -> { Stmt_bb16[i0] -> MemRef_A[o0] : 4o0 = p_1 };
 | 
					; INNERMOST:                [p_0, p_1, p_2] -> { Stmt_bb16[i0] -> MemRef_A[o0] : 4o0 = p_1 };
 | 
				
			||||||
; INNERMOST:            ReadAccess := [Reduction Type: NONE] [Scalar: 0]
 | 
					; 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:                [p_0, p_1, p_2] -> { Stmt_bb16[i0] -> MemRef_A[i0] };
 | 
				
			||||||
; INNERMOST:            MustWriteAccess :=  [Reduction Type: +] [Scalar: 0]
 | 
					; INNERMOST:            MustWriteAccess :=  [Reduction Type: +] [Scalar: 0]
 | 
				
			||||||
; INNERMOST:                [p_0, p_1, p_2] -> { Stmt_bb16[i0] -> MemRef_A[i0] };
 | 
					; 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:    }
 | 
					; INNERMOST:    }
 | 
				
			||||||
;
 | 
					;
 | 
				
			||||||
; ALL:    Function: f
 | 
					; ALL:    Function: f
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -27,8 +27,6 @@
 | 
				
			||||||
; CHECK:           { Stmt_bb1[i0] -> MemRef_phisum__phi[] };
 | 
					; CHECK:           { Stmt_bb1[i0] -> MemRef_phisum__phi[] };
 | 
				
			||||||
; CHECK:       ReadAccess :=       [Reduction Type: NONE] [Scalar: 1]
 | 
					; CHECK:       ReadAccess :=       [Reduction Type: NONE] [Scalar: 1]
 | 
				
			||||||
; CHECK:           { Stmt_bb1[i0] -> MemRef_phisum__phi[] };
 | 
					; 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:       ReadAccess :=       [Reduction Type: NONE] [Scalar: 0]
 | 
				
			||||||
; CHECK:           { Stmt_bb1[i0] -> MemRef_A[i0] };
 | 
					; CHECK:           { Stmt_bb1[i0] -> MemRef_A[i0] };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue