MaxBCEAEstimateSize and inlining clarification
cheremin at gmail.com
Tue Sep 13 09:07:48 UTC 2016
> I'm seeing some code that iterates over a ConcurrentHashMap's entrySet that allocates tens of GB of CHM$MapEntry objects even though they don't escape
I'm a bit confused: I was sure BCEA-style params do affect EA, but don't affect scalar replacement. With bcEscapeAnalyser you can get (sort of) inter-procedural EA, but this only allows you to have more allocations identified as ArgEscape instead of GlobalEscape. But you can't get more NoEscape without real inlining. ArgEscape (afaik) is used only for synchronization removals in HotSpot, not for scalar replacements.
Am I incorrect?
More information about the hotspot-compiler-dev