7088955: add C2 IR support to the SA
These are bunch of SA improvements I collected as part of the replay
support. It includes support for C2 types and dumping of the graph,
the PhaseCFG, the InlineTree and MDOs. There are a bunch of new
classes to support this but for the most part they are simple mirrors
for their corresponding C++ classes and could be generated directly
from the vmStructs declarations. About half of the new lines are
copyright notices and Java boilerplate.
The C++ changes consist only of friend declarations and moving
nmethodBucket to the header so it can be described by vmStructs.
This also includes support in the SA for augmenting the type database
of a JVM during reading of a core file and dumping the type database
with a new vmstructdump command. -Dsun.jvm.hotspot.typedb=<file> will
read <file> after parsing the vmStructs from the child and add any new
definitions to the type database. The saenv scripts recognize the
environment variable SA_TYPEDB and pass the value in the property to
the invoked VM. I also augmented the type database logic so that it
can create const and pointer variants of types on the fly so they no
longer need to be declared in vmStructs.cpp. Additionally I added
support for GrowableArray templating to support reading various data
I also deleted the win32 and dbx debugger backends since those were
supplanted by the windbg and proc backends.
The webrev itself is quite large but most of the newly added classes
were generated from the vmStructs.cpp declarations or by simple
transliteration of C++ code. The meaningful bits are all at the
beginning of the webrev.
The replay stuff will be laid on top of these changes.
Tested with sajdi tests.