Honza? Thanks, Martin
On 06/30/2017 03:50 PM, Martin Liška wrote: > On 06/28/2017 05:18 PM, Jan Hubicka wrote: >>> On 06/28/2017 04:24 PM, Jan Hubicka wrote: >>>>> - /* If callee has no option attributes, then it is ok to inline. */ >>>>> - if (!callee_tree) >>>>> + /* If callee has no option attributes (or default), >>>>> + then it is ok to inline. */ >>>>> + if (!callee_tree || callee_tree == target_option_default_node) >>>> >>>> I am not sure this actually makes sense, because >>>> target_option_default_node is not very >>>> meaningful for LTO (it contains whatever was passed to LTO driver). >>> >>> I see! >>> >>> Perhaps one can check >>>> for explicit optimization/machine attribute and whether caller and callee >>>> come from > > I'm not sure what you mean by 'for explicit optimization/machine attribute' ? > > I'm attaching a new patch, is it closer? > > Martin > >>>> same compilation unit, though this is quite hackish and will do unexpected >>>> things with COMDATs. >>> >>> That's quite cumbersome. Any other idea than marking the PR as won't fix? >> >> Yep, it is not prettiest. The problem is that the concept that callee can >> change semantics >> when no explicit attribute is present is sloppy. I am not sure how many >> programs rely on it >> (it is kind of surprising to see functions not being inlined into your >> target attribute annotated >> function I guess). >> Note that we check for original file in inliner already - this can be done >> by comparing lto_file_data >> of corresponding cgraph nodes. >> >> Honza >> >