New vectorizer messages; message format change.

From-SVN: r202088
This commit is contained in:
Xinliang David Li 2013-08-29 21:06:08 +00:00
parent 753c498921
commit 9cc1fb4b07
58 changed files with 154 additions and 69 deletions

View File

@ -1,3 +1,14 @@
2013-08-29 Xinliang David Li <davidxl@google.com>
* loop-unroll.c (report_unroll_peel): Minor message
change.
* tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
Emit alignment peeling message with default -fopt-info.
(vect_loop_versioning): Emit loop version info message.
* tree-vectorizer.c (vectorize_loops): Minor message
change.
(execute_vect_slp): Ditto.
2013-08-29 Eric Botcazou <ebotcazou@adacore.com>
* cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME

View File

@ -225,7 +225,7 @@ report_unroll_peel (struct loop *loop, location_t locus)
&& !loop->lpt_decision.times)
{
dump_printf_loc (report_flags, locus,
"Turned loop into non-loop; it never loops.\n");
"loop turned into non-loop; it never loops.\n");
return;
}
@ -236,13 +236,16 @@ report_unroll_peel (struct loop *loop, location_t locus)
else if (loop->header->count)
niters = expected_loop_iterations (loop);
dump_printf_loc (report_flags, locus,
"%s loop %d times",
(loop->lpt_decision.decision == LPT_PEEL_COMPLETELY
? "Completely unroll"
: (loop->lpt_decision.decision == LPT_PEEL_SIMPLE
? "Peel" : "Unroll")),
loop->lpt_decision.times);
if (loop->lpt_decision.decision == LPT_PEEL_COMPLETELY)
dump_printf_loc (report_flags, locus,
"loop with %d iterations completely unrolled",
loop->lpt_decision.times + 1);
else
dump_printf_loc (report_flags, locus,
"loop %s %d times",
(loop->lpt_decision.decision == LPT_PEEL_SIMPLE
? "peeled" : "unrolled"),
loop->lpt_decision.times);
if (profile_info)
dump_printf (report_flags,
" (header execution count %d",

View File

@ -1,3 +1,57 @@
2013-08-29 Xinliang DavidLi <davidxl@google.com>
* gcc.dg/unroll_3.c: Message change.
* gcc.dg/unroll_4.c: Likewise.
* gcc.dg/tree-ssa/cunroll-1.c: Likewise.
* gcc.dg/tree-ssa/cunroll-2.c: Likewise.
* gcc.dg/tree-ssa/cunroll-3.c: Likewise.
* gcc.dg/tree-ssa/cunroll-4.c: Likewise.
* gcc.dg/tree-ssa/cunroll-5.c: Likewise.
* gcc.dg/tree-ssa/loop-23.c: Likewise.
* gcc.dg/tree-ssa/loop-1.c: Likewise.
* gcc.dg/unroll_1.c: Likewise.
* gcc.dg/vect/bb-slp-31.c: Likewise.
* gcc.dg/vect/bb-slp-14.c: Likewise.
* gcc.dg/vect/bb-slp-8.c: Likewise.
* gcc.dg/vect/bb-slp-23.c: Likewise.
* gcc.dg/vect/bb-slp-15.c: Likewise.
* gcc.dg/vect/bb-slp-9.c: Likewise.
* gcc.dg/vect/bb-slp-24.c: Likewise.
* gcc.dg/vect/bb-slp-16.c: Likewise.
* gcc.dg/vect/bb-slp-25.c: Likewise.
* gcc.dg/vect/bb-slp-17.c: Likewise.
* gcc.dg/vect/bb-slp-26.c: Likewise.
* gcc.dg/vect/bb-slp-18.c: Likewise.
* gcc.dg/vect/no-tree-reassoc-bb-slp-12.c: Likewise.
* gcc.dg/vect/bb-slp-27.c: Likewise.
* gcc.dg/vect/bb-slp-19.c: Likewise.
* gcc.dg/vect/bb-slp-28.c: Likewise.
* gcc.dg/vect/bb-slp-cond-1.c: Likewise.
* gcc.dg/vect/bb-slp-29.c: Likewise.
* gcc.dg/vect/bb-slp-8a.c: Likewise.
* gcc.dg/vect/bb-slp-pattern-2.c: Likewise.
* gcc.dg/vect/bb-slp-1.c: Likewise.
* gcc.dg/vect/bb-slp-8b.c: Likewise.
* gcc.dg/vect/bb-slp-2.c: Likewise.
* gcc.dg/vect/bb-slp-3.c: Likewise.
* gcc.dg/vect/bb-slp-10.c: Likewise.
* gcc.dg/vect/fast-math-bb-slp-call-1.c: Likewise.
* gcc.dg/vect/bb-slp-4.c: Likewise.
* gcc.dg/vect/bb-slp-11.c: Likewise.
* gcc.dg/vect/fast-math-bb-slp-call-2.c: Likewise.
* gcc.dg/vect/bb-slp-5.c: Likewise.
* gcc.dg/vect/bb-slp-20.c: Likewise.
* gcc.dg/vect/bb-slp-6.c: Likewise.
* gcc.dg/vect/bb-slp-21.c: Likewise.
* gcc.dg/vect/bb-slp-30.c: Likewise.
* gcc.dg/vect/bb-slp-13.c: Likewise.
* gcc.dg/vect/bb-slp-7.c: Likewise.
* gcc.dg/vect/bb-slp-22.c: Likewise.
* gcc.dg/unroll_2.c: Likewise.
* g++.dg/vect/slp-pr50413.cc: Likewise.
* g++.dg/vect/slp-pr56812.cc: Likewise.
* g++.dg/vect/slp-pr50819.cc: Likewise.
2013-08-29 Eric Botcazou <ebotcazou@adacore.com>
* gcc.dg/tree-ssa/ipa-cp-1.c: Adjust regexp.

View File

@ -160,6 +160,6 @@ void shift(unsigned char t)
V.bitmap.b96 = t;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 0 "slp" } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 0 "slp" } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -49,5 +49,5 @@ const & v2) {
res = res + s*(v1+v2);
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 2 "slp" } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 2 "slp" } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -17,5 +17,5 @@ void mydata::Set (float x)
data[i] = x;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -8,6 +8,6 @@ test(int c)
a[i]=5;
}
/* Array bounds says the loop will not roll much. */
/* { dg-final { scan-tree-dump "Completely unroll loop 2 times" "cunrolli"} } */
/* { dg-final { scan-tree-dump "loop with 3 iterations completely unrolled" "cunrolli"} } */
/* { dg-final { scan-tree-dump "Last iteration exit edge was proved true." "cunrolli"} } */
/* { dg-final { cleanup-tree-dump "cunrolli" } } */

View File

@ -12,5 +12,5 @@ test(int c)
}
}
/* We are not able to get rid of the final conditional because the loop has two exits. */
/* { dg-final { scan-tree-dump "Completely unroll loop 1 times" "cunroll"} } */
/* { dg-final { scan-tree-dump "loop with 2 iterations completely unrolled" "cunroll"} } */
/* { dg-final { cleanup-tree-dump "cunroll" } } */

View File

@ -11,5 +11,5 @@ test(int c)
}
/* If we start duplicating headers prior curoll, this loop will have 0 iterations. */
/* { dg-final { scan-tree-dump "Completely unroll loop 1 times" "cunrolli"} } */
/* { dg-final { scan-tree-dump "loop with 2 iterations completely unrolled" "cunrolli"} } */
/* { dg-final { cleanup-tree-dump "cunrolli" } } */

View File

@ -16,6 +16,6 @@ test(int c)
/* We should do this as part of cunrolli, but our cost model do not take into account early exit
from the last iteration. */
/* { dg-final { scan-tree-dump "Turned loop into non-loop; it never loops." "ivcanon"} } */
/* { dg-final { scan-tree-dump "loop turned into non-loop; it never loops." "ivcanon"} } */
/* { dg-final { scan-tree-dump "Last iteration exit edge was proved true." "ivcanon"} } */
/* { dg-final { cleanup-tree-dump "ivcanon" } } */

View File

@ -8,7 +8,7 @@ test(int c)
a[i]=5;
}
/* Basic testcase for complette unrolling. */
/* { dg-final { scan-tree-dump "Completely unroll loop 5 times" "cunroll"} } */
/* { dg-final { scan-tree-dump "loop with 6 iterations completely unrolled" "cunroll"} } */
/* { dg-final { scan-tree-dump "Exit condition of peeled iterations was eliminated." "cunroll"} } */
/* { dg-final { scan-tree-dump "Last iteration exit edge was proved true." "cunroll"} } */
/* { dg-final { cleanup-tree-dump "cunroll" } } */

View File

@ -35,7 +35,7 @@ int xxx(void)
/* { dg-final { scan-tree-dump-times "Added canonical iv to loop 1, 4 iterations" 1 "ivcanon"} } */
/* { dg-final { cleanup-tree-dump "ivcanon" } } */
/* { dg-final { scan-tree-dump-times "Completely unroll loop 4 times" 1 "cunroll"} } */
/* { dg-final { scan-tree-dump-times "loop with 5 iterations completely unrolled" 1 "cunroll"} } */
/* { dg-final { cleanup-tree-dump "cunroll" } } */
/* { dg-final { scan-tree-dump-times "foo" 5 "optimized"} } */
/* { dg-final { cleanup-tree-dump "optimized" } } */

View File

@ -24,6 +24,6 @@ int foo(void)
return sum;
}
/* { dg-final { scan-tree-dump-times "Completely unroll loop 3 times" 1 "cunroll" } } */
/* { dg-final { scan-tree-dump-times "loop with 4 iterations completely unrolled" 1 "cunroll" } } */
/* { dg-final { cleanup-tree-dump "cunroll" } } */

View File

@ -28,5 +28,5 @@ int foo2(void)
return 1;
}
/* { dg-final { scan-rtl-dump-times "Turned loop into non-loop; it never loops" 2 "loop2_unroll" } } */
/* { dg-final { scan-rtl-dump-times "loop turned into non-loop; it never loops" 2 "loop2_unroll" } } */
/* { dg-final { cleanup-rtl-dump "loop2_unroll" } } */

View File

@ -28,5 +28,5 @@ int foo2(void)
return 1;
}
/* { dg-final { scan-rtl-dump-times "Turned loop into non-loop; it never loops" 1 "loop2_unroll" } } */
/* { dg-final { scan-rtl-dump-times "loop turned into non-loop; it never loops" 1 "loop2_unroll" } } */
/* { dg-final { cleanup-rtl-dump "loop2_unroll" } } */

View File

@ -28,5 +28,5 @@ int foo2(void)
return 1;
}
/* { dg-final { scan-rtl-dump-times "Turned loop into non-loop; it never loops" 1 "loop2_unroll" } } */
/* { dg-final { scan-rtl-dump-times "loop turned into non-loop; it never loops" 1 "loop2_unroll" } } */
/* { dg-final { cleanup-rtl-dump "loop2_unroll" } } */

View File

@ -28,5 +28,5 @@ int foo2(void)
return 1;
}
/* { dg-final { scan-rtl-dump-times "Turned loop into non-loop; it never loops" 1 "loop2_unroll" } } */
/* { dg-final { scan-rtl-dump-times "loop turned into non-loop; it never loops" 1 "loop2_unroll" } } */
/* { dg-final { cleanup-rtl-dump "loop2_unroll" } } */

View File

@ -56,6 +56,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -50,6 +50,6 @@ int main (void)
}
/* { dg-final { scan-tree-dump-times "unsupported alignment in basic block." 1 "slp" { xfail vect_element_align } } } */
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target vect_element_align } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_element_align } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -48,6 +48,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target vect64 } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect64 } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -46,6 +46,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target vect_int_mult } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_int_mult } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -47,6 +47,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 0 "slp" } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 0 "slp" } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -51,6 +51,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target vect_int_mult } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_int_mult } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -65,6 +65,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -57,6 +57,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target vect_int_mult } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_int_mult } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -46,6 +46,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target vect_int_mult } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_int_mult } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -53,6 +53,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { xfail *-*-* } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { xfail *-*-* } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -53,6 +53,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -63,7 +63,7 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target vect_int_mult } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_int_mult } } } */
/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "slp" { target vect_int_mult } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -63,7 +63,7 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" } } */
/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "slp" { target { ! {vect_int_mult } } } } } */
/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "slp" { target vect_int_mult } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -63,7 +63,7 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target { ! {vect_int_mult } } } } } */
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 2 "slp" { target vect_int_mult } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target { ! {vect_int_mult } } } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 2 "slp" { target vect_int_mult } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -51,6 +51,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target vect_int_mult } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_int_mult } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -54,6 +54,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target vect_element_align } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_element_align } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -54,6 +54,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target vect_element_align } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_element_align } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -55,6 +55,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target vect64 } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect64 } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -44,6 +44,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target { vect_int_mult && { vect_unpack && vect_pack_trunc } } } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target { vect_int_mult && { vect_unpack && vect_pack_trunc } } } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -66,6 +66,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target { vect_int_mult && { vect_pack_trunc && vect_unpack } } } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target { vect_int_mult && { vect_pack_trunc && vect_unpack } } } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -54,6 +54,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target { vect_int_mult && vect_element_align } } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target { vect_int_mult && vect_element_align } } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -42,6 +42,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -43,5 +43,5 @@ test1(void)
int main() { test1(); return a[21]; }
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -9,4 +9,4 @@ void f(){
a[1]=1+2*a[1]*a[1];
}
/* { dg-final { scan-tree-dump "Vectorized basic-block" "slp" } } */
/* { dg-final { scan-tree-dump "basic block vectorized" "slp" } } */

View File

@ -38,6 +38,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 0 "slp" } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 0 "slp" } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -47,6 +47,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -45,6 +45,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target vect_int_mult } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_int_mult } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -46,6 +46,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 0 "slp" } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 0 "slp" } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -48,6 +48,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target vect_hw_misalign } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_hw_misalign } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -47,6 +47,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 0 "slp" } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 0 "slp" } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -49,6 +49,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target vect_hw_misalign } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_hw_misalign } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -46,6 +46,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { xfail vect_no_align } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { xfail vect_no_align } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -41,6 +41,6 @@ int main ()
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target vect_element_align } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_element_align } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -48,5 +48,5 @@ int main ()
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target { vect_element_align && vect_pack_trunc } } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target { vect_element_align && vect_pack_trunc } } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -45,5 +45,5 @@ main ()
return main1 ();
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target { vect_call_copysignf && vect_call_sqrtf } } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target { vect_call_copysignf && vect_call_sqrtf } } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -63,5 +63,5 @@ main ()
return main1 ();
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 2 "slp" { target vect_call_lrint } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 2 "slp" { target vect_call_lrint } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -47,6 +47,6 @@ int main (void)
return 0;
}
/* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target vect_int_mult } } } */
/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_int_mult } } } */
/* { dg-final { cleanup-tree-dump "slp" } } */

View File

@ -870,11 +870,12 @@ try_unroll_loop_completely (struct loop *loop,
{
if (!n_unroll)
dump_printf_loc (MSG_OPTIMIZED_LOCATIONS | TDF_DETAILS, locus,
"Turned loop into non-loop; it never loops.\n");
"loop turned into non-loop; it never loops\n");
else
{
dump_printf_loc (MSG_OPTIMIZED_LOCATIONS | TDF_DETAILS, locus,
"Completely unroll loop %d times", (int)n_unroll);
"loop with %d iterations completely unrolled",
(int) (n_unroll + 1));
if (profile_info)
dump_printf (MSG_OPTIMIZED_LOCATIONS | TDF_DETAILS,
" (header execution count %d)",

View File

@ -37,7 +37,6 @@ along with GCC; see the file COPYING3. If not see
#include "tree-scalar-evolution.h"
#include "tree-vectorizer.h"
#include "diagnostic-core.h"
/* Need to include rtl.h, expr.h, etc. for optabs. */
#include "expr.h"
#include "optabs.h"

View File

@ -2021,8 +2021,9 @@ vect_do_peeling_for_alignment (loop_vec_info loop_vinfo,
int bound = 0;
if (dump_enabled_p ())
dump_printf_loc (MSG_NOTE, vect_location,
"=== vect_do_peeling_for_alignment ===");
dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location,
"loop peeled for vectorization to enhance"
" alignment\n");
initialize_original_copy_tables ();
@ -2404,6 +2405,8 @@ vect_loop_versioning (loop_vec_info loop_vinfo,
unsigned prob = 4 * REG_BR_PROB_BASE / 5;
gimple_seq gimplify_stmt_list = NULL;
tree scalar_loop_iters = LOOP_VINFO_NITERS (loop_vinfo);
bool version_align = LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT (loop_vinfo);
bool version_alias = LOOP_REQUIRES_VERSIONING_FOR_ALIAS (loop_vinfo);
if (check_profitability)
{
@ -2413,11 +2416,11 @@ vect_loop_versioning (loop_vec_info loop_vinfo,
is_gimple_condexpr, NULL_TREE);
}
if (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT (loop_vinfo))
if (version_align)
vect_create_cond_for_align_checks (loop_vinfo, &cond_expr,
&cond_expr_stmt_list);
if (LOOP_REQUIRES_VERSIONING_FOR_ALIAS (loop_vinfo))
if (version_alias)
vect_create_cond_for_alias_checks (loop_vinfo, &cond_expr);
cond_expr = force_gimple_operand_1 (cond_expr, &gimplify_stmt_list,
@ -2427,6 +2430,20 @@ vect_loop_versioning (loop_vec_info loop_vinfo,
initialize_original_copy_tables ();
loop_version (loop, cond_expr, &condition_bb,
prob, prob, REG_BR_PROB_BASE - prob, true);
if (LOCATION_LOCUS (vect_location) != UNKNOWN_LOC
&& dump_enabled_p ())
{
if (version_alias)
dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location,
"loop versioned for vectorization because of "
"possible aliasing\n");
if (version_align)
dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location,
"loop versioned for vectorization to enhance "
"alignment\n");
}
free_original_copy_tables();
/* Loop versioning violates an assumption we try to maintain during

View File

@ -334,7 +334,7 @@ vectorize_loops (void)
if (LOCATION_LOCUS (vect_location) != UNKNOWN_LOC
&& dump_enabled_p ())
dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location,
"Vectorized loop\n");
"loop vectorized\n");
vect_transform_loop (loop_vinfo);
num_vectorized_loops++;
/* Now that the loop has been vectorized, allow it to be unrolled
@ -443,7 +443,7 @@ execute_vect_slp (void)
vect_slp_transform_bb (bb);
if (dump_enabled_p ())
dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location,
"Vectorized basic-block\n");
"basic block vectorized\n");
}
}