public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/78115] Missed optimization for "int modulo 2^31"
[not found] <bug-78115-4@http.gcc.gnu.org/bugzilla/>
@ 2021-07-21 1:11 ` pinskia at gcc dot gnu.org
2021-11-15 9:01 ` pinskia at gcc dot gnu.org
` (2 subsequent siblings)
3 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-07-21 1:11 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78115
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|normal |enhancement
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
We get now:
if (num_2(D) < 0)
goto <bb 3>; [41.00%]
else
goto <bb 4>; [59.00%]
<bb 3> [local count: 440234144]:
num_3 = num_2(D) - -2147483648;
<bb 4> [local count: 1073741824]:
# num_1 = PHI <num_2(D)(2), num_3(3)>
So something like (psedu code):
(simplify
(cond (lt @0 integer_zerop) (minus @0 INTEGER_CST@1) @0)
(if (TYPE_SIGN (type) == SIGNED && @1 == type_min(type))
(bit_and @0 type_max(type))))
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug middle-end/78115] Missed optimization for "int modulo 2^31"
[not found] <bug-78115-4@http.gcc.gnu.org/bugzilla/>
2021-07-21 1:11 ` [Bug middle-end/78115] Missed optimization for "int modulo 2^31" pinskia at gcc dot gnu.org
@ 2021-11-15 9:01 ` pinskia at gcc dot gnu.org
2023-05-24 7:57 ` pinskia at gcc dot gnu.org
2023-06-07 15:18 ` pinskia at gcc dot gnu.org
3 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-11-15 9:01 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78115
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Depends on| |103216
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot gnu.org
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The patch which I posted for PR 103216 will fix this one too:
https://gcc.gnu.org/pipermail/gcc-patches/2021-November/584411.html
in phiopt4:
COND_EXPR in block 2 and PHI in block 4 converted to straightline code.
Merging blocks 2 and 4
fix_loop_structure: fixing up loops for function
int mod31 (int num)
{
_Bool _5;
int _6;
int _7;
int _8;
<bb 2> [local count: 1073741824]:
_5 = num_2(D) < 0;
_6 = (int) _5;
_7 = num_2(D) & -2147483648;
_8 = num_2(D) & 2147483647;
return _8;
}
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103216
[Bug 103216] missed optimization, phiopt/vrp?
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug middle-end/78115] Missed optimization for "int modulo 2^31"
[not found] <bug-78115-4@http.gcc.gnu.org/bugzilla/>
2021-07-21 1:11 ` [Bug middle-end/78115] Missed optimization for "int modulo 2^31" pinskia at gcc dot gnu.org
2021-11-15 9:01 ` pinskia at gcc dot gnu.org
@ 2023-05-24 7:57 ` pinskia at gcc dot gnu.org
2023-06-07 15:18 ` pinskia at gcc dot gnu.org
3 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-05-24 7:57 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78115
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Blocks| |90087
CC| |nok.raven at gmail dot com
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
*** Bug 90087 has been marked as a duplicate of this bug. ***
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90087
[Bug 90087] Suboptimal codegen for x < 0 ? x - INT_MIN : x
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug middle-end/78115] Missed optimization for "int modulo 2^31"
[not found] <bug-78115-4@http.gcc.gnu.org/bugzilla/>
` (2 preceding siblings ...)
2023-05-24 7:57 ` pinskia at gcc dot gnu.org
@ 2023-06-07 15:18 ` pinskia at gcc dot gnu.org
3 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-06-07 15:18 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78115
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
What this needs above and beyond PR 103216 is supporting `x ? a - b : a`.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-06-07 15:18 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <bug-78115-4@http.gcc.gnu.org/bugzilla/>
2021-07-21 1:11 ` [Bug middle-end/78115] Missed optimization for "int modulo 2^31" pinskia at gcc dot gnu.org
2021-11-15 9:01 ` pinskia at gcc dot gnu.org
2023-05-24 7:57 ` pinskia at gcc dot gnu.org
2023-06-07 15:18 ` pinskia at gcc dot gnu.org
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).