NagyDonat wrote:

With the two recent commits I think I addressed all review comments except for 
the "on-by-default config option" vs "unconditionally active logic" question.

In this area (which we discussed in inline comments) I'm still leaning towards 
the currently implemented `legacy-inlining-prevention` config option (which is 
enabled by default), because this would provide very minor advantages in 
several areas:
- The average slowdown caused by disabling this workaround seems to be around 
10-15% on larger projects, which is painful, but not completely prohibitive 
(and I guess that it could be offset if the user e.g. reduces `max-nodes` by 
20%).
- If somebody happens to run into false negatives (or invalidation-based false 
positives) which are caused by this inlining prevention, we can suggest 
`legacy-inlining-prevention=false` as a workaround.
- I hope that I will be able to develop other heuristics that prevent the 
inlining of complex functions based on more "natural" and robust conditions -- 
when those are available, some users may want to disable this and enable those 
instead. (Or, if they are proven to be better and we change the defaults, this 
option should remain as a disabled-by-default fallback for those who might want 
return to the earlier behavior.)
- During the development and testing of those alternative heuristics it would 
be nice to have this config option to enable/disable this workaround.
- Last, but perhaps not least, having a named config option will make it easier 
to speak about this code fragment (instead of "that hack where we disable 
inlining of a function if we would assume entering the third iteration in a 
loop").

If we keep the config option, we can also think about renaming it. I agree that 
`legacy` is a bit unfortunate in the name of an option that is on-by-default 
(at least for now), but I don't have a better idea. (Feel free to suggest names 
if you have!)

@balazs-benics-sonarsource @Xazax-hun WDYT about this area? Do you have any 
other question/remark?

https://github.com/llvm/llvm-project/pull/136720
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to