https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35545
--- Comment #12 from Jan Hubicka ---
We still fail to fold here. After tracer we get:
# ap_2 = PHI
# prephitmp_14 = PHI <&MEM[(void *)&_ZTV1A + 16B](4)>
_19 = *prephitmp_14;
PROF_24 = [obj_type_ref] OBJ_TYPE_REF(_19;(struct A)ap_2->0);
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35545
Tobias Burnus changed:
What|Removed |Added
CC||burnus at gcc dot gnu.org
--- Comment #11
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35545
--- Comment #8 from Jeffrey A. Law ---
It's not a matter of cost model, but if propagating the values to their uses.
I haven't looked closely at the tracer, but wouldn't it benefit by having
constants in particular propagated to their uses?
Yes,
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35545
--- Comment #10 from Jan Hubicka ---
> Tracer depends on the usual estimate_num_insns limits
> (it is 12 years since I wrote it, so what I recall)
note that one impotant thing that changed in those 12 years is that I
originally carefuly tuned tr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35545
--- Comment #9 from Jan Hubicka ---
> It's not a matter of cost model, but if propagating the values to their uses.
> I haven't looked closely at the tracer, but wouldn't it benefit by having
> constants in particular propagated to their uses?
T
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35545
--- Comment #7 from Jan Hubicka ---
> You certainly don't want to put something between DOM and phi-only-cprop.
> Jump
> threading will tend to expose lots of degenerate PHIs. phi-only-cprop
> eliminates those degenerates. We could have used t
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35545
Jeffrey A. Law changed:
What|Removed |Added
CC||law at redhat dot com
--- Comment #6 fro
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35545
--- Comment #5 from Jan Hubicka ---
Main issue seems to be that VRP messes up on:
# ap_2 = PHI
# prephitmp_14 = PHI <&MEM[(void *)&_ZTV1A + 16B](5)>
_19 = *prephitmp_14;
here it somehow won't constant propagate the load.
Index: passes.def
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35545
--- Comment #4 from rguenther at suse dot de ---
"hubicka at gcc dot gnu.org" wrote:
>http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35545
>
>Jan Hubicka changed:
>
> What|Removed |Added
>--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35545
--- Comment #3 from Jan Hubicka ---
Following patch gets rid of OBJ_TYPE_REF
Index: value-prof.c
===
--- value-prof.c(revision 206040)
+++ value-prof.c(working copy)
@
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35545
Jan Hubicka changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Last reconfirmed|
--- Comment #1 from pinskia at gcc dot gnu dot org 2008-03-12 06:07 ---
Jump threading happened by we did not prop the call correctly:
ap = (struct A *) D.2075;
ap->_vptr$A = &_ZTV1A[2];
OBJ_TYPE_REF(*ap->_vptr$A;ap->0) (ap);
...
this = (struct B *) D.2076;
this->D.2018._vptr$
12 matches
Mail list logo