Path: utzoo!attcan!uunet!cs.utexas.edu!usc!apple!amdahl!dgcad!gary From: gary@dgcad.SV.DG.COM (Gary Bridgewater) Newsgroups: comp.lang.c++ Subject: Re: Cfront inlining Message-ID: <1505@proa.SV.DG.COM> Date: 7 Apr 90 09:41:22 GMT References: <117671@ti-csl.csc.ti.com> Reply-To: gary@proa.SV.DG.COM () Organization: Data General SDD, Sunnyvale, CA Lines: 47 In article <117671@ti-csl.csc.ti.com> NEATH@cgi.com writes: > >In article <117072@ti-csl.csc.ti.com> NEATH@cgi.com (me!) wrote about the >inlining policy of cfront 2.0 and the complextiy variable `imeasure'. When this >reaches 13, cfront decides not to inline >As such, that dosn't seem unreasonable: if you have 13 assignment statements in >a function, you probably shouldn't be inlining it all over the place. ^ why? >There are, however, other circumstances where the apparently somewhat arbitray >complexity measure of 13 is an annoyance. like, whenever it is invoked... >... To remedy this problem, it appears we must select from >one of the following unattractive options: >... > o Modify the cfront source code to allow a larger complexity measure so > that this particular case actually stays inline. There you go. >It would seem that the inline recommendation to the compiler is a far trickier >subject to deal with than some static complexity measure. Here's a bizarre thought - just let the programmer decide. If, for example, the programmer inserts an "inline" keyword then inline. If not, then don't.* There is always the outside chance the programmer did/did not use the "inline" keyword for a reason. Call it a 50-50 chance, if you will, so, on average, it can't hurt. After all, who suffers from the wrong decision? If the general c++ community doesn't understand inlining then let them post questions and get answers. It isn't the compiler that breaks the program. >Why, for example, are `for' loops disallowed in inline functions, but `while' >loops tolerated? Why is anything disallowed? If it is currently beyond the coders to inline certain things then document that as a deficiency, not a feature. ... * Actually, the complier (C++ or the underlying cc) may be able to decide TO inline in some cases - I don't want to restrict that feature other than wrt debugging when the rule should be "what you code is what you get". -- Gary Bridgewater, Data General Corporation, Sunnyvale California gary@sv.dg.com or {amdahl,aeras,amdcad}!dgcad!gary The impossible we understand right away - the obvious takes a little longer.