Re: dom1 prevents vectorization via partial loop peeling?

2015-04-29 Thread Jeff Law
On 04/28/2015 08:36 AM, Alan Lawrence wrote: Ah, yes, I'd not realized this was connected to the jump-threading issue, but I see that now. As you say, the best heuristics are unclear, and I'm not keen on trying *too hard* to predict what later phases will/won't do or do/don't want...maybe if the

Re: dom1 prevents vectorization via partial loop peeling?

2015-04-29 Thread Alan Lawrence
Richard Biener wrote: Well. In this case we hit /* If one of the loop header's edge is an exit edge then do not apply if-conversion. */ FOR_EACH_EDGE (e, ei, loop->header->succs) if (loop_exit_edge_p (loop, e)) return false; which is simply because even after if-conversion

Re: dom1 prevents vectorization via partial loop peeling?

2015-04-28 Thread Alan Lawrence
Ajit Kumar Agarwal wrote: -Original Message- From: gcc-ow...@gcc.gnu.org [mailto:gcc-ow...@gcc.gnu.org] On Behalf Of Richard Biener Sent: Tuesday, April 28, 2015 4:12 PM To: Jeff Law Cc: Alan Lawrence; gcc@gcc.gnu.org Subject: Re: dom1 prevents vectorization via partial loop peeling

RE: dom1 prevents vectorization via partial loop peeling?

2015-04-28 Thread Ajit Kumar Agarwal
-Original Message- From: gcc-ow...@gcc.gnu.org [mailto:gcc-ow...@gcc.gnu.org] On Behalf Of Richard Biener Sent: Tuesday, April 28, 2015 4:12 PM To: Jeff Law Cc: Alan Lawrence; gcc@gcc.gnu.org Subject: Re: dom1 prevents vectorization via partial loop peeling? On Mon, Apr 27, 2015 at 7

Re: dom1 prevents vectorization via partial loop peeling?

2015-04-28 Thread Richard Biener
On Mon, Apr 27, 2015 at 7:06 PM, Jeff Law wrote: > On 04/27/2015 10:12 AM, Alan Lawrence wrote: >> >> >> After copyrename3, immediately prior to dom1, the loop body looks like: >> >>: >> >>: >># i_11 = PHI >>_5 = a[i_11]; >>_6 = i_11 & _5; >>if (_6 != 0) >> goto ; >>

Re: dom1 prevents vectorization via partial loop peeling?

2015-04-27 Thread Jeff Law
On 04/27/2015 10:12 AM, Alan Lawrence wrote: After copyrename3, immediately prior to dom1, the loop body looks like: : : # i_11 = PHI _5 = a[i_11]; _6 = i_11 & _5; if (_6 != 0) goto ; else goto ; : : # m_2 = PHI <5(4), 4(3)> _7 = m_2 * _5; b[i_1