Triggered by JDK-8037238 and the CacheFind problems I decided to give it some more love.

One reason CacheFind errors are rarely discovered is that it's only enabled on Windows, which is not used much in the build group. I would like to enable it on all platforms, simply to give it more usage and hardening. There is a very slight performance improvement on my Linux workstation, so it's not without benefits. ("time make images" with no changes reports 6.5 secs down from 7.5).

I also made the FillCacheFind macro a little smarter so that it handles being called multiple times with same or similar arguments without incurring a performance overhead. Now it only executes find if it's really needed. With this check, I could also add a call to FillCacheFind in SetupJavaCompilation and SetupArchive.

To provide a workaround next time a problem with the FindCache is found (or to just be able to measure the benefits), I added a variable DISABLE_CACHE_FIND that when set to true disables the cache.

(Note that the webrevs also contains the changes for JDK-8037238 since they were needed but aren't yet committed)

Bug: https://bugs.openjdk.java.net/browse/JDK-8037281
Webrevs:
http://cr.openjdk.java.net/~erikj/8037281/webrev.root.01/
http://cr.openjdk.java.net/~erikj/8037281/webrev.jdk.01/

/Erik

Reply via email to