ciSymbol.hpp use a macro to wrap symbols exported by vmSymbols.hpp. E.g., we have functions like
ciSymbol* ciSymbol::java_lang_System();
ciSymbol* ciSymbol::java_lang_String();
See https://github.com/openjdk/jdk/blob/0357db358133b38d82ad959261bc3175ea442043/src/hotspot/share/ci/ciSymbol.hpp#L101
This causes vmSymbols.hpp and vmIntrinsics.hpp to be recursively included by a large number of CPP files. Since only small number of CPP files actually use these functions, we should move this to a new header file, ciSymbols.hpp, so we can reduce the unnecessary includes.
ciSymbol* ciSymbol::java_lang_System();
ciSymbol* ciSymbol::java_lang_String();
See https://github.com/openjdk/jdk/blob/0357db358133b38d82ad959261bc3175ea442043/src/hotspot/share/ci/ciSymbol.hpp#L101
This causes vmSymbols.hpp and vmIntrinsics.hpp to be recursively included by a large number of CPP files. Since only small number of CPP files actually use these functions, we should move this to a new header file, ciSymbols.hpp, so we can reduce the unnecessary includes.
- relates to
-
JDK-8256254 Convert vmIntrinsics::ID to enum class
- Resolved