Integrated: 8330540: Rename the enum type CompileCommand to CompileCommandEnum
Ioi Lam
iklam at openjdk.org
Sat Apr 20 03:54:35 UTC 2024
On Wed, 17 Apr 2024 21:26:06 GMT, Ioi Lam <iklam at openjdk.org> wrote:
> `CompileCommand` is used both as a enum type ([compilerOracle.hpp](https://github.com/openjdk/jdk/blob/064628471b83616b4463baa78618d1b7a66d0c7c/src/hotspot/share/compiler/compilerOracle.hpp#L104)), and a global variable ([compiler_globals.hpp](https://github.com/openjdk/jdk/blob/064628471b83616b4463baa78618d1b7a66d0c7c/src/hotspot/share/compiler/compiler_globals.hpp#L304)).
>
> This makes very awkward to the enum type -- we are forced to use `enum CompileCommand` in the source code whenever a type is needed:
>
> This simple c++ file illustrates the problem:
>
> enum class CompileCommand { a, b, c };
> void foo(CompileCommand x) {}
> char* CompileCommand; // can no longer use "CompileCommand" as a type
> void good(enum CompileCommand x) {}
> void bad(CompileCommand x) {}
>
> $ g++ -c ~/enum.cpp
> /home/iklam/enum.cpp:5:6: error: variable or field ?bad? declared void
> 5 | void bad(CompileCommand x) {}
>
>
> The fix is to rename the enum type to `CompileCommandEnum`.
>
> This also makes it possible to forward-declare `CompileCommandEnum` (see vmEnum.hpp) without including compilerOracle.hpp. This improves HotSpot build time by reducing the number of .o files that include compilerOracle.hpp from 456 to 16.
This pull request has now been integrated.
Changeset: 6d569961
Author: Ioi Lam <iklam at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/6d5699617ff0985104a8bb5f2c9eb8887cb0961e
Stats: 138 lines in 19 files changed: 11 ins; 4 del; 123 mod
8330540: Rename the enum type CompileCommand to CompileCommandEnum
Reviewed-by: kvn, dlong
-------------
PR: https://git.openjdk.org/jdk/pull/18829
More information about the graal-dev
mailing list