On Fri, 20 Nov 2020 22:21:04 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:
>> A few data structure in the ci allocate unconditionally created >> GrowableArrays out-of-line, have fields that are newer updated/read, or are >> unnecessarily cached. By cleaning this up we can slightly reduce memory used >> for JIT compilations while slightly speeding them up. > > src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/ci/ciObjectFactory.java > line 82: > >> 80: public GrowableArray<ciSymbol> symbols() { >> 81: Address addr = getAddress().addOffsetTo(symbolsField.getOffset()); >> 82: return GrowableArray.create(addr, ciSymbolConstructor); > > It's unclear to me why these two changes were needed. Don't they produce the > same result before and after? When changing the fields from `GrowableArray<..>*` to `GrowableArray<..>` I looked around and found another use of an embedded `GrowableArray` in `InlineTree.java` and took my cues from that. If you're certain these approaches are semantically identical I can drop these changes, but as I'm not exactly sure how to verify and test this I went the safe(?) route of leaning on prior art here. ------------- PR: https://git.openjdk.java.net/jdk/pull/1346