RFR (XS): Move implementation of process_grey_object to concurrentMark.inline.hpp
kim.barrett at oracle.com
Wed Aug 12 17:45:59 UTC 2015
On Aug 11, 2015, at 8:21 AM, Volker Simonis <volker.simonis at gmail.com> wrote:
> Hi Axel,
> the change looks good!
> I think we should always define template functions in .inline.hpp files.
> Can somebody please sponsor this change?
> Thank you and best regards,
> On Thu, Aug 6, 2015 at 3:49 PM, Siebenborn, Axel
> <axel.siebenborn at sap.com> wrote:
>> Could I have reviews and a sponsor for this small change
>> We had a linker problem with a C++ - compiler that inlined process_grey_object at all uses but removed the symbol and the actual implementation.
>> As there are explicit instantiations of this method in concurrentMark.cpp, this probably should not happen and can be considered of a bug of the C++ compiler. Though, it seems to be pointless to mark that method inline if there are explicit instantiations.
>> Considering performance, it would be better to move the implementation of process_grey_object to concurrentMark.inline.hpp in order to inline the method in other compilation units.
I can sponsor this, once I’ve reviewed it. I authored the relevant code, and want to look it and the change over and try to recall why it was written the way it was. The existing code is slightly odd, and I wouldn’t have written it that way without some reason…
More information about the hotspot-gc-dev