[aarch64-port-dev ] [12] RFR(S): 8207247 AARCH64: Enable Minimal and Client VM builds

Aleksei Voitylov aleksei.voitylov at bell-sw.com
Wed Aug 29 15:53:46 UTC 2018


Your second proposal is almost what I proposed in v01. But since I don't 
consider this important I'll adhere to those who have an opinion :)

-Aleksei
On 29/08/2018 18:47, Andrew Dinn wrote:
> On 29/08/18 16:34, Andrew Haley wrote:
>> On 08/29/2018 03:19 PM, Aleksei Voitylov wrote:
>>> here is an updated webrev:
>>> http://cr.openjdk.java.net/~avoitylov/webrev.8207247.02
>>>
>>> I'm not sure it looks cleaner since in_scratch_emit_size is a C2-only
>>> concept, though. This was the reason I changed it.
>> Yeah, I get that, but I want to keep the code history as clean as
>> possible.
> One minimal change which would clarify the code would be to rename
> in_scratch_emit_size to a name that does not drag in the C2-specific
> details:
>
>     // We need a trampoline if branches are far.
>     if (far_branches()) {
> +    bool avoid_emit = false;
> +#ifdef COMPILER2
>       // We don't want to emit a trampoline if C2 is generating dummy
>       // code during its branch shortening phase.
>       CompileTask* task = ciEnv::current()->task();
> -    bool in_scratch_emit_size =
> +    avoid_emit =
>         (task != NULL && is_c2_compile(task->comp_level()) &&
>          Compile::current()->in_scratch_emit_size());
> +#endif
>       if (!avoid_emit) {
>         address stub = emit_trampoline_stub(offset(), entry.target());
>         if (stub == NULL) {
>           return NULL; // CodeCache is full
>         }
>
> Even better would be to use do_emit and reverse the logic but that
> requires a slightly larger (but not much more complex) change:
>
>     // We need a trampoline if branches are far.
>     if (far_branches()) {
> +    bool so_emit = true;
> +#ifdef COMPILER2
>       // We don't want to emit a trampoline if C2 is generating dummy
>       // code during its branch shortening phase.
>       CompileTask* task = ciEnv::current()->task();
> -    bool in_scratch_emit_size =
> -      (task != NULL && is_c2_compile(task->comp_level()) &&
> -       Compile::current()->in_scratch_emit_size());
> +    do_emit =
> +      !(task != NULL && is_c2_compile(task->comp_level()) &&
> +        Compile::current()->in_scratch_emit_size());
> +#endif
>       if (do_emit) {
>         address stub = emit_trampoline_stub(offset(), entry.target());
>         if (stub == NULL) {
>           return NULL; // CodeCache is full
>         }
>
> regards,
>
>
> 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 aarch64-port-dev mailing list