mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 23:04:50 +02:00
Merge
This commit is contained in:
commit
1a5787d42e
172 changed files with 9885 additions and 597 deletions
|
@ -106,6 +106,7 @@ class TypedMethodOptionMatcher;
|
|||
|
||||
static BasicMatcher* lists[OracleCommandCount] = { 0, };
|
||||
static TypedMethodOptionMatcher* option_list = NULL;
|
||||
static bool any_set = false;
|
||||
|
||||
class TypedMethodOptionMatcher : public MethodMatcher {
|
||||
private:
|
||||
|
@ -292,6 +293,7 @@ static void add_option_string(TypedMethodOptionMatcher* matcher,
|
|||
matcher->init(option, get_type_for<T>(), option_list);
|
||||
matcher->set_value<T>(value);
|
||||
option_list = matcher;
|
||||
any_set = true;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -308,7 +310,9 @@ static void add_predicate(OracleCommand command, BasicMatcher* bm) {
|
|||
}
|
||||
bm->set_next(lists[command]);
|
||||
lists[command] = bm;
|
||||
|
||||
if ((command != DontInlineCommand) && (command != InlineCommand)) {
|
||||
any_set = true;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -324,6 +328,10 @@ bool CompilerOracle::has_option_value(const methodHandle& method, const char* op
|
|||
return false;
|
||||
}
|
||||
|
||||
bool CompilerOracle::has_any_option() {
|
||||
return any_set;
|
||||
}
|
||||
|
||||
// Explicit instantiation for all OptionTypes supported.
|
||||
template bool CompilerOracle::has_option_value<intx>(const methodHandle& method, const char* option, intx& value);
|
||||
template bool CompilerOracle::has_option_value<uintx>(const methodHandle& method, const char* option, uintx& value);
|
||||
|
@ -337,15 +345,10 @@ bool CompilerOracle::has_option_string(const methodHandle& method, const char* o
|
|||
return value;
|
||||
}
|
||||
|
||||
bool CompilerOracle::should_exclude(const methodHandle& method, bool& quietly) {
|
||||
quietly = true;
|
||||
if (lists[ExcludeCommand] != NULL) {
|
||||
if (lists[ExcludeCommand]->match(method)) {
|
||||
quietly = _quiet;
|
||||
return true;
|
||||
}
|
||||
bool CompilerOracle::should_exclude(const methodHandle& method) {
|
||||
if (check_predicate(ExcludeCommand, method)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (lists[CompileOnlyCommand] != NULL) {
|
||||
return !lists[CompileOnlyCommand]->match(method);
|
||||
}
|
||||
|
@ -356,8 +359,6 @@ bool CompilerOracle::should_inline(const methodHandle& method) {
|
|||
return (check_predicate(InlineCommand, method));
|
||||
}
|
||||
|
||||
// Check both DontInlineCommand and ExcludeCommand here
|
||||
// - consistent behavior for all compilers
|
||||
bool CompilerOracle::should_not_inline(const methodHandle& method) {
|
||||
return check_predicate(DontInlineCommand, method) || check_predicate(ExcludeCommand, method);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue