1 package jdk.incubator.code.internal;
 2 
 3 import jdk.incubator.code.Block;
 4 import jdk.incubator.code.CodeTransformer;
 5 import jdk.incubator.code.Op;
 6 import jdk.incubator.code.dialect.core.CoreOp;
 7 
 8 /**
 9  * A transformer that removes unused {@link jdk.incubator.code.dialect.core.CoreOp.ConstantOp}.
10  */
11 public class RemoveUnusedConstantTransformer implements CodeTransformer {
12     private RemoveUnusedConstantTransformer() {}
13 
14     public static final RemoveUnusedConstantTransformer INSTANCE = new RemoveUnusedConstantTransformer();
15 
16     @Override
17     public Block.Builder acceptOp(Block.Builder builder, Op op) {
18         if (op instanceof CoreOp.ConstantOp && op.result() != null && op.result().uses().isEmpty()) {
19             return builder;
20         }
21         builder.op(op);
22         return builder;
23     }
24 }