Steven Bosscher writes: > On Tuesday 22 March 2005 09:11, Andrew Haley wrote: > > Kazu Hirata writes: > > > Hi, > > > > > > I see that the implementation of LANG_HOOKS_GET_CALLEE_FNDECL in Java > > > always returns NULL (at least for the time being). > > > > > > static tree > > > java_get_callee_fndecl (tree call_expr) > > > { > > > tree method, table, element, atable_methods; > > > > > > HOST_WIDE_INT index; > > > > > > /* FIXME: This is disabled because we end up passing calls through > > > the PLT, and we do NOT want to do that. */ > > > return NULL; > > > > > > > > > > > > > > > Is anybody planning to fix this? > > > > Yes. > > > > The problem is that I want to expose opportunities for inlining but I > > do not want calls to global functions to go through the PLT as > > required by C semantics. To do that causes endless problems. > > Ehm, inline how? We currently inline GIMPLE, but your langhook is > looking for FUNCTION_DECLs in something that is not GIMPLE.
That's right; it's disabled. > The langhook currently looks inside ARRAY_REFs right now. No, it doesn't. That's what it used to do but it's currently disabled. > Apparently Java has calls of the form > CALL_EXPR<ARRAY_REF<array,index>, ....>, which is very much *not* > GIMPLE. OK. > So if you enable the lang hook, you are either going to need a > GIMPLE extension (bad), or figure out some different way to > represent this kind of call such that the CALL_EXPR is proper > GIMPLE. Sure, that's fine. > IMHO it is Bad Taste(tm) anyway if get_callee_fndecl must look in > language specific data structures even when it is call from language > independent parts of the compiler, like the tree optimizers. The whole point of get_callee_fndecl is to look in language specific data structures. Andrew.