Mercurial > hg > truffle
comparison src/share/vm/c1/c1_Optimizer.cpp @ 1783:d5d065957597
6953144: Tiered compilation
Summary: Infrastructure for tiered compilation support (interpreter + c1 + c2) for 32 and 64 bit. Simple tiered policy implementation.
Reviewed-by: kvn, never, phh, twisti
author | iveresov |
---|---|
date | Fri, 03 Sep 2010 17:51:07 -0700 |
parents | b812ff5abc73 |
children | f02a8bbe6ed4 |
comparison
equal
deleted
inserted
replaced
1782:f353275af40e | 1783:d5d065957597 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
428 void do_UnsafeGetObject(UnsafeGetObject* x); | 428 void do_UnsafeGetObject(UnsafeGetObject* x); |
429 void do_UnsafePutObject(UnsafePutObject* x); | 429 void do_UnsafePutObject(UnsafePutObject* x); |
430 void do_UnsafePrefetchRead (UnsafePrefetchRead* x); | 430 void do_UnsafePrefetchRead (UnsafePrefetchRead* x); |
431 void do_UnsafePrefetchWrite(UnsafePrefetchWrite* x); | 431 void do_UnsafePrefetchWrite(UnsafePrefetchWrite* x); |
432 void do_ProfileCall (ProfileCall* x); | 432 void do_ProfileCall (ProfileCall* x); |
433 void do_ProfileCounter (ProfileCounter* x); | 433 void do_ProfileInvoke (ProfileInvoke* x); |
434 }; | 434 }; |
435 | 435 |
436 | 436 |
437 // Because of a static contained within (for the purpose of iteration | 437 // Because of a static contained within (for the purpose of iteration |
438 // over instructions), it is only valid to have one of these active at | 438 // over instructions), it is only valid to have one of these active at |
596 void NullCheckVisitor::do_UnsafeGetObject(UnsafeGetObject* x) {} | 596 void NullCheckVisitor::do_UnsafeGetObject(UnsafeGetObject* x) {} |
597 void NullCheckVisitor::do_UnsafePutObject(UnsafePutObject* x) {} | 597 void NullCheckVisitor::do_UnsafePutObject(UnsafePutObject* x) {} |
598 void NullCheckVisitor::do_UnsafePrefetchRead (UnsafePrefetchRead* x) {} | 598 void NullCheckVisitor::do_UnsafePrefetchRead (UnsafePrefetchRead* x) {} |
599 void NullCheckVisitor::do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) {} | 599 void NullCheckVisitor::do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) {} |
600 void NullCheckVisitor::do_ProfileCall (ProfileCall* x) { nce()->clear_last_explicit_null_check(); } | 600 void NullCheckVisitor::do_ProfileCall (ProfileCall* x) { nce()->clear_last_explicit_null_check(); } |
601 void NullCheckVisitor::do_ProfileCounter (ProfileCounter* x) {} | 601 void NullCheckVisitor::do_ProfileInvoke (ProfileInvoke* x) {} |
602 | 602 |
603 | 603 |
604 void NullCheckEliminator::visit(Value* p) { | 604 void NullCheckEliminator::visit(Value* p) { |
605 assert(*p != NULL, "should not find NULL instructions"); | 605 assert(*p != NULL, "should not find NULL instructions"); |
606 if (visitable(*p)) { | 606 if (visitable(*p)) { |