Spurious Gate failure

stewartd.qdt stewartd.qdt at qualcommdatacenter.com
Thu Apr 19 14:42:24 UTC 2018


I had this same warning on the same file (different function). Removing the @SuppressWarnings (in my case) just gave another error because the variable really wasn't used, so it threw a warning about that. 

After about 10 tries of uploading changes, I came to the conclusion that something is wrong with their system. It seems like the checking system was a bit too stringent. When I removed the SuppressWarning it complained. Then when I put it back the way it was, it still complained, even though it was exactly as it was originally. 

I wound up uploading the exact same thing twice in a  row (via git push -f) so that the system thought nothing changed and didn't check it. I'll be interested to see how you fare.

Daniel

-----Original Message-----
From: graal-dev [mailto:graal-dev-bounces at openjdk.java.net] On Behalf Of Andrew Haley
Sent: Thursday, April 19, 2018 10:09 AM
To: graal-dev at openjdk.java.net
Subject: Spurious Gate failure

I can't figure out how to fix this warning:

----------
1. ERROR in /home/travis/build/oracle/graal/compiler/src/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64Move.java (at line 211)
	public void emitCode(@SuppressWarnings("unused") CompilationResultBuilder crb, AArch64MacroAssembler masm) {
	                                       ^^^^^^^^ Unnecessary @SuppressWarnings("unused")
----------

The code is this:

    public static class MembarOp extends AArch64LIRInstruction {
        public static final LIRInstructionClass<MembarOp> TYPE = LIRInstructionClass.create(MembarOp.class);

        // For future use.
        @SuppressWarnings("unused")
        private final int barriers;

        public MembarOp(int barriers) {
            super(TYPE);
            this.barriers = barriers;
        }

        @Override
        public void emitCode(@SuppressWarnings("unused") CompilationResultBuilder crb, AArch64MacroAssembler masm) {
            // As I understand it load acquire/store release have the same semantics as on IA64
            // and allow us to handle LoadStore, LoadLoad and StoreStore without an explicit
            // barrier.
            // But Graal support to figure out if a load/store is volatile is non-existant so for
            // now just use memory barriers everywhere.
            // if ((barrier & MemoryBarriers.STORE_LOAD) != 0) {
            masm.dmb(AArch64MacroAssembler.BarrierKind.ANY_ANY);
            // }
        }
    }

--
Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671


More information about the graal-dev mailing list