On 6/9/20 3:42 PM, Richard Biener wrote:
On Mon, Jun 8, 2020 at 1:04 PM Martin Liška <mli...@suse.cz> wrote:

Hello.

Thank you for the approval. There's the patch that defines 4 new 
DEF_INTERNAL_OPTAB_FN.

Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
It also builds on ppc64le-linux-gnu.

Ready to be installed?

The ChangeLog refers to DEF_INTERNAL_OPTAB_CAN_FAIL which is no longer there.


Sure.


Can you put the isel pass to a separate file please?

Yes.


So this is a first step towards sanitizing VEC_COND_EXPR.  There were followups
mentioned, namely a) enforcing that VEC_COND_EXPR constraint everywhere,
b) isel vector comparisons at the same time since expansion has a
vec_cond fallback

I'm planning to work on the follow up.


There's

+         /* ???  If we do not cleanup EH then we will ICE in
+            verification.  But in reality we have created wrong-code
+            as we did not properly transition EH info and edges to
+            the piecewise computations.  */
+         if (maybe_clean_eh_stmt (gsi_stmt (gsi))
+             && gimple_purge_dead_eh_edges (bb))
+           cfg_changed = true;

Hm, I've tried to comment the code in both ISEL and expansion and I can't find 
a test-case
that would trigger a verification error (in vect.exp and i386.exp). Can you 
come up with
something that will trigger the code?


which of course is bad.  It's the comparison that can throw and I guess current
RTL expansion manages to cope by find_many_sub_bbs and friends.  But we
need to get this correct on GIMPLE here.  Note I find it odd this only triggers
during ISEL - it should trigger during the lowering step which splits
the comparison
from the VEC_COND_EXPR.  An appropriate fix at lowering time would be to
insert the VEC_COND_EXPR w/o the condition on the normal outgoing edge
and keep the comparison in place of the original VEC_COND_EXPR,
moving EH info from the VEC_COND_EXPR to the comparison.

Ah ok, so it's about correction of EH..

Martin


I think we need to fix that before merging.

Thanks,
Richard.

Thanks,
Martin

Reply via email to