public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
@ 2020-03-15 11:58 ` jakub at gcc dot gnu.org
  2020-04-09  9:25 ` rguenth at gcc dot gnu.org
                   ` (39 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jakub at gcc dot gnu.org @ 2020-03-15 11:58 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #15 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
*** Bug 94178 has been marked as a duplicate of this bug. ***

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
  2020-03-15 11:58 ` [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce jakub at gcc dot gnu.org
@ 2020-04-09  9:25 ` rguenth at gcc dot gnu.org
  2020-04-17 11:50 ` jamborm at gcc dot gnu.org
                   ` (38 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: rguenth at gcc dot gnu.org @ 2020-04-09  9:25 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hubicka at gcc dot gnu.org,
                   |                            |rguenth at gcc dot gnu.org

--- Comment #16 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Martin Jambor from comment #14)
> Another option, which does not create an inter-pass dependency and
> does not clutter tree-inline any more, but which pessimizes IPA-SRA
> (put perhaps just alittle bit?), is making sure that the statements
> which might be left behind are harmless:
> 
> diff --git a/gcc/ipa-sra.c b/gcc/ipa-sra.c
> index 31de527d111..df54b98759c 100644
> --- a/gcc/ipa-sra.c
> +++ b/gcc/ipa-sra.c
> @@ -859,7 +859,8 @@ isra_track_scalar_value_uses (cgraph_node *node, tree
> name, int parm_num,
>             }
>           res += all_uses;
>         }
> -      else if ((is_gimple_assign (stmt) && !gimple_has_volatile_ops (stmt))
> +      else if ((is_gimple_assign (stmt) && !gimple_has_volatile_ops (stmt)
> +               && !gimple_could_trap_p (stmt))
>                || gimple_code (stmt) == GIMPLE_PHI)
>         {
>           tree lhs;
> 
> I'll see what a tree-inline.c solution would look like and then decide
> which of these I'll propose.

Any progress here?  I think using the above would be best.  Another
option would be, during inlining, to make sure that removed parameters
get initialized (that also silences the warning), just the constant to use
isn't 100% obvious.  I'd settle for a 1 which is safe for all cases I
can think of besides array indexing or pointer adjustment and for
signed operations where anything but 0 might cause some undefined overflow.
Note the overflow thing also means that the gimple_could_trap_p check
is not sufficient.

But in the end I always wonder whether those "premature" optimizations
during IPA analysis are worth it and why we not simply consider all uses
as "uses"?

I also think that the user should not be able to disable all of DCE
(or enable IPA SRA ontop of -O0).  But of course that only makes the
attack surface smaller - I can very well imagine "bad" circumstances
with us arriving at a similarly problematic IL before IPA SRA
analysis with plain -O2.

Oh, instead of initializing dropped parameters the inliner could also
make sure to map it to a NaT, dropping stmts that use that and turn
their defs into NaTs as well.  Of course then IPA SRAs "DCE" decision
becomes a correctness thing.

That said, a proper solution _will_ need to get rid of the dead stmts
at IPA transform time.

Not sure if we really need an "improper" solution right now (given
the testcase needs to disable DCE).  The situation here is similar
to that with inline predicates and __builtin_constant_p.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
  2020-03-15 11:58 ` [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce jakub at gcc dot gnu.org
  2020-04-09  9:25 ` rguenth at gcc dot gnu.org
@ 2020-04-17 11:50 ` jamborm at gcc dot gnu.org
  2020-04-17 12:06 ` jakub at gcc dot gnu.org
                   ` (37 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jamborm at gcc dot gnu.org @ 2020-04-17 11:50 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #17 from Martin Jambor <jamborm at gcc dot gnu.org> ---
Created attachment 48302
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48302&action=edit
Untested fix

I'm playing with this - only very mildly tested - fix.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (2 preceding siblings ...)
  2020-04-17 11:50 ` jamborm at gcc dot gnu.org
@ 2020-04-17 12:06 ` jakub at gcc dot gnu.org
  2020-04-17 12:08 ` rguenth at gcc dot gnu.org
                   ` (36 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jakub at gcc dot gnu.org @ 2020-04-17 12:06 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #18 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Comment on attachment 48302
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48302
Untested fix

+           /* IPA-SRA does not analyze other types of statements.  */
+           gcc_unreachable ();
Won't this ICE on any is_gimple_debug stmt?  Those should be just ignored and
normal SSA_NAME handling should DTRT for those.
As for PHIs, can you just gsi_remove them?

Plus, I think in isra_track_scalar_value_uses for non-is_gimple_{debug,call} we
should punt if !flag_tree_dce, i.e. when user asked not to perform dead code
elimination.  Though, guess that hunk should be added only after this is tested
(and perhaps the testcase or its copy should use -fdisable-tree-dce or whatever
other way to avoid doing DCE even when flag_tree_dce is non-zero.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (3 preceding siblings ...)
  2020-04-17 12:06 ` jakub at gcc dot gnu.org
@ 2020-04-17 12:08 ` rguenth at gcc dot gnu.org
  2020-04-17 12:09 ` jakub at gcc dot gnu.org
                   ` (35 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: rguenth at gcc dot gnu.org @ 2020-04-17 12:08 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #19 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Martin Jambor from comment #17)
> Created attachment 48302 [details]
> Untested fix
> 
> I'm playing with this - only very mildly tested - fix.

Ugh.

I was thinking of altering the parameter setup for cloning/inlining
so that it maps a removed parameter [SSA_NAME] not to a new
uninitialized variable/default-def but to error_mark_node and then
either scanning the function for those, propagating & DCEing on the
fly, or, during cloning/inlining seed a worklist whenever we map
something to error_mark_node.

The advantage is that we're leaving the IL in a clearly invalid state
in case one of those slips through and that the call case you handle
should handle itself by followup IPA transforms.

Another option is to track a set of removed SSA names in the original
and whenever we encounter an original stmt using that during the copying
operation elide the copy or transform it.  IIRC there's already a stmt
transform hook for IPA that could eventually be used for this approach\
(the modify_gimple_stmt hook), but it alreayd gets the copied stmts so
all defs have been cloned and the safety the error_mark_node approach
would bring is lost.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (4 preceding siblings ...)
  2020-04-17 12:08 ` rguenth at gcc dot gnu.org
@ 2020-04-17 12:09 ` jakub at gcc dot gnu.org
  2020-04-17 12:16 ` rguenther at suse dot de
                   ` (34 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jakub at gcc dot gnu.org @ 2020-04-17 12:09 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #20 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Looking at tree-ssa-dce.c, it uses remove_phi_node rather than gsi_remove for
PHIs.  And for non-PHIs, it calls release_defs after gsi_remove.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (5 preceding siblings ...)
  2020-04-17 12:09 ` jakub at gcc dot gnu.org
@ 2020-04-17 12:16 ` rguenther at suse dot de
  2020-04-17 13:41 ` jamborm at gcc dot gnu.org
                   ` (33 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: rguenther at suse dot de @ 2020-04-17 12:16 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #21 from rguenther at suse dot de <rguenther at suse dot de> ---
On Fri, 17 Apr 2020, jakub at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385
> 
> --- Comment #20 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
> Looking at tree-ssa-dce.c, it uses remove_phi_node rather than gsi_remove for
> PHIs.  And for non-PHIs, it calls release_defs after gsi_remove.

Btw, I'd much prefer to not first copy the stmts and then remove them.
Instead the DCE "analysis" can be done on the original IL and stmts
be "marked" to be elided during copying.  That saves generating
SSA names and gimple stmts rather than needing to remove them after the
fact.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (6 preceding siblings ...)
  2020-04-17 12:16 ` rguenther at suse dot de
@ 2020-04-17 13:41 ` jamborm at gcc dot gnu.org
  2020-04-17 13:53 ` jakub at gcc dot gnu.org
                   ` (32 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jamborm at gcc dot gnu.org @ 2020-04-17 13:41 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #22 from Martin Jambor <jamborm at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #18)
> Comment on attachment 48302 [details]
> Untested fix
> 
> +	    /* IPA-SRA does not analyze other types of statements.  */
> +	    gcc_unreachable ();
> Won't this ICE on any is_gimple_debug stmt?  Those should be just ignored
> and normal SSA_NAME handling should DTRT for those.

Yeah, it most probably will, I wrote it was only very mildly tested
(i.e. I only ran IPA testcases on it) - I wanted to post what I had
before I had to stop working on this for a few hours.

> As for PHIs, can you just gsi_remove them?
> Looking at tree-ssa-dce.c, it uses remove_phi_node rather than
> gsi_remove for PHIs.  And for non-PHIs, it calls release_defs after
> gsi_remove.

You are again most probably right, I keep forgetting about this.

> 
> Plus, I think in isra_track_scalar_value_uses for non-is_gimple_{debug,call}
> we should punt if !flag_tree_dce, i.e. when user asked not to perform dead
> code elimination.  Though, guess that hunk should be added only after this
> is tested (and perhaps the testcase or its copy should use
> -fdisable-tree-dce or whatever other way to avoid doing DCE even when
> flag_tree_dce is non-zero.

OK, that makes sense.  I'd slightly prefer the patch in comment #11
for this so that direct passes of a parameter to another function
without any modification is still not considered as doing DCE - but I
also do not really care too much.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (7 preceding siblings ...)
  2020-04-17 13:41 ` jamborm at gcc dot gnu.org
@ 2020-04-17 13:53 ` jakub at gcc dot gnu.org
  2020-04-17 14:00 ` rguenther at suse dot de
                   ` (31 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jakub at gcc dot gnu.org @ 2020-04-17 13:53 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #23 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Instead of #c11 I meant:
-       else if ((is_gimple_assign (stmt) && !gimple_has_volatile_ops (stmt))
-                || gimple_code (stmt) == GIMPLE_PHI)
+       else if (flag_tree_dce
+                && ((is_gimple_assign (stmt) && !gimple_has_volatile_ops
(stmt))
+                    || gimple_code (stmt) == GIMPLE_PHI))
because the res = -1 handling is in the else after this already.

For what Richi is proposing, I guess one needs to run the analysis somewhere
(early tree_function_versioning or elsewhere?, note in a hash_set stmts that
shouldn't be copied, add pointer to that hash_set to copy_body_data and perhaps
in remap_gimple_stmt if the hash_set pointer is non-NULL, check early if stmt
is in it and in that case return NULL (like we already return NULL for debug
stmts if we want to drop them).
Most likely the lhs of such to be removed statements need to be also added to
id.killed_new_ssa_names (and verify if it works properly).

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (8 preceding siblings ...)
  2020-04-17 13:53 ` jakub at gcc dot gnu.org
@ 2020-04-17 14:00 ` rguenther at suse dot de
  2020-04-17 14:00 ` jamborm at gcc dot gnu.org
                   ` (30 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: rguenther at suse dot de @ 2020-04-17 14:00 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #24 from rguenther at suse dot de <rguenther at suse dot de> ---
On April 17, 2020 3:53:07 PM GMT+02:00, "jakub at gcc dot gnu.org"
<gcc-bugzilla@gcc.gnu.org> wrote:
>https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385
>
>--- Comment #23 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
>Instead of #c11 I meant:
>-       else if ((is_gimple_assign (stmt) && !gimple_has_volatile_ops
>(stmt))
>-                || gimple_code (stmt) == GIMPLE_PHI)
>+       else if (flag_tree_dce
>+                && ((is_gimple_assign (stmt) &&
>!gimple_has_volatile_ops
>(stmt))
>+                    || gimple_code (stmt) == GIMPLE_PHI))
>because the res = -1 handling is in the else after this already.
>
>For what Richi is proposing, I guess one needs to run the analysis
>somewhere
>(early tree_function_versioning or elsewhere?, note in a hash_set stmts
>that
>shouldn't be copied, add pointer to that hash_set to copy_body_data and
>perhaps
>in remap_gimple_stmt if the hash_set pointer is non-NULL, check early
>if stmt
>is in it and in that case return NULL (like we already return NULL for
>debug
>stmts if we want to drop them).
>Most likely the lhs of such to be removed statements need to be also
>added to
>id.killed_new_ssa_names (and verify if it works properly).

I'd definitely make sure to map supposed to be DCEd defs to error_mark_node. 

For the marking one could add id.plf_to_dce and clear/set the plf on the stmts.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (9 preceding siblings ...)
  2020-04-17 14:00 ` rguenther at suse dot de
@ 2020-04-17 14:00 ` jamborm at gcc dot gnu.org
  2020-04-17 14:11 ` jakub at gcc dot gnu.org
                   ` (29 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jamborm at gcc dot gnu.org @ 2020-04-17 14:00 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #25 from Martin Jambor <jamborm at gcc dot gnu.org> ---
(In reply to rguenther@suse.de from comment #21)
> Btw, I'd much prefer to not first copy the stmts and then remove them.
> Instead the DCE "analysis" can be done on the original IL and stmts
> be "marked" to be elided during copying.  That saves generating
> SSA names and gimple stmts rather than needing to remove them after the
> fact.

It is of course easy to change the patch to do the analysis on the
original and just create a hash_set of statements/SSA_NAMES to not
copy.  I'll do that.

As far as remapping the removed values to ERROR_MARK, I'm not sure.
We'd need to remap some SSA_NAMES of the same DECL differently than
other names (e.g. default-definition of the removed PARM_DECL would
get remapped to ERROR_MARK but not other SSA_NAMES and similarly for
other SSA_NAMES derived from those default-defs) ...and ATM I do not
know to what extent that is a problem.  But I can try.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (10 preceding siblings ...)
  2020-04-17 14:00 ` jamborm at gcc dot gnu.org
@ 2020-04-17 14:11 ` jakub at gcc dot gnu.org
  2020-04-17 14:23 ` jakub at gcc dot gnu.org
                   ` (28 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jakub at gcc dot gnu.org @ 2020-04-17 14:11 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #26 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
For debug stmts, it would be best if we could use those
             DEBUG D#Y s=> parm
             DEBUG var => D#Y
added in if (param_body_adjs && MAY_HAVE_DEBUG_BIND_STMTS).
Though, if we remove already during the copy_bb by not actually creating the
stmt, I'm afraid that will mean the debug info is lost (debug stmts will be
reset), unless we for the lhs of to be dced stmts manually create debug
temporaries and debug stmts when we remap_gimple_stmt those stmts (for
SSA_NAMEs that are directly (or indirectly!) used in debug stmts).
If we do what Martin was proposing instead, i.e. copy the stmts and then DCE
them afterwards, it might work properly (perhaps only if we DCE them in the
right order).

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (11 preceding siblings ...)
  2020-04-17 14:11 ` jakub at gcc dot gnu.org
@ 2020-04-17 14:23 ` jakub at gcc dot gnu.org
  2020-04-20  8:14 ` rguenther at suse dot de
                   ` (27 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jakub at gcc dot gnu.org @ 2020-04-17 14:23 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #27 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Now, perhaps the analysis code could also detect which lhs are directly or
indirectly needed by debug stmts and when doing this return NULL in
remap_gimple_stmt, we could do something like (much simplified)
insert_debug_temp_for_var_def in there.  Though unsure if we must always handle
first the SSA_NAME definitions before uses, if not, then we'd need to figure
out the SSA_NAME to DEBUG_EXPR_DECL mapping early and then just let
remap_gimple_stmt add the debug stmt for it.
Perhaps ignore debug stmts for now as long as it doesn't ICE on them and I'll
try to do something for those?

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (12 preceding siblings ...)
  2020-04-17 14:23 ` jakub at gcc dot gnu.org
@ 2020-04-20  8:14 ` rguenther at suse dot de
  2020-04-20  9:06 ` jakub at gcc dot gnu.org
                   ` (26 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: rguenther at suse dot de @ 2020-04-20  8:14 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #28 from rguenther at suse dot de <rguenther at suse dot de> ---
On Fri, 17 Apr 2020, jakub at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385
> 
> --- Comment #26 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
> For debug stmts, it would be best if we could use those
>              DEBUG D#Y s=> parm
>              DEBUG var => D#Y
> added in if (param_body_adjs && MAY_HAVE_DEBUG_BIND_STMTS).
> Though, if we remove already during the copy_bb by not actually creating the
> stmt, I'm afraid that will mean the debug info is lost (debug stmts will be
> reset), unless we for the lhs of to be dced stmts manually create debug
> temporaries and debug stmts when we remap_gimple_stmt those stmts (for
> SSA_NAMEs that are directly (or indirectly!) used in debug stmts).
> If we do what Martin was proposing instead, i.e. copy the stmts and then DCE
> them afterwards, it might work properly (perhaps only if we DCE them in the
> right order).

It's true that copying everything and then DCEing is easier for debug
stmt generation.  I didn't consider this.  That also argues for not
remapping anything to error_mark_node.  Of course this leaves us with
no automagic verification if we really DCEd everything required
(esp. his handling of call arguments looks expensive and odd to me).

I'm also not sure how the machinery is helping the __builtin_constant_p
inline predication issue.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (13 preceding siblings ...)
  2020-04-20  8:14 ` rguenther at suse dot de
@ 2020-04-20  9:06 ` jakub at gcc dot gnu.org
  2020-04-20 21:02 ` jamborm at gcc dot gnu.org
                   ` (25 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jakub at gcc dot gnu.org @ 2020-04-20  9:06 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #29 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to rguenther@suse.de from comment #28)
> On Fri, 17 Apr 2020, jakub at gcc dot gnu.org wrote:
> 
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385
> > 
> > --- Comment #26 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
> > For debug stmts, it would be best if we could use those
> >              DEBUG D#Y s=> parm
> >              DEBUG var => D#Y
> > added in if (param_body_adjs && MAY_HAVE_DEBUG_BIND_STMTS).
> > Though, if we remove already during the copy_bb by not actually creating the
> > stmt, I'm afraid that will mean the debug info is lost (debug stmts will be
> > reset), unless we for the lhs of to be dced stmts manually create debug
> > temporaries and debug stmts when we remap_gimple_stmt those stmts (for
> > SSA_NAMEs that are directly (or indirectly!) used in debug stmts).
> > If we do what Martin was proposing instead, i.e. copy the stmts and then DCE
> > them afterwards, it might work properly (perhaps only if we DCE them in the
> > right order).
> 
> It's true that copying everything and then DCEing is easier for debug
> stmt generation.  I didn't consider this.  That also argues for not
> remapping anything to error_mark_node.  Of course this leaves us with
> no automagic verification if we really DCEd everything required
> (esp. his handling of call arguments looks expensive and odd to me).

We could remap those to error_mark_node for -g0 and for -g to the
DEBUG_EXPR_DECLs we'd create and then just during verification make sure we
diagnose DEBUG_EXPR_DECLs in non-debug stmts (and error_mark_node).
Though, I think even right now the debug side of things even without the DCE is
not perfect, we do create a bind to cover the optimized out parameters at the
start of the function, but don't do this remapping of the SSA_NAME to that
DEBUG_EXPR_DECL, which means  that e.g. debug stmts that used to use that
SSA_NAME in some expressions are reset.
So, I think if Martin comes up with something that just doesn't handle the
debug stmts for GCC10, I can try to improve the debug side later.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (14 preceding siblings ...)
  2020-04-20  9:06 ` jakub at gcc dot gnu.org
@ 2020-04-20 21:02 ` jamborm at gcc dot gnu.org
  2020-04-21 10:34 ` rguenth at gcc dot gnu.org
                   ` (24 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jamborm at gcc dot gnu.org @ 2020-04-20 21:02 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #30 from Martin Jambor <jamborm at gcc dot gnu.org> ---
Created attachment 48320
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48320&action=edit
Todays WIP patch

This is my todays (still very much) WIP patch.

- It marks statements which should not be copied before copying them
  and then skipping them.
- It does map SSA_NAMEs which should not survive to error_mark_node.
- Processing of calls is however still necessary, we cannot leave
  error_mark_nodes in the IL (until call redirection deals with it
  based on callee info).

But:

- It ICEs on gcc.dg/torture/pr48063.c.  I understand the problem,
  IPA-CP attempts to replace a floating-point parameter with an
  integer constant and fails but this fools the new DCE thingy into
  thinking some analysis declared the parameter unused even though it
  is used.  I'll have to make ipa_param_body_adjustments aware of
  tree_map.  (The original idea was to make it part of tree_map but
  for some reason I gave up on that.)

- There are three libgomp C++ ICEs that I know about which I have not
  even looked at.  I have not attempted any bootstrap yet.  I have not
  yet tested anything other than C/C++/Fortran.

- The new hash maps, or at least the one for statements, might be
  better placed in copy_body_data, the current place is just more
  convenient for the moment.  I do not care too much.

- Information currently stored in m_dead_ssas might be obtainable from
  decl_map in copy_body_data.

- I have not thought about debug statements yet and just ignored them
  for now.  I do want to handle them after other things work.

Any feedback welcome.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (15 preceding siblings ...)
  2020-04-20 21:02 ` jamborm at gcc dot gnu.org
@ 2020-04-21 10:34 ` rguenth at gcc dot gnu.org
  2020-04-21 13:00 ` jakub at gcc dot gnu.org
                   ` (23 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: rguenth at gcc dot gnu.org @ 2020-04-21 10:34 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P1                          |P2

--- Comment #31 from Richard Biener <rguenth at gcc dot gnu.org> ---
Let's go for a GCC 11 fix and then eventually backport.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (16 preceding siblings ...)
  2020-04-21 10:34 ` rguenth at gcc dot gnu.org
@ 2020-04-21 13:00 ` jakub at gcc dot gnu.org
  2020-05-04 12:03 ` [Bug ipa/93385] [10/11 " cvs-commit at gcc dot gnu.org
                   ` (22 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jakub at gcc dot gnu.org @ 2020-04-21 13:00 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #32 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
For debug stmts when DCE isn't involved, we already seem to do the right thing,
consider -O2 -g:
__attribute__((noinline)) static void
foo (int a)
{
  int b = 2 * a;
  int c = 3 * a;
  a = a + 4;
  asm volatile ("" : : : "memory");
}

void
bar (void)
{
  foo (1);
  foo (7);
  foo (16);
}

The clone materializes into:
  <bb 3> [local count: 1073741824]:
  # DEBUG D#5 s=> a
  # DEBUG a => D#5

  <bb 2> [local count: 1073741824]:
  # DEBUG D#1 s=> a
  # DEBUG BEGIN_STMT
  # DEBUG b => D#1 * 2
  # DEBUG BEGIN_STMT
  # DEBUG c => D#1 * 3
  # DEBUG BEGIN_STMT
  # DEBUG a => D#1 + 4
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("" :  :  : "memory");
  return;
I thought only the first two debug stmts would appear, would need to look up
where the a_1(D) is replaced with the D#1 copy and where the corresponding
debug source bind is created.
Bet we want similar testcase also for when this DCE is used, and no, debug
stmts shouldn't be marked as something that should be thrown away, but instead
might be reset if we can't do anything better with them.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10/11 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (17 preceding siblings ...)
  2020-04-21 13:00 ` jakub at gcc dot gnu.org
@ 2020-05-04 12:03 ` cvs-commit at gcc dot gnu.org
  2020-05-07 11:56 ` jakub at gcc dot gnu.org
                   ` (21 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-05-04 12:03 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #33 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Martin Jambor <jamborm@gcc.gnu.org>:

https://gcc.gnu.org/g:375a77925c320a273d3b1ef3182f29f31aaa8edf

commit r11-38-g375a77925c320a273d3b1ef3182f29f31aaa8edf
Author: Martin Jambor <mjambor@suse.cz>
Date:   Mon May 4 13:53:54 2020 +0200

    tree-inline: Simplify IPA-CP type conversion (PR 93385)

    when callers and callees do not quite agree on the type of a
    parameter, usually with ill-defined K&R or with smilarly wrong LTO
    input, IPA-CP can attempt to try and substitute a wrong type for a
    parameter (see e.g. gcc.dg/torture/pr48063.c).  Function
    tree_function_versioning attempts to handle this in order not to
    create invalid gimple but it then creates the mapping using
    setup_one_parameter which also handles the same situation to avoid
    similar problems when inlining and in more defined way.

    So this patch simply removes the conversion attempts in
    tree_function_versioning itself.  It is helpful for my upcoming fix of
    PR 93385 because then I do not need to teach
    ipa_param_body_adjustments to distinguish between successful and
    unsuccessful mappings - setup_one_parameter uses force_value_to_type
    for conversions which simly maps the worst cases to zero.

    2020-05-04  Martin Jambor  <mjambor@suse.cz>

            PR ipa/93385
            * tree-inline.c (tree_function_versioning): Leave any type
conversion
            of replacements to setup_one_parameter and its friend
            force_value_to_type.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10/11 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (18 preceding siblings ...)
  2020-05-04 12:03 ` [Bug ipa/93385] [10/11 " cvs-commit at gcc dot gnu.org
@ 2020-05-07 11:56 ` jakub at gcc dot gnu.org
  2020-05-28 12:33 ` jamborm at gcc dot gnu.org
                   ` (20 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jakub at gcc dot gnu.org @ 2020-05-07 11:56 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|10.0                        |10.2

--- Comment #34 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 10.1 has been released.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10/11 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (19 preceding siblings ...)
  2020-05-07 11:56 ` jakub at gcc dot gnu.org
@ 2020-05-28 12:33 ` jamborm at gcc dot gnu.org
  2020-06-08 18:18 ` jamborm at gcc dot gnu.org
                   ` (19 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jamborm at gcc dot gnu.org @ 2020-05-28 12:33 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #35 from Martin Jambor <jamborm at gcc dot gnu.org> ---
I have proposed a patch series that deals with this issue, including proper
adjustments to debug info, on the mailing list:

https://gcc.gnu.org/pipermail/gcc-patches/2020-May/546702.html

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10/11 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (20 preceding siblings ...)
  2020-05-28 12:33 ` jamborm at gcc dot gnu.org
@ 2020-06-08 18:18 ` jamborm at gcc dot gnu.org
  2020-07-23  6:51 ` rguenth at gcc dot gnu.org
                   ` (18 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jamborm at gcc dot gnu.org @ 2020-06-08 18:18 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385
Bug 93385 depends on bug 95113, which changed state.

Bug 95113 Summary: [10/11 Regression] Wrong code w/ -O2 -fexceptions -fnon-call-exceptions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95113

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10/11 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (21 preceding siblings ...)
  2020-06-08 18:18 ` jamborm at gcc dot gnu.org
@ 2020-07-23  6:51 ` rguenth at gcc dot gnu.org
  2020-07-27 15:04 ` jamborm at gcc dot gnu.org
                   ` (17 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: rguenth at gcc dot gnu.org @ 2020-07-23  6:51 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|10.2                        |10.3

--- Comment #36 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 10.2 is released, adjusting target milestone.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10/11 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (22 preceding siblings ...)
  2020-07-23  6:51 ` rguenth at gcc dot gnu.org
@ 2020-07-27 15:04 ` jamborm at gcc dot gnu.org
  2020-11-26 12:01 ` jamborm at gcc dot gnu.org
                   ` (16 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jamborm at gcc dot gnu.org @ 2020-07-27 15:04 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

Martin Jambor <jamborm at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |suochenyao at 163 dot com

--- Comment #37 from Martin Jambor <jamborm at gcc dot gnu.org> ---
*** Bug 96235 has been marked as a duplicate of this bug. ***

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10/11 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (23 preceding siblings ...)
  2020-07-27 15:04 ` jamborm at gcc dot gnu.org
@ 2020-11-26 12:01 ` jamborm at gcc dot gnu.org
  2021-01-21 15:18 ` jakub at gcc dot gnu.org
                   ` (15 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jamborm at gcc dot gnu.org @ 2020-11-26 12:01 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #38 from Martin Jambor <jamborm at gcc dot gnu.org> ---
*** Bug 97980 has been marked as a duplicate of this bug. ***

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10/11 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (24 preceding siblings ...)
  2020-11-26 12:01 ` jamborm at gcc dot gnu.org
@ 2021-01-21 15:18 ` jakub at gcc dot gnu.org
  2021-03-12 12:51 ` jamborm at gcc dot gnu.org
                   ` (14 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-01-21 15:18 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #39 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
What happened to that patch series?  Has it been committed without showing it
up in the PR, something else?

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10/11 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (25 preceding siblings ...)
  2021-01-21 15:18 ` jakub at gcc dot gnu.org
@ 2021-03-12 12:51 ` jamborm at gcc dot gnu.org
  2021-03-30 13:12 ` jamborm at gcc dot gnu.org
                   ` (13 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jamborm at gcc dot gnu.org @ 2021-03-12 12:51 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #40 from Martin Jambor <jamborm at gcc dot gnu.org> ---
I have adjusted the patches a little and re-posted them as
https://gcc.gnu.org/pipermail/gcc-patches/2021-March/566681.html and
https://gcc.gnu.org/pipermail/gcc-patches/2021-March/566682.html .

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10/11 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (26 preceding siblings ...)
  2021-03-12 12:51 ` jamborm at gcc dot gnu.org
@ 2021-03-30 13:12 ` jamborm at gcc dot gnu.org
  2021-04-08 12:02 ` rguenth at gcc dot gnu.org
                   ` (12 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jamborm at gcc dot gnu.org @ 2021-03-30 13:12 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #41 from Martin Jambor <jamborm at gcc dot gnu.org> ---
I reworked the series in order to avoid the biggest objection and posted them
as https://gcc.gnu.org/pipermail/gcc-patches/2021-March/567471.html and
https://gcc.gnu.org/pipermail/gcc-patches/2021-March/567472.html

Because the first one is a bit disruptive, I do not think they are suitable for
stage4.  Therefore I suggest that in GCC 10 and 11 we paper over the issue with
the patch from comment #11 and in GCC 12 we fix this independently from DCE
pass with the referenced patches.

Sorry I could not come up with this earlier, it took me a lot of unsuccessful
attempts to get here.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10/11 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (27 preceding siblings ...)
  2021-03-30 13:12 ` jamborm at gcc dot gnu.org
@ 2021-04-08 12:02 ` rguenth at gcc dot gnu.org
  2021-04-27 13:35 ` [Bug ipa/93385] [10/11/12 " jamborm at gcc dot gnu.org
                   ` (11 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-04-08 12:02 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|10.3                        |10.4

--- Comment #42 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 10.3 is being released, retargeting bugs to GCC 10.4.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10/11/12 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (28 preceding siblings ...)
  2021-04-08 12:02 ` rguenth at gcc dot gnu.org
@ 2021-04-27 13:35 ` jamborm at gcc dot gnu.org
  2021-05-12 11:40 ` jamborm at gcc dot gnu.org
                   ` (10 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jamborm at gcc dot gnu.org @ 2021-04-27 13:35 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #43 from Martin Jambor <jamborm at gcc dot gnu.org> ---
I have re-tested and re-posted the latest patch series to the mailing list:

- https://gcc.gnu.org/pipermail/gcc-patches/2021-April/568810.html
- https://gcc.gnu.org/pipermail/gcc-patches/2021-April/568811.html

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10/11/12 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (29 preceding siblings ...)
  2021-04-27 13:35 ` [Bug ipa/93385] [10/11/12 " jamborm at gcc dot gnu.org
@ 2021-05-12 11:40 ` jamborm at gcc dot gnu.org
  2021-06-28 16:28 ` cvs-commit at gcc dot gnu.org
                   ` (9 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jamborm at gcc dot gnu.org @ 2021-05-12 11:40 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

Martin Jambor <jamborm at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |zhendong.su at inf dot ethz.ch

--- Comment #44 from Martin Jambor <jamborm at gcc dot gnu.org> ---
*** Bug 100539 has been marked as a duplicate of this bug. ***

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10/11/12 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (30 preceding siblings ...)
  2021-05-12 11:40 ` jamborm at gcc dot gnu.org
@ 2021-06-28 16:28 ` cvs-commit at gcc dot gnu.org
  2021-06-28 16:28 ` cvs-commit at gcc dot gnu.org
                   ` (8 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-06-28 16:28 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #45 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Martin Jambor <jamborm@gcc.gnu.org>:

https://gcc.gnu.org/g:87467f45e831e8e943efdae8920453741986d355

commit r12-1847-g87467f45e831e8e943efdae8920453741986d355
Author: Martin Jambor <mjambor@suse.cz>
Date:   Mon Jun 28 18:20:00 2021 +0200

    ipa-sra: Restructure how cloning and call redirection communicate (PR
93385)

    I was asked by Richi to split my fix for PR 93385 for easier review
    into IPA-SRA materialization refactoring and the actual DCE addition.
    Fortunately it was mostly natural except for a temporary weird
    condition in ipa_param_body_adjustments::modify_call_stmt.
    Additionally.  In addition to the patch I posted previously, this one
    also deallocated the newly added summary in toplev::finalize and fixes
    a mistakenly uninitialized field.

    This is the first part which basically replaces performed_splits in
    clone_info and the code which generates it, keeps it up-to-date and
    consumes it with new edge summaries which are much nicer.  It simply
    contains 1) a mapping from the original argument indices to the actual
    indices in the call statement as it is now, 2) information needed to
    identify arguments representing pass-through IPA-SRA splits with which
    have been added to the call arguments in place of an original
    argument/reference and 3) a delta to the index where va_args may start
    - so basically directly all the information that the consumer of
    performed_splits had to compute and we also do not need the weird
    dummy declarations.

    The main disadvantage is that the information has to be created (and
    kept up-to-date) for all call graph edges associated with the given
    statement from all clones (including inline clones) of the clone where
    splitting or removal happened first.  But all of this happens during
    clone materialization so the only effect on WPA memory consumption is
    the removal of a pointer from clone_info.

    The statement modification code also has to know the statement from
    the original function in order to be able to locate the edge summaries
    which at this point are still keyed to these.  However, the code is
    already quite heavily dependant on how things are structured in
    tree-inline.c and in order to fix bugs like these it probably has to
    be.

    The subsequent patch needs this new information to be able to remove
    arguments from calls during materialization and communicate this
    information to the call redirection.

    gcc/ChangeLog:

    2021-05-17  Martin Jambor  <mjambor@suse.cz>

            PR ipa/93385
            * symtab-clones.h (clone_info): Removed member param_adjustments.
            * ipa-param-manipulation.h: Adjust initial comment to reflect how
we
            deal with pass-through splits now.
            (ipa_param_performed_split): Removed.
            (ipa_param_adjustments::modify_call): Adjusted parameters.
            (class ipa_param_body_adjustments): Adjusted parameters of
            register_replacement, modify_gimple_stmt and modify_call_stmt.
            (ipa_verify_edge_has_no_modifications): Declare.
            (ipa_edge_modifications_finalize): Declare.
            * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Remove
            performed_splits processing, pas only edge to padjs->modify_call,
            check that call arguments were not modified if they should not have
            been.
            * cgraphclones.c (cgraph_node::create_clone): Do not copy performed
            splits.
            * ipa-param-manipulation.c (struct pass_through_split_map): New
type.
            (ipa_edge_modification_info): Likewise.
            (ipa_edge_modification_sum): Likewise.
            (ipa_edge_modifications): New edge summary.
            (ipa_verify_edge_has_no_modifications): New function.
            (transitive_split_p): Removed.
            (transitive_split_map): Likewise.
            (init_transitive_splits): Likewise.
            (ipa_param_adjustments::modify_call): Adjusted to use the new edge
            summary instead of performed_splits.
            (ipa_param_body_adjustments::register_replacement): Drop dummy
            parameter, set base_index of the created
ipa_param_body_replacement.
            (phi_arg_will_live_p): New function.
            (ipa_param_body_adjustments::common_initialization): Do not create
            IPA_SRA dummy decls.
            (simple_tree_swap_info): Removed.
            (remap_split_decl_to_dummy): Likewise.
            (record_argument_state_1): New function.
            (record_argument_state): Likewise.
            (ipa_param_body_adjustments::modify_call_stmt): New parameter
            orig_stmt.  Do not work with dummy decls, save necessary info about
            changes to ipa_edge_modifications.
            (ipa_param_body_adjustments::modify_gimple_stmt): New parameter
            orig_stmt, pass it to modify_call_stmt.
            (ipa_param_body_adjustments::modify_cfun_body): Adjust call to
            modify_gimple_stmt.
            (ipa_edge_modifications_finalize): New function.
            * tree-inline.c (remap_gimple_stmt): Pass original statement to
            modify_gimple_stmt.
            (copy_phis_for_bb): Do not copy dead PHI nodes.
            (expand_call_inline): Do not remap performed_splits.
            (update_clone_info): Likewise.
            * toplev.c: Include ipa-param-manipulation.h.
            (toplev::finalize): Call ipa_edge_modifications_finalize.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10/11/12 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (31 preceding siblings ...)
  2021-06-28 16:28 ` cvs-commit at gcc dot gnu.org
@ 2021-06-28 16:28 ` cvs-commit at gcc dot gnu.org
  2021-06-28 17:30 ` [Bug ipa/93385] [10/11 " jamborm at gcc dot gnu.org
                   ` (7 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-06-28 16:28 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #46 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Martin Jambor <jamborm@gcc.gnu.org>:

https://gcc.gnu.org/g:2902991a6b61d473f7cb996a2b80eef4a90f8eda

commit r12-1848-g2902991a6b61d473f7cb996a2b80eef4a90f8eda
Author: Martin Jambor <mjambor@suse.cz>
Date:   Mon Jun 28 18:20:00 2021 +0200

    ipa-sra: Introduce a mini-DCE to tree-inline.c (PR 93385)

    I was asked by Richi to split my fix for PR 93385 for easier review
    into IPA-SRA materialization refactoring and the actual DCE addition.
    This is the second part that actually contains the DCE of statements
    that IPA-SRA should not leave behind because they can have problematic
    side effects, even if they are useless, so that we do not depend on
    tree-dce to remove them for correctness.

    The patch fixes the problem by doing a def-use walk when materializing
    clones, marking which statements should not be copied and which
    SSA_NAMEs do not need to be computed because eventually they would be
    DCEd.  We do this on the original function body and tree-inline simply
    does not copy statements which are "dead."

    The only complication is removing dead argument calls because that
    needs to be communicated to callee redirection code using the
    infrastructure introduced by the previous patch.

    I added all testcases of the original patch to this one, although some
    probably test behavior introduced in the previous patch.

    gcc/ChangeLog:

    2021-05-12  Martin Jambor  <mjambor@suse.cz>

            PR ipa/93385
            * ipa-param-manipulation.h (class ipa_param_body_adjustments): New
            members m_dead_stmts and m_dead_ssas.
            * ipa-param-manipulation.c
            (ipa_param_body_adjustments::mark_dead_statements): New function.
            (ipa_param_body_adjustments::common_initialization): Call it on
            all removed but not split parameters.
            (ipa_param_body_adjustments::ipa_param_body_adjustments):
Initialize
            new mwmbers.
            (ipa_param_body_adjustments::modify_call_stmt): Remove arguments
that
            are dead.
            * tree-inline.c (remap_gimple_stmt): Do not copy dead statements,
reset
            dead debug statements.
            (copy_phis_for_bb): Do not copy dead PHI nodes.

    gcc/testsuite/ChangeLog:

    2021-03-22  Martin Jambor  <mjambor@suse.cz>

            PR ipa/93385
            * gcc.dg/ipa/pr93385.c: New test.
            * gcc.dg/ipa/ipa-sra-23.c: Likewise.
            * gcc.dg/ipa/ipa-sra-24.c: Likewise.
            * g++.dg/ipa/ipa-sra-4.C: Likewise.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10/11 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (32 preceding siblings ...)
  2021-06-28 16:28 ` cvs-commit at gcc dot gnu.org
@ 2021-06-28 17:30 ` jamborm at gcc dot gnu.org
  2021-11-04 17:09 ` cvs-commit at gcc dot gnu.org
                   ` (6 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jamborm at gcc dot gnu.org @ 2021-06-28 17:30 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

Martin Jambor <jamborm at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[10/11/12 Regression] wrong |[10/11 Regression] wrong
                   |code with u128 modulo at    |code with u128 modulo at
                   |-O2 -fno-dce -fno-ipa-cp    |-O2 -fno-dce -fno-ipa-cp
                   |-fno-tree-dce               |-fno-tree-dce

--- Comment #47 from Martin Jambor <jamborm at gcc dot gnu.org> ---
Fixed on master.

Given the size of the fix, it is clearly not suitable for backporting.  This
bug is likely to remain unfixed on GCC 10 and 11, which however should not hurt
anybody who does not explicitly disable DCE.  (An unappealing but realistic
alternative is to add the bail out from comment #11 to those branches.)

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10/11 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (33 preceding siblings ...)
  2021-06-28 17:30 ` [Bug ipa/93385] [10/11 " jamborm at gcc dot gnu.org
@ 2021-11-04 17:09 ` cvs-commit at gcc dot gnu.org
  2022-06-28 10:39 ` jakub at gcc dot gnu.org
                   ` (5 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-11-04 17:09 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #48 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Martin Jambor <jamborm@gcc.gnu.org>:

https://gcc.gnu.org/g:1ece90ffa9ce63b416296bd662b8117d9b538913

commit r12-4920-g1ece90ffa9ce63b416296bd662b8117d9b538913
Author: Martin Jambor <mjambor@suse.cz>
Date:   Thu Nov 4 18:01:20 2021 +0100

    ipa-sra: Improve debug info for removed parameters (PR 93385)

    In spring I added code eliminating any statements using parameters
    removed by IPA passes (to fix PR 93385).  That patch fixed issues such
    as divisions by zero that such code could perform but it only reset
    all affected debug bind statements, this one updates them with
    expressions which can allow the debugger to print the removed value -
    see the added test-case for an example.

    Even though I originally did not want to create DEBUG_EXPR_DECLs for
    intermediate values, I ended up doing so, because otherwise the code
    started creating statements like

       # DEBUG __aD.198693 => &MEM[(const struct _Alloc_nodeD.171110
*)D#195]._M_tD.184726->_M_implD.171154

    which not only is a bit scary but also gimple-fold ICEs on
    it. Therefore I decided they are probably quite necessary.

    The patch simply notes each removed SSA name present in a debug
    statement and then works from it backwards, looking if it can
    reconstruct the expression it represents (which can fail if a
    non-degenerate PHI node is in the way).  If it can, it populates two
    hash maps with those expressions so that 1) removed assignments are
    replaced with a debug bind defining a new intermediate debug_decl_expr
    and 2) existing debug binds that refer to SSA names that are bing
    removed now refer to corresponding debug_decl_exprs.

    If a removed parameter is passed to another function, the debugging
    information still cannot describe its value there - see the xfailed
    test in the testcase.  I sort of know what needs to be done but that
    needs a little bit more of IPA infrastructure on top of this patch and
    so I would like to get this patch reviewed first.

    Bootstrapped and tested on x86_64-linux, i686-linux and (long time
    ago) on aarch64-linux.  Also LTO-bootstrapped and on x86_64-linux.

    Perhaps it is good to go to trunk?

    Thanks,

    Martin

    gcc/ChangeLog:

    2021-03-29  Martin Jambor  <mjambor@suse.cz>

            PR ipa/93385
            * ipa-param-manipulation.h (class ipa_param_body_adjustments): New
            members remap_with_debug_expressions, m_dead_ssa_debug_equiv,
            m_dead_stmt_debug_equiv and prepare_debug_expressions.  Added
            parameter to mark_dead_statements.
            * ipa-param-manipulation.c: Include tree-phinodes.h and
cfgexpand.h.
            (ipa_param_body_adjustments::mark_dead_statements): New parameter
            debugstack, push into it all SSA names used in debug statements,
            produce m_dead_ssa_debug_equiv mapping for the removed param.
            (replace_with_mapped_expr): New function.
            (ipa_param_body_adjustments::remap_with_debug_expressions):
Likewise.
            (ipa_param_body_adjustments::prepare_debug_expressions): Likewise.
            (ipa_param_body_adjustments::common_initialization): Gather and
            procecc SSA which will be removed but are in debug statements.
Simplify.
            (ipa_param_body_adjustments::ipa_param_body_adjustments):
Initialize
            new members.
            * tree-inline.c (remap_gimple_stmt): Create a debug bind when
possible
            when avoiding a copy of an unnecessary statement.  Remap removed
SSA
            names in existing debug statements.
            (tree_function_versioning): Do not create DEBUG_EXPR_DECL for
removed
            parameters if we have already done so.

    gcc/testsuite/ChangeLog:

    2021-03-29  Martin Jambor  <mjambor@suse.cz>

            PR ipa/93385
            * gcc.dg/guality/ipa-sra-1.c: New test.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [10/11 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (34 preceding siblings ...)
  2021-11-04 17:09 ` cvs-commit at gcc dot gnu.org
@ 2022-06-28 10:39 ` jakub at gcc dot gnu.org
  2023-07-07 10:36 ` [Bug ipa/93385] [11 " rguenth at gcc dot gnu.org
                   ` (4 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-06-28 10:39 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|10.4                        |10.5

--- Comment #49 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 10.4 is being released, retargeting bugs to GCC 10.5.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [11 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (35 preceding siblings ...)
  2022-06-28 10:39 ` jakub at gcc dot gnu.org
@ 2023-07-07 10:36 ` rguenth at gcc dot gnu.org
  2023-07-14 20:09 ` pinskia at gcc dot gnu.org
                   ` (3 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-07-07 10:36 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|10.5                        |11.5

--- Comment #50 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 10 branch is being closed.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [11 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (36 preceding siblings ...)
  2023-07-07 10:36 ` [Bug ipa/93385] [11 " rguenth at gcc dot gnu.org
@ 2023-07-14 20:09 ` pinskia at gcc dot gnu.org
  2023-07-29  8:07 ` pinskia at gcc dot gnu.org
                   ` (2 subsequent siblings)
  40 siblings, 0 replies; 41+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-07-14 20:09 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |19373742 at buaa dot edu.cn

--- Comment #51 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
*** Bug 110662 has been marked as a duplicate of this bug. ***

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [11 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (37 preceding siblings ...)
  2023-07-14 20:09 ` pinskia at gcc dot gnu.org
@ 2023-07-29  8:07 ` pinskia at gcc dot gnu.org
  2023-07-29  9:16 ` xry111 at gcc dot gnu.org
  2023-07-29  9:43 ` rguenther at suse dot de
  40 siblings, 0 replies; 41+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-07-29  8:07 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #52 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
*** Bug 110818 has been marked as a duplicate of this bug. ***

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [11 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (38 preceding siblings ...)
  2023-07-29  8:07 ` pinskia at gcc dot gnu.org
@ 2023-07-29  9:16 ` xry111 at gcc dot gnu.org
  2023-07-29  9:43 ` rguenther at suse dot de
  40 siblings, 0 replies; 41+ messages in thread
From: xry111 at gcc dot gnu.org @ 2023-07-29  9:16 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

Xi Ruoyao <xry111 at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |xry111 at gcc dot gnu.org

--- Comment #53 from Xi Ruoyao <xry111 at gcc dot gnu.org> ---
Note that this occasionally causes csmith failure and produces duplicates. 
Maybe we should tell the csmith testers not to disable DCE if fuzzing against
GCC 11.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Bug ipa/93385] [11 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce
       [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
                   ` (39 preceding siblings ...)
  2023-07-29  9:16 ` xry111 at gcc dot gnu.org
@ 2023-07-29  9:43 ` rguenther at suse dot de
  40 siblings, 0 replies; 41+ messages in thread
From: rguenther at suse dot de @ 2023-07-29  9:43 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385

--- Comment #54 from rguenther at suse dot de <rguenther at suse dot de> ---
> Am 29.07.2023 um 11:16 schrieb xry111 at gcc dot gnu.org <gcc-bugzilla@gcc.gnu.org>:
> 
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93385
> 
> Xi Ruoyao <xry111 at gcc dot gnu.org> changed:
> 
>           What    |Removed                     |Added
> ----------------------------------------------------------------------------
>                 CC|                            |xry111 at gcc dot gnu.org
> 
> --- Comment #53 from Xi Ruoyao <xry111 at gcc dot gnu.org> ---
> Note that this occasionally causes csmith failure and produces duplicates. 
> Maybe we should tell the csmith testers not to disable DCE if fuzzing against
> GCC 11.

I think disabling DCE is only useful on trunk.

> -- 
> You are receiving this mail because:
> You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2023-07-29  9:43 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <bug-93385-4@http.gcc.gnu.org/bugzilla/>
2020-03-15 11:58 ` [Bug ipa/93385] [10 Regression] wrong code with u128 modulo at -O2 -fno-dce -fno-ipa-cp -fno-tree-dce jakub at gcc dot gnu.org
2020-04-09  9:25 ` rguenth at gcc dot gnu.org
2020-04-17 11:50 ` jamborm at gcc dot gnu.org
2020-04-17 12:06 ` jakub at gcc dot gnu.org
2020-04-17 12:08 ` rguenth at gcc dot gnu.org
2020-04-17 12:09 ` jakub at gcc dot gnu.org
2020-04-17 12:16 ` rguenther at suse dot de
2020-04-17 13:41 ` jamborm at gcc dot gnu.org
2020-04-17 13:53 ` jakub at gcc dot gnu.org
2020-04-17 14:00 ` rguenther at suse dot de
2020-04-17 14:00 ` jamborm at gcc dot gnu.org
2020-04-17 14:11 ` jakub at gcc dot gnu.org
2020-04-17 14:23 ` jakub at gcc dot gnu.org
2020-04-20  8:14 ` rguenther at suse dot de
2020-04-20  9:06 ` jakub at gcc dot gnu.org
2020-04-20 21:02 ` jamborm at gcc dot gnu.org
2020-04-21 10:34 ` rguenth at gcc dot gnu.org
2020-04-21 13:00 ` jakub at gcc dot gnu.org
2020-05-04 12:03 ` [Bug ipa/93385] [10/11 " cvs-commit at gcc dot gnu.org
2020-05-07 11:56 ` jakub at gcc dot gnu.org
2020-05-28 12:33 ` jamborm at gcc dot gnu.org
2020-06-08 18:18 ` jamborm at gcc dot gnu.org
2020-07-23  6:51 ` rguenth at gcc dot gnu.org
2020-07-27 15:04 ` jamborm at gcc dot gnu.org
2020-11-26 12:01 ` jamborm at gcc dot gnu.org
2021-01-21 15:18 ` jakub at gcc dot gnu.org
2021-03-12 12:51 ` jamborm at gcc dot gnu.org
2021-03-30 13:12 ` jamborm at gcc dot gnu.org
2021-04-08 12:02 ` rguenth at gcc dot gnu.org
2021-04-27 13:35 ` [Bug ipa/93385] [10/11/12 " jamborm at gcc dot gnu.org
2021-05-12 11:40 ` jamborm at gcc dot gnu.org
2021-06-28 16:28 ` cvs-commit at gcc dot gnu.org
2021-06-28 16:28 ` cvs-commit at gcc dot gnu.org
2021-06-28 17:30 ` [Bug ipa/93385] [10/11 " jamborm at gcc dot gnu.org
2021-11-04 17:09 ` cvs-commit at gcc dot gnu.org
2022-06-28 10:39 ` jakub at gcc dot gnu.org
2023-07-07 10:36 ` [Bug ipa/93385] [11 " rguenth at gcc dot gnu.org
2023-07-14 20:09 ` pinskia at gcc dot gnu.org
2023-07-29  8:07 ` pinskia at gcc dot gnu.org
2023-07-29  9:16 ` xry111 at gcc dot gnu.org
2023-07-29  9:43 ` rguenther at suse dot de

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).