compiling code that has never been interpreted

Doug Simon doug.simon at oracle.com
Tue Sep 3 08:28:43 PDT 2013


On Sep 3, 2013, at 5:21 PM, "Deneau, Tom" <tom.deneau at amd.com> wrote:

> Doug --
> 
> Thanks, yet this works.
> What is the reason that someone would want eagerResolving turned off?

Two reasons (that I can think of):

1. Prevent non-executed code paths causing extra class loading during compilation.
2. Allows unresolved calls to be treated as deopt points which can improve type analysis and a number of other compiler analyses.

-Doug

> -----Original Message-----
> From: Doug Simon [mailto:doug.simon at oracle.com] 
> Sent: Tuesday, September 03, 2013 10:00 AM
> To: Deneau, Tom
> Cc: graal-dev at openjdk.java.net
> Subject: Re: compiling code that has never been interpreted
> 
> Using GraphBuilderConfiguration.getEagerDefault() in HSAILCompilationResult.getHSAILCompilationResult() should work.
> 
> On Sep 3, 2013, at 2:52 PM, "Deneau, Tom" <tom.deneau at amd.com> wrote:
> 
>> For the HSAIL-based junit tests, we have the following general structure:
>> 
>> 1.       run a method in normal java mode
>> 
>> 2.       compile same method into HSAIL and dispatch
>> 
>> 3.       compare results
>> 
>> If the first two steps above are reversed, such that we force graal to compile a method which may have never been executed in java, there are some cases where the graal-generated HSAIL code is clearly incorrect, seemingly missing whole methods which should be inlined, etc.  (We are compiling with the flag -G:+InlineEverything).  We are running --vm server.
>> 
>> Is there a flag that should be used to handle such a case where we are trying to compile something that may have never been interpreted?  Or is this not supported?
>> 
>> I can try to get igv graphs if needed.
>> 
>> -- Tom
>> 
> 
> 
> 



More information about the graal-dev mailing list