RFR: 8257563: Remove excessive include of klass.inline.hpp

Ioi Lam iklam at openjdk.java.net
Wed Dec 2 16:21:58 UTC 2020


On Wed, 2 Dec 2020 09:37:06 GMT, Stefan Karlsson <stefank at openjdk.org> wrote:

>> klass.inline.hpp is unnecessarily included by two popular header files: oop.inline.hpp and modRefBarrierSet.inline.hpp
>> 
>> These two `#include` lines recursively pull in many header files. Removing them reduce the total number of header inclusion for building HotSpot from 260096 to 254773, or about 2%.
>> 
>> Notes to reviewer. The main changes are in the header files: 
>> 
>> * src/hotspot/share/classfile/systemDictionaryShared.hpp
>> * src/hotspot/share/gc/shared/modRefBarrierSet.inline.hpp
>> * src/hotspot/share/oops/instanceKlass.hpp
>> * src/hotspot/share/oops/instanceKlass.inline.hpp
>> * src/hotspot/share/oops/oop.inline.hpp
>
> src/hotspot/cpu/s390/s390.ad line 1329:
> 
>> 1327: 
>> 1328: #include "oops/klass.inline.hpp"
>> 1329: 
> 
> I wonder if this should be put in adlc/main.cpp. I'm not sure, but I don't think we usually put includes in the .ad files.

We have #includes in the .ad files today. I am not sure what the rules are. I am guessing it is "add includes that are specific to the C code inside this .ad file". So I'd like to keep my changes in s390.ad as is.

$ find . -name *.ad | xargs grep -l '^#include '
./cpu/aarch64/aarch64.ad
./cpu/aarch64/gc/z/z_aarch64.ad
./cpu/aarch64/gc/shenandoah/shenandoah_aarch64.ad
./cpu/ppc/ppc.ad
./cpu/x86/gc/z/z_x86_64.ad
./cpu/x86/gc/shenandoah/shenandoah_x86_64.ad
./cpu/x86/gc/shenandoah/shenandoah_x86_32.ad
./cpu/x86/x86.ad

-------------

PR: https://git.openjdk.java.net/jdk/pull/1552


More information about the hotspot-dev mailing list