--- a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp Fri Jul 01 10:35:54 2011 -0700
+++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp Fri Jul 01 10:37:37 2011 -0700
@@ -33,6 +33,7 @@
#include "compiler/compileBroker.hpp"
#include "interpreter/bytecode.hpp"
#include "runtime/sharedRuntime.hpp"
+#include "runtime/compilationPolicy.hpp"
#include "utilities/bitMap.inline.hpp"
class BlockListBuilder VALUE_OBJ_CLASS_SPEC {
@@ -3395,8 +3396,8 @@
bool GraphBuilder::try_inline_full(ciMethod* callee, bool holder_known) {
assert(!callee->is_native(), "callee must not be native");
- if (count_backedges() && callee->has_loops()) {
- INLINE_BAILOUT("too complex for tiered");
+ if (CompilationPolicy::policy()->should_not_inline(compilation()->env(), callee)) {
+ INLINE_BAILOUT("inlining prohibited by policy");
}
// first perform tests of things it's not possible to inline
if (callee->has_exception_handlers() &&