mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
6849984: Value methods for platform dependent math functions constant fold incorrectly
Reviewed-by: kvn, twisti
This commit is contained in:
parent
8214fc3a3b
commit
72d0f638c7
11 changed files with 248 additions and 24 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 2000-2010 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -74,6 +74,16 @@ bool CompilationPolicy::canBeCompiled(methodHandle m) {
|
|||
if (m->is_abstract()) return false;
|
||||
if (DontCompileHugeMethods && m->code_size() > HugeMethodLimit) return false;
|
||||
|
||||
// Math intrinsics should never be compiled as this can lead to
|
||||
// monotonicity problems because the interpreter will prefer the
|
||||
// compiled code to the intrinsic version. This can't happen in
|
||||
// production because the invocation counter can't be incremented
|
||||
// but we shouldn't expose the system to this problem in testing
|
||||
// modes.
|
||||
if (!AbstractInterpreter::can_be_compiled(m)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return !m->is_not_compilable();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue