[Bug rtl-optimization/105338] [12 Regression] Regression: jump or cmove generated for pattern (x ? CST : 0)
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Apr 22 09:17:23 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105338
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords|needs-bisection |
CC| |jakub at gcc dot gnu.org
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Started with r12-7687-g3a7ba8fd0cda387809e4902328af2473662b6a4a
All the *.optimized dump differences with that change look like:
@@ -8,14 +8,14 @@ int f (int i)
<bb 2> [local count: 1073741824]:
if (i_2(D) != 0)
- goto <bb 4>; [35.00%]
+ goto <bb 3>; [35.00%]
else
- goto <bb 3>; [65.00%]
+ goto <bb 4>; [65.00%]
- <bb 3> [local count: 697932184]:
+ <bb 3> [local count: 375809640]:
<bb 4> [local count: 1073741824]:
- # iftmp.0_1 = PHI <5(2), i_2(D)(3)>
+ # iftmp.0_1 = PHI <5(3), i_2(D)(2)>
return iftmp.0_1;
}
i.e. swapping whether true or false edge goes through the empty bb. Wonder why
we emit different code based on that...
More information about the Gcc-bugs
mailing list