> On Fri, 4 Dec 2015, Jan Hubicka wrote: > > > > Indeed we don't do code hoisting yet. Maybe one could trick PPRE > > > into doing it. > > > > > > Note that for OBJ_TYPE_REFs in calls you probably should better use > > > gimple_call_fntype instead of the type of the OBJ_TYPE_REF anyway > > > (well, fntype will be the method-type, not pointer-to-method-type). > > > > > > Not sure if you need OBJ_TYPE_REFs type in non-call contexts? > > > > Well, to optimize speculative call sequences > > > > if (funptr == thismethod) > > inlined this method body > > else > > funptr (); > > > > Here you want to devirtualize the conditional, not the call in order > > to get the inlined method unconditonally. > > > > In general I think OBJ_TYPE_REF is misplaced - it should be on vtable load > > instead of the call/conditional. It is a property of the vtable lookup. > > Then it would work for method pointers too. > > Even better. Make it a tcc_reference tree then.
makes sense to me - it is indeed more similar to MEM_REF than to an expression. I will look into that next stage1. Honza