changeset 23254:dba757ef0c79

TraceRA: work around warning with newer ecj versions. Fixing the warning would cause an error with older ecj versions.
author Josef Eisl <josef.eisl@jku.at>
date Mon, 04 Jan 2016 12:17:38 +0100
parents d5320a931138
children 77feea4fe00c
files graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/alloc/TraceBuilder.java
diffstat 1 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/alloc/TraceBuilder.java	Mon Jan 04 01:45:30 2016 +0100
+++ b/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/alloc/TraceBuilder.java	Mon Jan 04 12:17:38 2016 +0100
@@ -93,7 +93,7 @@
 
     private TraceBuilder(List<T> blocks) {
         processed = new BitSet(blocks.size());
-        worklist = new PriorityQueue<T>(TraceBuilder::compare);
+        worklist = createQueue();
         assert (worklist != null);
 
         blocked = new int[blocks.size()];
@@ -103,7 +103,12 @@
         }
     }
 
-    private static <T extends AbstractBlockBase<T>> int compare(T a, T b) {
+    @SuppressWarnings("unchecked")
+    private PriorityQueue<T> createQueue() {
+        return (PriorityQueue<T>) new PriorityQueue<AbstractBlockBase<?>>(TraceBuilder::compare);
+    }
+
+    private static int compare(AbstractBlockBase<?> a, AbstractBlockBase<?> b) {
         return Double.compare(b.probability(), a.probability());
     }