Mercurial > hg > truffle
comparison graal/com.oracle.graal.baseline/src/com/oracle/graal/baseline/BaselineCompiler.java @ 14919:bd08e610e6f3
BaselineCompiler: create BytecodeParser.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Mon, 31 Mar 2014 19:00:13 +0200 |
parents | c25b121d36ec |
children | c9554f0f1ea8 |
comparison
equal
deleted
inserted
replaced
14918:31a9c79399c8 | 14919:bd08e610e6f3 |
---|---|
50 import com.oracle.graal.nodes.calc.*; | 50 import com.oracle.graal.nodes.calc.*; |
51 import com.oracle.graal.nodes.calc.FloatConvertNode.FloatConvert; | 51 import com.oracle.graal.nodes.calc.FloatConvertNode.FloatConvert; |
52 import com.oracle.graal.nodes.cfg.*; | 52 import com.oracle.graal.nodes.cfg.*; |
53 import com.oracle.graal.nodes.java.MethodCallTargetNode.InvokeKind; | 53 import com.oracle.graal.nodes.java.MethodCallTargetNode.InvokeKind; |
54 import com.oracle.graal.nodes.java.*; | 54 import com.oracle.graal.nodes.java.*; |
55 import com.oracle.graal.phases.*; | |
55 | 56 |
56 /** | 57 /** |
57 * The {@code GraphBuilder} class parses the bytecode of a method and builds the IR graph. | 58 * The {@code GraphBuilder} class parses the bytecode of a method and builds the IR graph. |
58 */ | 59 */ |
59 @SuppressWarnings("all") | 60 @SuppressWarnings("all") |
63 this.graphBuilderConfig = graphBuilderConfig; | 64 this.graphBuilderConfig = graphBuilderConfig; |
64 this.metaAccess = metaAccess; | 65 this.metaAccess = metaAccess; |
65 } | 66 } |
66 | 67 |
67 private final MetaAccessProvider metaAccess; | 68 private final MetaAccessProvider metaAccess; |
68 private ConstantPool constantPool; | |
69 private ResolvedJavaMethod method; | |
70 private int entryBCI; | |
71 private ProfilingInfo profilingInfo; | |
72 private BytecodeStream stream; // the bytecode stream | |
73 | |
74 private Backend backend; | |
75 private LIRGenerator lirGen; | |
76 private LIRFrameStateBuilder frameState; | |
77 private LIRGenerationResult lirGenRes; | |
78 | |
79 private BciBlock currentBlock; | |
80 | |
81 private ValueNode methodSynchronizedObject; | |
82 private ExceptionDispatchBlock unwindBlock; | |
83 | 69 |
84 private final GraphBuilderConfiguration graphBuilderConfig; | 70 private final GraphBuilderConfiguration graphBuilderConfig; |
85 private BciBlock[] loopHeaders; | |
86 private AbstractBytecodeParser<Value, LIRFrameStateBuilder> parserHelper; | |
87 | |
88 /** | |
89 * Meters the number of actual bytecodes parsed. | |
90 */ | |
91 public static final DebugMetric BytecodesParsed = Debug.metric("BytecodesParsed"); | |
92 | |
93 protected ResolvedJavaMethod getMethod() { | |
94 return method; | |
95 } | |
96 | 71 |
97 public CompilationResult generate(ResolvedJavaMethod method, int entryBCI, Backend backend, CompilationResult compilationResult, ResolvedJavaMethod installedCodeOwner, | 72 public CompilationResult generate(ResolvedJavaMethod method, int entryBCI, Backend backend, CompilationResult compilationResult, ResolvedJavaMethod installedCodeOwner, |
98 CompilationResultBuilderFactory factory) { | 73 CompilationResultBuilderFactory factory, OptimisticOptimizations optimisticOpts) { |
99 this.method = method; | 74 ProfilingInfo profilingInfo = method.getProfilingInfo(); |
100 this.entryBCI = entryBCI; | |
101 this.backend = backend; | |
102 profilingInfo = method.getProfilingInfo(); | |
103 assert method.getCode() != null : "method must contain bytecodes: " + method; | 75 assert method.getCode() != null : "method must contain bytecodes: " + method; |
104 this.stream = new BytecodeStream(method.getCode()); | 76 BytecodeStream stream = new BytecodeStream(method.getCode()); |
105 this.constantPool = method.getConstantPool(); | 77 ConstantPool constantPool = method.getConstantPool(); |
106 unwindBlock = null; | |
107 methodSynchronizedObject = null; | |
108 TTY.Filter filter = new TTY.Filter(PrintFilter.getValue(), method); | 78 TTY.Filter filter = new TTY.Filter(PrintFilter.getValue(), method); |
109 | 79 |
110 frameState = new LIRFrameStateBuilder(method); | 80 LIRFrameStateBuilder frameState = new LIRFrameStateBuilder(method); |
81 | |
82 BytecodeParser parser = new BytecodeParser(metaAccess, method, graphBuilderConfig, optimisticOpts, frameState, stream, profilingInfo, constantPool, entryBCI, backend); | |
111 | 83 |
112 // build blocks and LIR instructions | 84 // build blocks and LIR instructions |
113 try { | 85 try { |
114 build(); | 86 parser.build(); |
115 } finally { | 87 } finally { |
116 filter.remove(); | 88 filter.remove(); |
117 } | 89 } |
118 | 90 |
119 // emitCode | 91 // emitCode |
120 Assumptions assumptions = new Assumptions(OptAssumptions.getValue()); | 92 Assumptions assumptions = new Assumptions(OptAssumptions.getValue()); |
121 GraalCompiler.emitCode(backend, assumptions, lirGenRes, compilationResult, installedCodeOwner, factory); | 93 GraalCompiler.emitCode(backend, assumptions, parser.lirGenRes, compilationResult, installedCodeOwner, factory); |
122 | 94 |
123 return compilationResult; | 95 return compilationResult; |
124 } | 96 } |
125 | 97 |
126 protected void build() { | 98 public void setParameter(int i, Variable emitMove) { |
127 if (PrintProfilingInformation.getValue()) { | 99 // TODO Auto-generated method stub |
128 TTY.println("Profiling info for " + MetaUtil.format("%H.%n(%p)", method)); | 100 throw GraalInternalError.unimplemented("Auto-generated method stub"); |
129 TTY.println(MetaUtil.indent(MetaUtil.profileToString(profilingInfo, method, CodeUtil.NEW_LINE), " ")); | 101 } |
130 } | 102 |
131 | 103 public void processBlock(BciBlock block) { |
132 try (Indent indent = Debug.logAndIndent("build graph for %s", method)) { | 104 // TODO Auto-generated method stub |
133 | 105 throw GraalInternalError.unimplemented("Auto-generated method stub"); |
134 // compute the block map, setup exception handlers and get the entrypoint(s) | 106 } |
135 BciBlockMapping blockMap = BciBlockMapping.create(method); | 107 |
136 loopHeaders = blockMap.loopHeaders; | 108 private static class BytecodeParser extends AbstractBytecodeParser<Value, LIRFrameStateBuilder> { |
137 | 109 private Backend backend; |
138 // add predecessors | 110 private LIRGenerator lirGen; |
139 for (BciBlock block : blockMap.blocks) { | 111 private LIRGenerationResult lirGenRes; |
140 for (BciBlock successor : block.getSuccessors()) { | 112 private BciBlock[] loopHeaders; |
141 successor.getPredecessors().add(block); | 113 |
114 public BytecodeParser(MetaAccessProvider metaAccess, ResolvedJavaMethod method, GraphBuilderConfiguration graphBuilderConfig, OptimisticOptimizations optimisticOpts, | |
115 LIRFrameStateBuilder frameState, BytecodeStream stream, ProfilingInfo profilingInfo, ConstantPool constantPool, int entryBCI, Backend backend) { | |
116 | |
117 super(metaAccess, method, graphBuilderConfig, optimisticOpts, frameState, stream, profilingInfo, constantPool, entryBCI); | |
118 this.backend = backend; | |
119 } | |
120 | |
121 protected void build() { | |
122 if (PrintProfilingInformation.getValue()) { | |
123 TTY.println("Profiling info for " + MetaUtil.format("%H.%n(%p)", method)); | |
124 TTY.println(MetaUtil.indent(MetaUtil.profileToString(profilingInfo, method, CodeUtil.NEW_LINE), " ")); | |
125 } | |
126 | |
127 try (Indent indent = Debug.logAndIndent("build graph for %s", method)) { | |
128 | |
129 // compute the block map, setup exception handlers and get the entrypoint(s) | |
130 BciBlockMapping blockMap = BciBlockMapping.create(method); | |
131 loopHeaders = blockMap.loopHeaders; | |
132 | |
133 // add predecessors | |
134 for (BciBlock block : blockMap.blocks) { | |
135 for (BciBlock successor : block.getSuccessors()) { | |
136 successor.getPredecessors().add(block); | |
137 } | |
142 } | 138 } |
143 } | 139 |
144 | 140 if (isSynchronized(method.getModifiers())) { |
145 if (isSynchronized(method.getModifiers())) { | 141 throw GraalInternalError.unimplemented("Handle synchronized methods"); |
146 throw GraalInternalError.unimplemented("Handle synchronized methods"); | 142 } |
147 } | 143 |
148 | 144 // TODO: clear non live locals |
149 // TODO: clear non live locals | 145 |
150 | 146 currentBlock = blockMap.startBlock; |
151 currentBlock = blockMap.startBlock; | 147 if (blockMap.startBlock.isLoopHeader) { |
152 if (blockMap.startBlock.isLoopHeader) { | 148 throw GraalInternalError.unimplemented("Handle start block as loop header"); |
153 throw GraalInternalError.unimplemented("Handle start block as loop header"); | 149 } |
154 } | 150 |
155 | 151 // add loops ? how do we add looks when we haven't parsed the bytecode? |
156 // add loops ? how do we add looks when we haven't parsed the bytecode? | 152 |
157 | 153 // create the control flow graph |
158 // create the control flow graph | 154 LIRControlFlowGraph cfg = new LIRControlFlowGraph(blockMap.blocks.toArray(new BciBlock[0]), new Loop[0]); |
159 LIRControlFlowGraph cfg = new LIRControlFlowGraph(blockMap.blocks.toArray(new BciBlock[0]), new Loop[0]); | 155 |
160 | 156 BlocksToDoubles blockProbabilities = new BlocksToDoubles(blockMap.blocks.size()); |
161 BlocksToDoubles blockProbabilities = new BlocksToDoubles(blockMap.blocks.size()); | 157 for (BciBlock b : blockMap.blocks) { |
162 for (BciBlock b : blockMap.blocks) { | 158 blockProbabilities.put(b, 1); |
163 blockProbabilities.put(b, 1); | 159 } |
164 } | 160 |
165 | 161 // create the LIR |
166 // create the LIR | 162 List<? extends AbstractBlock<?>> linearScanOrder = ComputeBlockOrder.computeLinearScanOrder(blockMap.blocks.size(), blockMap.startBlock, blockProbabilities); |
167 List<? extends AbstractBlock<?>> linearScanOrder = ComputeBlockOrder.computeLinearScanOrder(blockMap.blocks.size(), blockMap.startBlock, blockProbabilities); | 163 List<? extends AbstractBlock<?>> codeEmittingOrder = ComputeBlockOrder.computeCodeEmittingOrder(blockMap.blocks.size(), blockMap.startBlock, blockProbabilities); |
168 List<? extends AbstractBlock<?>> codeEmittingOrder = ComputeBlockOrder.computeCodeEmittingOrder(blockMap.blocks.size(), blockMap.startBlock, blockProbabilities); | 164 LIR lir = new LIR(cfg, linearScanOrder, codeEmittingOrder); |
169 LIR lir = new LIR(cfg, linearScanOrder, codeEmittingOrder); | 165 |
170 | 166 FrameMap frameMap = backend.newFrameMap(); |
171 FrameMap frameMap = backend.newFrameMap(); | 167 TargetDescription target = backend.getTarget(); |
172 TargetDescription target = backend.getTarget(); | 168 CallingConvention cc = CodeUtil.getCallingConvention(backend.getProviders().getCodeCache(), CallingConvention.Type.JavaCallee, method, false); |
173 CallingConvention cc = CodeUtil.getCallingConvention(backend.getProviders().getCodeCache(), CallingConvention.Type.JavaCallee, method, false); | 169 this.lirGenRes = backend.newLIRGenerationResult(lir, frameMap, null); |
174 this.lirGenRes = backend.newLIRGenerationResult(lir, frameMap, null); | 170 this.lirGen = backend.newLIRGenerator(cc, lirGenRes); |
175 this.lirGen = backend.newLIRGenerator(cc, lirGenRes); | 171 |
176 | 172 try (Scope ds = Debug.scope("BackEnd", lir)) { |
177 try (Scope ds = Debug.scope("BackEnd", lir)) { | 173 try (Scope s = Debug.scope("LIRGen", lirGen)) { |
178 try (Scope s = Debug.scope("LIRGen", lirGen)) { | 174 |
179 | 175 // possibly add all the arguments to slots in the local variable array |
180 // possibly add all the arguments to slots in the local variable array | 176 |
181 | 177 for (BciBlock block : blockMap.blocks) { |
182 for (BciBlock block : blockMap.blocks) { | 178 } |
179 | |
180 lirGen.beforeRegisterAllocation(); | |
181 Debug.dump(lir, "After LIR generation"); | |
182 } catch (Throwable e) { | |
183 throw Debug.handle(e); | |
183 } | 184 } |
184 | 185 |
185 lirGen.beforeRegisterAllocation(); | 186 try (Scope s = Debug.scope("Allocator")) { |
186 Debug.dump(lir, "After LIR generation"); | 187 |
187 } catch (Throwable e) { | 188 if (backend.shouldAllocateRegisters()) { |
188 throw Debug.handle(e); | 189 new LinearScan(target, lir, frameMap).allocate(); |
189 } | 190 } |
190 | 191 } catch (Throwable e) { |
191 try (Scope s = Debug.scope("Allocator")) { | 192 throw Debug.handle(e); |
192 | |
193 if (backend.shouldAllocateRegisters()) { | |
194 new LinearScan(target, lir, frameMap).allocate(); | |
195 } | 193 } |
196 } catch (Throwable e) { | 194 } catch (Throwable e) { |
197 throw Debug.handle(e); | 195 throw Debug.handle(e); |
198 } | 196 } |
199 } catch (Throwable e) { | 197 } catch (Throwable e) { |
200 throw Debug.handle(e); | 198 throw Debug.handle(e); |
201 } | 199 } |
202 } catch (Throwable e) { | 200 } |
203 throw Debug.handle(e); | 201 |
204 } | 202 @Override |
205 } | 203 protected void handleUnresolvedLoadConstant(JavaType type) { |
206 | 204 // TODO Auto-generated method stub |
207 public void setParameter(int i, Variable emitMove) { | 205 throw GraalInternalError.unimplemented("Auto-generated method stub"); |
208 frameState.storeLocal(i, emitMove); | 206 } |
209 } | 207 |
210 | 208 @Override |
211 public void processBlock(BciBlock block) { | 209 protected void handleUnresolvedCheckCast(JavaType type, Value object) { |
212 // TODO Auto-generated method stub | 210 // TODO Auto-generated method stub |
213 throw GraalInternalError.unimplemented("Auto-generated method stub"); | 211 throw GraalInternalError.unimplemented("Auto-generated method stub"); |
212 } | |
213 | |
214 @Override | |
215 protected void handleUnresolvedInstanceOf(JavaType type, Value object) { | |
216 // TODO Auto-generated method stub | |
217 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
218 } | |
219 | |
220 @Override | |
221 protected void handleUnresolvedNewInstance(JavaType type) { | |
222 // TODO Auto-generated method stub | |
223 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
224 } | |
225 | |
226 @Override | |
227 protected void handleUnresolvedNewObjectArray(JavaType type, Value length) { | |
228 // TODO Auto-generated method stub | |
229 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
230 } | |
231 | |
232 @Override | |
233 protected void handleUnresolvedNewMultiArray(JavaType type, List<Value> dims) { | |
234 // TODO Auto-generated method stub | |
235 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
236 } | |
237 | |
238 @Override | |
239 protected void handleUnresolvedLoadField(JavaField field, Value receiver) { | |
240 // TODO Auto-generated method stub | |
241 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
242 } | |
243 | |
244 @Override | |
245 protected void handleUnresolvedStoreField(JavaField field, Value value, Value receiver) { | |
246 // TODO Auto-generated method stub | |
247 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
248 } | |
249 | |
250 @Override | |
251 protected void handleUnresolvedExceptionType(Representation representation, JavaType type) { | |
252 // TODO Auto-generated method stub | |
253 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
254 } | |
255 | |
256 @Override | |
257 protected Value genLoadIndexed(Value index, Value array, Kind kind) { | |
258 // TODO Auto-generated method stub | |
259 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
260 } | |
261 | |
262 @Override | |
263 protected Value genStoreIndexed(Value array, Value index, Kind kind, Value value) { | |
264 // TODO Auto-generated method stub | |
265 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
266 } | |
267 | |
268 @Override | |
269 protected Value genIntegerAdd(Kind kind, Value x, Value y) { | |
270 // TODO Auto-generated method stub | |
271 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
272 } | |
273 | |
274 @Override | |
275 protected Value genIntegerSub(Kind kind, Value x, Value y) { | |
276 // TODO Auto-generated method stub | |
277 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
278 } | |
279 | |
280 @Override | |
281 protected Value genIntegerMul(Kind kind, Value x, Value y) { | |
282 // TODO Auto-generated method stub | |
283 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
284 } | |
285 | |
286 @Override | |
287 protected Value genFloatAdd(Kind kind, Value x, Value y, boolean isStrictFP) { | |
288 // TODO Auto-generated method stub | |
289 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
290 } | |
291 | |
292 @Override | |
293 protected Value genFloatSub(Kind kind, Value x, Value y, boolean isStrictFP) { | |
294 // TODO Auto-generated method stub | |
295 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
296 } | |
297 | |
298 @Override | |
299 protected Value genFloatMul(Kind kind, Value x, Value y, boolean isStrictFP) { | |
300 // TODO Auto-generated method stub | |
301 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
302 } | |
303 | |
304 @Override | |
305 protected Value genFloatDiv(Kind kind, Value x, Value y, boolean isStrictFP) { | |
306 // TODO Auto-generated method stub | |
307 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
308 } | |
309 | |
310 @Override | |
311 protected Value genFloatRem(Kind kind, Value x, Value y, boolean isStrictFP) { | |
312 // TODO Auto-generated method stub | |
313 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
314 } | |
315 | |
316 @Override | |
317 protected Value genIntegerDiv(Kind kind, Value x, Value y) { | |
318 // TODO Auto-generated method stub | |
319 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
320 } | |
321 | |
322 @Override | |
323 protected Value genIntegerRem(Kind kind, Value x, Value y) { | |
324 // TODO Auto-generated method stub | |
325 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
326 } | |
327 | |
328 @Override | |
329 protected Value genNegateOp(Value x) { | |
330 // TODO Auto-generated method stub | |
331 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
332 } | |
333 | |
334 @Override | |
335 protected Value genLeftShift(Kind kind, Value x, Value y) { | |
336 // TODO Auto-generated method stub | |
337 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
338 } | |
339 | |
340 @Override | |
341 protected Value genRightShift(Kind kind, Value x, Value y) { | |
342 // TODO Auto-generated method stub | |
343 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
344 } | |
345 | |
346 @Override | |
347 protected Value genUnsignedRightShift(Kind kind, Value x, Value y) { | |
348 // TODO Auto-generated method stub | |
349 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
350 } | |
351 | |
352 @Override | |
353 protected Value genAnd(Kind kind, Value x, Value y) { | |
354 // TODO Auto-generated method stub | |
355 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
356 } | |
357 | |
358 @Override | |
359 protected Value genOr(Kind kind, Value x, Value y) { | |
360 // TODO Auto-generated method stub | |
361 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
362 } | |
363 | |
364 @Override | |
365 protected Value genXor(Kind kind, Value x, Value y) { | |
366 // TODO Auto-generated method stub | |
367 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
368 } | |
369 | |
370 @Override | |
371 protected Value genNormalizeCompare(Value x, Value y, boolean isUnorderedLess) { | |
372 // TODO Auto-generated method stub | |
373 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
374 } | |
375 | |
376 @Override | |
377 protected Value genFloatConvert(FloatConvert op, Value input) { | |
378 // TODO Auto-generated method stub | |
379 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
380 } | |
381 | |
382 @Override | |
383 protected Value genNarrow(Value input, int bitCount) { | |
384 // TODO Auto-generated method stub | |
385 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
386 } | |
387 | |
388 @Override | |
389 protected Value genSignExtend(Value input, int bitCount) { | |
390 // TODO Auto-generated method stub | |
391 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
392 } | |
393 | |
394 @Override | |
395 protected Value genZeroExtend(Value input, int bitCount) { | |
396 // TODO Auto-generated method stub | |
397 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
398 } | |
399 | |
400 @Override | |
401 protected Value genObjectEquals(Value x, Value y) { | |
402 // TODO Auto-generated method stub | |
403 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
404 } | |
405 | |
406 @Override | |
407 protected Value genIntegerEquals(Value x, Value y) { | |
408 // TODO Auto-generated method stub | |
409 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
410 } | |
411 | |
412 @Override | |
413 protected Value genIntegerLessThan(Value x, Value y) { | |
414 // TODO Auto-generated method stub | |
415 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
416 } | |
417 | |
418 @Override | |
419 protected Value genUnique(Value x) { | |
420 // TODO Auto-generated method stub | |
421 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
422 } | |
423 | |
424 @Override | |
425 protected Value genIf(Value condition, Value falseSuccessor, Value trueSuccessor, double d) { | |
426 // TODO Auto-generated method stub | |
427 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
428 } | |
429 | |
430 @Override | |
431 protected void genThrow() { | |
432 // TODO Auto-generated method stub | |
433 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
434 } | |
435 | |
436 @Override | |
437 protected Value genCheckCast(ResolvedJavaType type, Value object, JavaTypeProfile profileForTypeCheck, boolean b) { | |
438 // TODO Auto-generated method stub | |
439 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
440 } | |
441 | |
442 @Override | |
443 protected Value genInstanceOf(ResolvedJavaType type, Value object, JavaTypeProfile profileForTypeCheck) { | |
444 // TODO Auto-generated method stub | |
445 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
446 } | |
447 | |
448 @Override | |
449 protected Value genConditional(Value x) { | |
450 // TODO Auto-generated method stub | |
451 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
452 } | |
453 | |
454 @Override | |
455 protected Value createNewInstance(ResolvedJavaType type, boolean fillContents) { | |
456 // TODO Auto-generated method stub | |
457 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
458 } | |
459 | |
460 @Override | |
461 protected Value createNewArray(ResolvedJavaType elementType, Value length, boolean fillContents) { | |
462 // TODO Auto-generated method stub | |
463 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
464 } | |
465 | |
466 @Override | |
467 protected Value createNewMultiArray(ResolvedJavaType type, List<Value> dims) { | |
468 // TODO Auto-generated method stub | |
469 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
470 } | |
471 | |
472 @Override | |
473 protected Value genLoadField(Value receiver, ResolvedJavaField field) { | |
474 // TODO Auto-generated method stub | |
475 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
476 } | |
477 | |
478 @Override | |
479 protected void emitNullCheck(Value receiver) { | |
480 // TODO Auto-generated method stub | |
481 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
482 } | |
483 | |
484 @Override | |
485 protected void emitBoundsCheck(Value index, Value length) { | |
486 // TODO Auto-generated method stub | |
487 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
488 } | |
489 | |
490 @Override | |
491 protected Value genArrayLength(Value x) { | |
492 // TODO Auto-generated method stub | |
493 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
494 } | |
495 | |
496 @Override | |
497 protected Value genStoreField(Value receiver, ResolvedJavaField field, Value value) { | |
498 // TODO Auto-generated method stub | |
499 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
500 } | |
501 | |
502 @Override | |
503 protected void genInvokeStatic(JavaMethod target) { | |
504 // TODO Auto-generated method stub | |
505 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
506 } | |
507 | |
508 @Override | |
509 protected void genInvokeInterface(JavaMethod target) { | |
510 // TODO Auto-generated method stub | |
511 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
512 } | |
513 | |
514 @Override | |
515 protected void genInvokeDynamic(JavaMethod target) { | |
516 // TODO Auto-generated method stub | |
517 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
518 } | |
519 | |
520 @Override | |
521 protected void genInvokeVirtual(JavaMethod target) { | |
522 // TODO Auto-generated method stub | |
523 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
524 } | |
525 | |
526 @Override | |
527 protected void genInvokeSpecial(JavaMethod target) { | |
528 // TODO Auto-generated method stub | |
529 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
530 } | |
531 | |
532 @Override | |
533 protected void genReturn(Value x) { | |
534 // TODO Auto-generated method stub | |
535 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
536 } | |
537 | |
538 @Override | |
539 protected Value genMonitorEnter(Value x) { | |
540 // TODO Auto-generated method stub | |
541 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
542 } | |
543 | |
544 @Override | |
545 protected Value genMonitorExit(Value x, Value returnValue) { | |
546 // TODO Auto-generated method stub | |
547 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
548 } | |
549 | |
550 @Override | |
551 protected void genJsr(int dest) { | |
552 // TODO Auto-generated method stub | |
553 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
554 } | |
555 | |
556 @Override | |
557 protected void genRet(int localIndex) { | |
558 // TODO Auto-generated method stub | |
559 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
560 } | |
561 | |
562 @Override | |
563 protected void setBlockSuccessor(Value switchNode, int i, Value createBlockTarget) { | |
564 // TODO Auto-generated method stub | |
565 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
566 } | |
567 | |
568 @Override | |
569 protected Value genIntegerSwitch(Value value, int size, int[] keys, double[] keyProbabilities, int[] keySuccessors) { | |
570 // TODO Auto-generated method stub | |
571 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
572 } | |
573 | |
574 @Override | |
575 protected Value appendConstant(Constant constant) { | |
576 // TODO Auto-generated method stub | |
577 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
578 } | |
579 | |
580 @Override | |
581 protected Value append(Value v) { | |
582 // TODO Auto-generated method stub | |
583 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
584 } | |
585 | |
586 @Override | |
587 protected Value genDeoptimization() { | |
588 // TODO Auto-generated method stub | |
589 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
590 } | |
591 | |
592 @Override | |
593 protected Value createTarget(BciBlock trueBlock, AbstractFrameStateBuilder<Value> state) { | |
594 // TODO Auto-generated method stub | |
595 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
596 } | |
597 | |
598 @Override | |
599 protected Value createBlockTarget(double probability, BciBlock bciBlock, AbstractFrameStateBuilder<Value> stateAfter) { | |
600 // TODO Auto-generated method stub | |
601 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
602 } | |
603 | |
604 @Override | |
605 protected void processBlock(BciBlock block) { | |
606 // TODO Auto-generated method stub | |
607 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
608 } | |
609 | |
610 @Override | |
611 protected void appendGoto(Value target) { | |
612 // TODO Auto-generated method stub | |
613 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
614 } | |
615 | |
616 @Override | |
617 protected void iterateBytecodesForBlock(BciBlock block) { | |
618 // TODO Auto-generated method stub | |
619 throw GraalInternalError.unimplemented("Auto-generated method stub"); | |
620 } | |
621 | |
214 } | 622 } |
215 } | 623 } |