On Fri, Mar 15, 2019 at 03:36:15AM +0800, H.J. Lu wrote:
> Like this?
Yes.
> gcc/
>
> PR target/89650
> * config/i386/i386.c (remove_partial_avx_dependency): Handle
> REG_EH_REGION note.
>
> gcc/testsuite/
>
> PR target/89650
> * g++.target/i386/pr89650.C: New tes
0bb8c37ce83d7886c8deb7c2ba9eb5ddf4d02dc0 Mon Sep 17 00:00:00 2001
From: "H.J. Lu"
Date: Tue, 12 Mar 2019 08:55:24 +0800
Subject: [PATCH] i386: Handle REG_EH_REGION note
When we split:
(insn 18 17 76 2 (set (reg:SF 88 [ _19 ])
(float:SF (mem/c:SI (symbol_ref:DI ("d") [flag
On Thu, Mar 14, 2019 at 09:08:17PM +0800, H.J. Lu wrote:
> --- a/gcc/config/i386/i386.c
> +++ b/gcc/config/i386/i386.c
> @@ -2819,6 +2819,8 @@ remove_partial_avx_dependency (void)
>rtx set;
>rtx v4sf_const0 = NULL_RTX;
>
> + auto_vec splitted_insn;
Perhaps throwing_insns or flow_transfe
ea. I will work on it.
>
Here it is. OK for trunk?
Thanks.
--
H.J.
From 64ac61ce7095c49406ea34b05f1c22fbb98ca3f7 Mon Sep 17 00:00:00 2001
From: "H.J. Lu"
Date: Tue, 12 Mar 2019 08:55:24 +0800
Subject: [PATCH] i386: Handle REG_EH_REGION note
When we split:
(insn 18 17
On Thu, Mar 14, 2019 at 4:34 PM Jakub Jelinek wrote:
>
> On Thu, Mar 14, 2019 at 11:30:21AM +0800, H.J. Lu wrote:
> > We need to split the basic block if we create new insns, which may
> > throw exceptions, in the middle of the basic blocks.
> >
> > Tested on AVX2 and AVX512 machines with and with
On Thu, Mar 14, 2019 at 11:30:21AM +0800, H.J. Lu wrote:
> We need to split the basic block if we create new insns, which may
> throw exceptions, in the middle of the basic blocks.
>
> Tested on AVX2 and AVX512 machines with and without
>
> --with-arch=native
>
> OK for trunk?
That looks much b
notes, also cleanup the cfg. */
> + cleanup_cfg (0);
> +}
> +
>timevar_pop (TV_MACH_DEP);
>return 0;
> }
>
> but that still ICEs.
>
> Jakub
We need to split the basic block if we create new insns, which may
throw exceptions, in the middle of the basic blocks.
Tested
On Tue, Mar 12, 2019 at 09:36:32AM +0800, H.J. Lu wrote:
> PR target/89650
> * config/i386/i386.c (remove_partial_avx_dependency): Handle
> REG_EH_REGION note.
>
> gcc/testsuite/
>
> PR target/89650
> * g++.target/i386/pr89650.C: New test.
> ---
> gcc/config/i386/i3
When we split:
(insn 18 17 76 2 (set (reg:SF 88 [ _19 ])
(float:SF (mem/c:SI (symbol_ref:DI ("d") [flags 0x2] ) [1 d+0 S4 A32]))) "x.ii":4:20 170 {*floatsisf2}
(expr_list:REG_EH_REGION (const_int 2 [0x2])
(nil)))
to
(insn 94 17 18 2 (set (reg:V4SF 115)
(vec_merge:V4