RFR: Implement better address lowering for AArch64

Andrew Dinn adinn at redhat.com
Mon Apr 3 15:37:57 UTC 2017

Hi Doug,

Hmm, this is getting trickier.

I looked at the option of subclassing HotSpotSuitesProvider to define
this subclass hierarchy:

  AMD64HSSP  -----\
  AArch64HSSP  --/

(n.b. HotSpotSuitesProvider and its prospective subclasses names have
been abbreviated to <XXX>HSSP merely so I can fit the class hierarchy on
the page -- I really intended the new classes to be
AMD64HotSpotSuitesProvider, etc).

Unfortunately, I found that there is a name clash with an existing class
in the following hierarchy:

  AMD64HSSP -- AMD64SuitesProvider  ----\
               SPARCSuitesProvider  -----+-- DefaultSuitesProvider
               AArch64SuitesProvider ---/

I can (sort of) see why the two AMD64 children in this latter hierarchy
are distinguished -- each adds a phase to the LIR suites at a slightly
different level of generality. However, the names belie the fact that
this is happening in the DefaultSuitesProvider hierarchy rather than the
HotSpotSuitesProvider hierarchy.

I think these subclasses of DefaultSuitesProvider might have been named
better as


or, better still, AMD64DefaultSuitesCreator etc since they are only
needed to implement the interface SuitesCreator which is used to type
the first argument to the constructor for HotSporSuitesProvider (n.b.
use of the Creator names is going to require yet more revision of naming
-- the rot set in for this whole hierarchy at the root of the class tree
above these classes above DefaultSuitesProvider where its parent,
SuitesProviderBase, implements SuitesCreator).

Would it be best to rename these 4 classes to include the name Default
as above? Or would you recommend some other naming scheme for the
subclasses of HotSpotSuitesProvider I need to create?


Andrew Dinn
Senior Principal Software Engineer
Red Hat UK Ltd
Registered in England and Wales under Company Registration No. 03798903
Directors: Michael Cunningham, Michael ("Mike") O'Neill, Eric Shander

More information about the graal-dev mailing list