# HG changeset patch # User Christian Wimmer # Date 1453254688 28800 # Node ID 141aba8eb39aafdea32a73dc87893cd142116211 # Parent 8ae6984accb6692d70ec68061ab3816b5dfb52ef Allow customization of CompilationResultBuilder.dataCache diff -r 8ae6984accb6 -r 141aba8eb39a graal/com.oracle.graal.lir/src/com/oracle/graal/lir/asm/CompilationResultBuilder.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/asm/CompilationResultBuilder.java Tue Jan 19 15:55:24 2016 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/asm/CompilationResultBuilder.java Tue Jan 19 17:51:28 2016 -0800 @@ -31,6 +31,7 @@ import java.util.Arrays; import java.util.IdentityHashMap; import java.util.List; +import java.util.Map; import java.util.function.Consumer; import jdk.vm.ci.code.CodeCacheProvider; @@ -115,13 +116,19 @@ private List exceptionInfoList; - private final IdentityHashMap dataCache; + private final Map dataCache; private Consumer beforeOp; private Consumer afterOp; public CompilationResultBuilder(CodeCacheProvider codeCache, ForeignCallsProvider foreignCalls, FrameMap frameMap, Assembler asm, DataBuilder dataBuilder, FrameContext frameContext, CompilationResult compilationResult) { + // constants are already GVNed in the high level graph, so we can use an IdentityHashMap + this(codeCache, foreignCalls, frameMap, asm, dataBuilder, frameContext, compilationResult, new IdentityHashMap<>()); + } + + public CompilationResultBuilder(CodeCacheProvider codeCache, ForeignCallsProvider foreignCalls, FrameMap frameMap, Assembler asm, DataBuilder dataBuilder, FrameContext frameContext, + CompilationResult compilationResult, Map dataCache) { this.target = codeCache.getTarget(); this.codeCache = codeCache; this.foreignCalls = foreignCalls; @@ -131,9 +138,7 @@ this.compilationResult = compilationResult; this.frameContext = frameContext; assert frameContext != null; - - // constants are already GVNed in the high level graph, so we can use an IdentityHashMap - this.dataCache = new IdentityHashMap<>(); + this.dataCache = dataCache; } public void setTotalFrameSize(int frameSize) {