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 }