brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 9344a28 Raw
54 lines · plain
1; RUN: opt %loadNPMPolly -polly-stmt-granularity=bb '-passes=polly-custom<simplify>' -polly-print-simplify -disable-output -aa-pipeline=basic-aa < %s | FileCheck %s -match-full-lines2;3; Remove a dead PHI write/read pair4; (accesses that are effectively not used)5;6; for (int j = 0; j < n; j += 1) {7; body:8;   double phi = 42;9;10; body_succ:11;   A[0] = 42.0;12; }13;14define void @func(i32 %n, ptr noalias nonnull %A) {15entry:16  br label %for17 18for:19  %j = phi i32 [0, %entry], [%j.inc, %inc]20  %j.cmp = icmp slt i32 %j, %n21  br i1 %j.cmp, label %body, label %exit22 23    body:24      br label %body_succ25 26    body_succ:27      %phi = phi double [42.0, %body]28      store double 42.0, ptr %A29      br label %inc30 31inc:32  %j.inc = add nuw nsw i32 %j, 133  br label %for34 35exit:36  br label %return37 38return:39  ret void40}41 42 43; CHECK: Statistics {44; CHECK:     Dead accesses removed: 245; CHECK:     Dead instructions removed: 146; CHECK:     Stmts removed: 147; CHECK: }48 49; CHECK:      After accesses {50; CHECK-NEXT:     Stmt_body_succ51; CHECK-NEXT:             MustWriteAccess :=  [Reduction Type: NONE] [Scalar: 0]52; CHECK-NEXT:                 [n] -> { Stmt_body_succ[i0] -> MemRef_A[0] };53; CHECK-NEXT: }54