Mercurial > hg > graal-compiler
changeset 23331:141aba8eb39a
Allow customization of CompilationResultBuilder.dataCache
author | Christian Wimmer <christian.wimmer@oracle.com> |
---|---|
date | Tue, 19 Jan 2016 17:51:28 -0800 |
parents | 8ae6984accb6 |
children | 8d31c062a05c |
files | graal/com.oracle.graal.lir/src/com/oracle/graal/lir/asm/CompilationResultBuilder.java |
diffstat | 1 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- 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<ExceptionInfo> exceptionInfoList; - private final IdentityHashMap<Constant, Data> dataCache; + private final Map<Constant, Data> dataCache; private Consumer<LIRInstruction> beforeOp; private Consumer<LIRInstruction> 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<Constant, Data> 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) {