[Bug c++/79002] Weird c++ assembly code generated for tail call
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jan 5 12:53:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79002
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
And difference before tailcall detection is
--- a/t.C.042t.eipa_sra 2017-01-05 13:42:55.792951212 +0100
+++ b/t.C.042t.eipa_sra 2017-01-05 13:42:43.280808614 +0100
@@ -8,13 +8,13 @@
int i;
unsigned char * p.0_1;
unsigned char _2;
- int g.1_3;
+ int g.1_4;
<bb 2> [0.0%]:
p.0_1 = p;
_2 = *p.0_1;
- g.1_3 = g;
- if (g.1_3 >= j_7(D))
+ g.1_4 = g;
+ if (g.1_4 >= j_9(D))
goto <bb 4>; [0.0%]
else
goto <bb 3>; [0.0%]
@@ -31,6 +31,9 @@
<bb 5> [0.0%]:
return;
+<L3> [0.0%]:
+ resx 1
+
}
thus this is a generic EH optimization issue as well. ehcleanup1 fixes this
but that runs after tailr1.
More information about the Gcc-bugs
mailing list