Re: PR middle-end/35535 part I

2013-12-18 Thread Jan Hubicka
> On 12/17/13 23:53, Tobias Burnus wrote: > >Am 17.12.2013 21:56, schrieb Jeff Law: > >>>* tree-vrp.c (extract_range_from_unary_expr_1): Add OBJ_TYPE_REF > >>s/Add/Handle. Please add the PR marker as well. > >> > >>OK with that trivial nit. > > > >And the proper PR. I don't think that INVALID

Re: PR middle-end/35535 part I

2013-12-17 Thread Jeff Law
On 12/17/13 23:53, Tobias Burnus wrote: Am 17.12.2013 21:56, schrieb Jeff Law: * tree-vrp.c (extract_range_from_unary_expr_1): Add OBJ_TYPE_REF s/Add/Handle. Please add the PR marker as well. OK with that trivial nit. And the proper PR. I don't think that INVALID C++ PR is the PR you wa

Re: PR middle-end/35535 part I

2013-12-17 Thread Tobias Burnus
Am 17.12.2013 21:56, schrieb Jeff Law: * tree-vrp.c (extract_range_from_unary_expr_1): Add OBJ_TYPE_REF s/Add/Handle. Please add the PR marker as well. OK with that trivial nit. And the proper PR. I don't think that INVALID C++ PR is the PR you want to refer to. Tobias

Re: PR middle-end/35535 part I

2013-12-17 Thread Jeff Law
On 12/17/13 11:00, Jan Hubicka wrote: Here we should devirtualize since B's foo is dominating target and we correctly do so. We however do more, we trace the code into: for (i = 0; i < 1; i++) { if (i%7==0) { ap = new A(); ap->foo(); }

PR middle-end/35535 part I

2013-12-17 Thread Jan Hubicka
Hi, PR 35545 has trivial testcase of feedback directed devirtualization: int main() { int i; A* ap = 0; for (i = 0; i < 1; i++) { if (i%7==0) ap = new A(); else ap = new B(); ap->foo(); Here we should devirtualize since B's foo is dominating targe