8140424: don't prefix developer and notproduct flag variables with CONST_ in product builds

Reviewed-by: goetz, stefank
This commit is contained in:
Christian Thalinger 2015-11-11 16:32:17 -10:00
parent c4ce43c1ac
commit 6896030b96
33 changed files with 138 additions and 200 deletions

View file

@ -2697,7 +2697,7 @@ address CppInterpreterGenerator::generate_normal_entry(bool synchronized) {
// Provide a debugger breakpoint in the frame manager if breakpoints // Provide a debugger breakpoint in the frame manager if breakpoints
// in osr'd methods are requested. // in osr'd methods are requested.
#ifdef COMPILER2 #ifdef COMPILER2
NOT_PRODUCT( if (OptoBreakpointOSR) { __ illtrap(); } ) if (OptoBreakpointOSR) { __ illtrap(); }
#endif #endif
// Load callee's pointer to locals array from callee's state. // Load callee's pointer to locals array from callee's state.

View file

@ -358,7 +358,6 @@ void VM_Version::initialize() {
FLAG_SET_DEFAULT(UseUnalignedAccesses, false); FLAG_SET_DEFAULT(UseUnalignedAccesses, false);
} }
#ifndef PRODUCT
if (PrintMiscellaneous && Verbose) { if (PrintMiscellaneous && Verbose) {
tty->print_cr("L1 data cache line size: %u", L1_data_cache_line_size()); tty->print_cr("L1 data cache line size: %u", L1_data_cache_line_size());
tty->print_cr("L2 data cache line size: %u", L2_data_cache_line_size()); tty->print_cr("L2 data cache line size: %u", L2_data_cache_line_size());
@ -391,7 +390,6 @@ void VM_Version::initialize() {
tty->print_cr("ContendedPaddingWidth %d", (int) ContendedPaddingWidth); tty->print_cr("ContendedPaddingWidth %d", (int) ContendedPaddingWidth);
} }
} }
#endif // PRODUCT
} }
void VM_Version::print_features() { void VM_Version::print_features() {
@ -400,7 +398,7 @@ void VM_Version::print_features() {
int VM_Version::determine_features() { int VM_Version::determine_features() {
if (UseV8InstrsOnly) { if (UseV8InstrsOnly) {
NOT_PRODUCT(if (PrintMiscellaneous && Verbose) tty->print_cr("Version is Forced-V8");) if (PrintMiscellaneous && Verbose) { tty->print_cr("Version is Forced-V8"); }
return generic_v8_m; return generic_v8_m;
} }
@ -416,12 +414,12 @@ int VM_Version::determine_features() {
if (is_T_family(features)) { if (is_T_family(features)) {
// Happy to accomodate... // Happy to accomodate...
} else { } else {
NOT_PRODUCT(if (PrintMiscellaneous && Verbose) tty->print_cr("Version is Forced-Niagara");) if (PrintMiscellaneous && Verbose) { tty->print_cr("Version is Forced-Niagara"); }
features |= T_family_m; features |= T_family_m;
} }
} else { } else {
if (is_T_family(features) && !FLAG_IS_DEFAULT(UseNiagaraInstrs)) { if (is_T_family(features) && !FLAG_IS_DEFAULT(UseNiagaraInstrs)) {
NOT_PRODUCT(if (PrintMiscellaneous && Verbose) tty->print_cr("Version is Forced-Not-Niagara");) if (PrintMiscellaneous && Verbose) { tty->print_cr("Version is Forced-Not-Niagara"); }
features &= ~(T_family_m | T1_model_m); features &= ~(T_family_m | T1_model_m);
} else { } else {
// Happy to accomodate... // Happy to accomodate...

View file

@ -66,12 +66,12 @@ int VM_Version::platform_features(int features) {
features = generic_v9_m; features = generic_v9_m;
if (detect_niagara()) { if (detect_niagara()) {
NOT_PRODUCT(if (PrintMiscellaneous && Verbose) tty->print_cr("Detected Linux on Niagara");) if (PrintMiscellaneous && Verbose) { tty->print_cr("Detected Linux on Niagara"); }
features = niagara1_m | T_family_m; features = niagara1_m | T_family_m;
} }
if (detect_M_family()) { if (detect_M_family()) {
NOT_PRODUCT(if (PrintMiscellaneous && Verbose) tty->print_cr("Detected Linux on M family");) if (PrintMiscellaneous && Verbose) { tty->print_cr("Detected Linux on M family"); }
features = sun4v_m | generic_v9_m | M_family_m | T_family_m; features = sun4v_m | generic_v9_m | M_family_m | T_family_m;
} }

View file

@ -707,12 +707,10 @@ BlockBegin* GraphBuilder::ScopeData::block_at(int bci) {
BlockBegin* block = bci2block()->at(bci); BlockBegin* block = bci2block()->at(bci);
if (block != NULL && block == parent()->bci2block()->at(bci)) { if (block != NULL && block == parent()->bci2block()->at(bci)) {
BlockBegin* new_block = new BlockBegin(block->bci()); BlockBegin* new_block = new BlockBegin(block->bci());
#ifndef PRODUCT
if (PrintInitialBlockList) { if (PrintInitialBlockList) {
tty->print_cr("CFG: cloned block %d (bci %d) as block %d for jsr", tty->print_cr("CFG: cloned block %d (bci %d) as block %d for jsr",
block->block_id(), block->bci(), new_block->block_id()); block->block_id(), block->bci(), new_block->block_id());
} }
#endif
// copy data from cloned blocked // copy data from cloned blocked
new_block->set_depth_first_number(block->depth_first_number()); new_block->set_depth_first_number(block->depth_first_number());
if (block->is_set(BlockBegin::parser_loop_header_flag)) new_block->set(BlockBegin::parser_loop_header_flag); if (block->is_set(BlockBegin::parser_loop_header_flag)) new_block->set(BlockBegin::parser_loop_header_flag);
@ -3790,12 +3788,10 @@ bool GraphBuilder::try_inline_full(ciMethod* callee, bool holder_known, Bytecode
cont = new BlockBegin(next_bci()); cont = new BlockBegin(next_bci());
// low number so that continuation gets parsed as early as possible // low number so that continuation gets parsed as early as possible
cont->set_depth_first_number(0); cont->set_depth_first_number(0);
#ifndef PRODUCT
if (PrintInitialBlockList) { if (PrintInitialBlockList) {
tty->print_cr("CFG: created block %d (bci %d) as continuation for inline at bci %d", tty->print_cr("CFG: created block %d (bci %d) as continuation for inline at bci %d",
cont->block_id(), cont->bci(), bci()); cont->block_id(), cont->bci(), bci());
} }
#endif
continuation_existed = false; continuation_existed = false;
} }
// Record number of predecessors of continuation block before // Record number of predecessors of continuation block before

View file

@ -572,11 +572,9 @@ void CodeCache::scavenge_root_nmethods_do(CodeBlobClosure* f) {
assert(cur->on_scavenge_root_list(), "else shouldn't be on this list"); assert(cur->on_scavenge_root_list(), "else shouldn't be on this list");
bool is_live = (!cur->is_zombie() && !cur->is_unloaded()); bool is_live = (!cur->is_zombie() && !cur->is_unloaded());
#ifndef PRODUCT
if (TraceScavenge) { if (TraceScavenge) {
cur->print_on(tty, is_live ? "scavenge root" : "dead scavenge root"); tty->cr(); cur->print_on(tty, is_live ? "scavenge root" : "dead scavenge root"); tty->cr();
} }
#endif //PRODUCT
if (is_live) { if (is_live) {
// Perform cur->oops_do(f), maybe just once per nmethod. // Perform cur->oops_do(f), maybe just once per nmethod.
f->do_code_blob(cur); f->do_code_blob(cur);

View file

@ -2250,7 +2250,7 @@ bool nmethod::test_set_oops_do_mark() {
break; break;
} }
// Mark was clear when we first saw this guy. // Mark was clear when we first saw this guy.
NOT_PRODUCT(if (TraceScavenge) print_on(tty, "oops_do, mark")); if (TraceScavenge) { print_on(tty, "oops_do, mark"); }
return false; return false;
} }
} }
@ -2259,7 +2259,7 @@ bool nmethod::test_set_oops_do_mark() {
} }
void nmethod::oops_do_marking_prologue() { void nmethod::oops_do_marking_prologue() {
NOT_PRODUCT(if (TraceScavenge) tty->print_cr("[oops_do_marking_prologue")); if (TraceScavenge) { tty->print_cr("[oops_do_marking_prologue"); }
assert(_oops_do_mark_nmethods == NULL, "must not call oops_do_marking_prologue twice in a row"); assert(_oops_do_mark_nmethods == NULL, "must not call oops_do_marking_prologue twice in a row");
// We use cmpxchg_ptr instead of regular assignment here because the user // We use cmpxchg_ptr instead of regular assignment here because the user
// may fork a bunch of threads, and we need them all to see the same state. // may fork a bunch of threads, and we need them all to see the same state.
@ -2275,13 +2275,13 @@ void nmethod::oops_do_marking_epilogue() {
nmethod* next = cur->_oops_do_mark_link; nmethod* next = cur->_oops_do_mark_link;
cur->_oops_do_mark_link = NULL; cur->_oops_do_mark_link = NULL;
cur->verify_oop_relocations(); cur->verify_oop_relocations();
NOT_PRODUCT(if (TraceScavenge) cur->print_on(tty, "oops_do, unmark")); if (TraceScavenge) { cur->print_on(tty, "oops_do, unmark"); }
cur = next; cur = next;
} }
void* required = _oops_do_mark_nmethods; void* required = _oops_do_mark_nmethods;
void* observed = Atomic::cmpxchg_ptr(NULL, &_oops_do_mark_nmethods, required); void* observed = Atomic::cmpxchg_ptr(NULL, &_oops_do_mark_nmethods, required);
guarantee(observed == required, "no races in this sequential code"); guarantee(observed == required, "no races in this sequential code");
NOT_PRODUCT(if (TraceScavenge) tty->print_cr("oops_do_marking_epilogue]")); if (TraceScavenge) { tty->print_cr("oops_do_marking_epilogue]"); }
} }
class DetectScavengeRoot: public OopClosure { class DetectScavengeRoot: public OopClosure {

View file

@ -67,7 +67,7 @@
cflags(VectorizeDebug, bool, false, VectorizeDebug) \ cflags(VectorizeDebug, bool, false, VectorizeDebug) \
cflags(CloneMapDebug, bool, false, CloneMapDebug) \ cflags(CloneMapDebug, bool, false, CloneMapDebug) \
cflags(DoReserveCopyInSuperWordDebug, bool, false, DoReserveCopyInSuperWordDebug) \ cflags(DoReserveCopyInSuperWordDebug, bool, false, DoReserveCopyInSuperWordDebug) \
NOT_PRODUCT( cflags(IGVPrintLevel, intx, PrintIdealGraphLevel, IGVPrintLevel)) \ cflags(IGVPrintLevel, intx, PrintIdealGraphLevel, IGVPrintLevel) \
cflags(MaxNodeLimit, intx, MaxNodeLimit, MaxNodeLimit) cflags(MaxNodeLimit, intx, MaxNodeLimit, MaxNodeLimit)
#else #else
#define compilerdirectives_c2_flags(cflags) #define compilerdirectives_c2_flags(cflags)

View file

@ -1162,7 +1162,6 @@ oop ParNewGeneration::copy_to_survivor_space(ParScanThreadState* par_scan_state,
} }
assert(new_obj != NULL, "just checking"); assert(new_obj != NULL, "just checking");
#ifndef PRODUCT
// This code must come after the CAS test, or it will print incorrect // This code must come after the CAS test, or it will print incorrect
// information. // information.
if (TraceScavenge) { if (TraceScavenge) {
@ -1170,7 +1169,6 @@ oop ParNewGeneration::copy_to_survivor_space(ParScanThreadState* par_scan_state,
is_in_reserved(new_obj) ? "copying" : "tenuring", is_in_reserved(new_obj) ? "copying" : "tenuring",
new_obj->klass()->internal_name(), p2i(old), p2i(new_obj), new_obj->size()); new_obj->klass()->internal_name(), p2i(old), p2i(new_obj), new_obj->size());
} }
#endif
if (forward_ptr == NULL) { if (forward_ptr == NULL) {
oop obj_to_push = new_obj; oop obj_to_push = new_obj;

View file

@ -108,14 +108,11 @@ inline void ParScanClosure::do_oop_work(T* p,
if (m->is_marked()) { // Contains forwarding pointer. if (m->is_marked()) { // Contains forwarding pointer.
new_obj = ParNewGeneration::real_forwardee(obj); new_obj = ParNewGeneration::real_forwardee(obj);
oopDesc::encode_store_heap_oop_not_null(p, new_obj); oopDesc::encode_store_heap_oop_not_null(p, new_obj);
#ifndef PRODUCT
if (TraceScavenge) { if (TraceScavenge) {
gclog_or_tty->print_cr("{%s %s ( " PTR_FORMAT " ) " PTR_FORMAT " -> " PTR_FORMAT " (%d)}", gclog_or_tty->print_cr("{%s %s ( " PTR_FORMAT " ) " PTR_FORMAT " -> " PTR_FORMAT " (%d)}",
"forwarded ", "forwarded ",
new_obj->klass()->internal_name(), p2i(p), p2i((void *)obj), p2i((void *)new_obj), new_obj->size()); new_obj->klass()->internal_name(), p2i(p), p2i((void *)obj), p2i((void *)new_obj), new_obj->size());
} }
#endif
} else { } else {
size_t obj_sz = obj->size_given_klass(objK); size_t obj_sz = obj->size_given_klass(objK);
new_obj = _g->copy_to_survivor_space(_par_scan_state, obj, obj_sz, m); new_obj = _g->copy_to_survivor_space(_par_scan_state, obj, obj_sz, m);

View file

@ -430,7 +430,6 @@ oop PSPromotionManager::oop_promotion_failed(oop obj, markOop obj_mark) {
obj = obj->forwardee(); obj = obj->forwardee();
} }
#ifndef PRODUCT
if (TraceScavenge) { if (TraceScavenge) {
gclog_or_tty->print_cr("{%s %s " PTR_FORMAT " (%d)}", gclog_or_tty->print_cr("{%s %s " PTR_FORMAT " (%d)}",
"promotion-failure", "promotion-failure",
@ -438,7 +437,6 @@ oop PSPromotionManager::oop_promotion_failed(oop obj, markOop obj_mark) {
p2i(obj), obj->size()); p2i(obj), obj->size());
} }
#endif
return obj; return obj;
} }

View file

@ -260,7 +260,6 @@ inline oop PSPromotionManager::copy_to_survivor_space(oop o) {
new_obj = o->forwardee(); new_obj = o->forwardee();
} }
#ifndef PRODUCT
// This code must come after the CAS test, or it will print incorrect // This code must come after the CAS test, or it will print incorrect
// information. // information.
if (TraceScavenge) { if (TraceScavenge) {
@ -268,7 +267,6 @@ inline oop PSPromotionManager::copy_to_survivor_space(oop o) {
should_scavenge(&new_obj) ? "copying" : "tenuring", should_scavenge(&new_obj) ? "copying" : "tenuring",
new_obj->klass()->internal_name(), p2i((void *)o), p2i((void *)new_obj), new_obj->size()); new_obj->klass()->internal_name(), p2i((void *)o), p2i((void *)new_obj), new_obj->size());
} }
#endif
return new_obj; return new_obj;
} }
@ -285,7 +283,6 @@ inline void PSPromotionManager::copy_and_push_safe_barrier(T* p) {
? o->forwardee() ? o->forwardee()
: copy_to_survivor_space<promote_immediately>(o); : copy_to_survivor_space<promote_immediately>(o);
#ifndef PRODUCT
// This code must come after the CAS test, or it will print incorrect // This code must come after the CAS test, or it will print incorrect
// information. // information.
if (TraceScavenge && o->is_forwarded()) { if (TraceScavenge && o->is_forwarded()) {
@ -293,7 +290,6 @@ inline void PSPromotionManager::copy_and_push_safe_barrier(T* p) {
"forwarding", "forwarding",
new_obj->klass()->internal_name(), p2i((void *)o), p2i((void *)new_obj), new_obj->size()); new_obj->klass()->internal_name(), p2i((void *)o), p2i((void *)new_obj), new_obj->size());
} }
#endif
oopDesc::encode_store_heap_oop_not_null(p, new_obj); oopDesc::encode_store_heap_oop_not_null(p, new_obj);

View file

@ -138,7 +138,6 @@ class PSScavengeKlassClosure: public KlassClosure {
// If the klass has not been dirtied we know that there's // If the klass has not been dirtied we know that there's
// no references into the young gen and we can skip it. // no references into the young gen and we can skip it.
#ifndef PRODUCT
if (TraceScavenge) { if (TraceScavenge) {
ResourceMark rm; ResourceMark rm;
gclog_or_tty->print_cr("PSScavengeKlassClosure::do_klass " PTR_FORMAT ", %s, dirty: %s", gclog_or_tty->print_cr("PSScavengeKlassClosure::do_klass " PTR_FORMAT ", %s, dirty: %s",
@ -146,7 +145,6 @@ class PSScavengeKlassClosure: public KlassClosure {
klass->external_name(), klass->external_name(),
klass->has_modified_oops() ? "true" : "false"); klass->has_modified_oops() ? "true" : "false");
} }
#endif
if (klass->has_modified_oops()) { if (klass->has_modified_oops()) {
// Clean the klass since we're going to scavenge all the metadata. // Clean the klass since we're going to scavenge all the metadata.

View file

@ -134,7 +134,6 @@ void FastScanClosure::do_oop(oop* p) { FastScanClosure::do_oop_work(p); }
void FastScanClosure::do_oop(narrowOop* p) { FastScanClosure::do_oop_work(p); } void FastScanClosure::do_oop(narrowOop* p) { FastScanClosure::do_oop_work(p); }
void KlassScanClosure::do_klass(Klass* klass) { void KlassScanClosure::do_klass(Klass* klass) {
#ifndef PRODUCT
if (TraceScavenge) { if (TraceScavenge) {
ResourceMark rm; ResourceMark rm;
gclog_or_tty->print_cr("KlassScanClosure::do_klass " PTR_FORMAT ", %s, dirty: %s", gclog_or_tty->print_cr("KlassScanClosure::do_klass " PTR_FORMAT ", %s, dirty: %s",
@ -142,7 +141,6 @@ void KlassScanClosure::do_klass(Klass* klass) {
klass->external_name(), klass->external_name(),
klass->has_modified_oops() ? "true" : "false"); klass->has_modified_oops() ? "true" : "false");
} }
#endif
// If the klass has not been dirtied we know that there's // If the klass has not been dirtied we know that there's
// no references into the young gen and we can skip it. // no references into the young gen and we can skip it.

View file

@ -542,10 +542,11 @@ static void do_liveness(PhaseRegAlloc* regalloc, PhaseCFG* cfg, Block_List* work
if (i == cfg->number_of_blocks()) { if (i == cfg->number_of_blocks()) {
break; // Got 'em all break; // Got 'em all
} }
#ifndef PRODUCT
if( PrintOpto && Verbose ) if (PrintOpto && Verbose) {
tty->print_cr("retripping live calc"); tty->print_cr("retripping live calc");
#endif }
// Force the issue (expensively): recheck everybody // Force the issue (expensively): recheck everybody
for (i = 1; i < cfg->number_of_blocks(); i++) { for (i = 1; i < cfg->number_of_blocks(); i++) {
worklist->push(cfg->get_block(i)); worklist->push(cfg->get_block(i));

View file

@ -707,7 +707,7 @@ Compile::Compile( ciEnv* ci_env, C2Compiler* compiler, ciMethod* target, int osr
_replay_inline_data = ciReplay::load_inline_data(method(), entry_bci(), ci_env->comp_level()); _replay_inline_data = ciReplay::load_inline_data(method(), entry_bci(), ci_env->comp_level());
} }
#endif #endif
set_print_inlining(directive->PrintInliningOption NOT_PRODUCT( || PrintOptoInlining)); set_print_inlining(directive->PrintInliningOption || PrintOptoInlining);
set_print_intrinsics(directive->PrintIntrinsicsOption); set_print_intrinsics(directive->PrintIntrinsicsOption);
set_has_irreducible_loop(true); // conservative until build_loop_tree() reset it set_has_irreducible_loop(true); // conservative until build_loop_tree() reset it

View file

@ -45,7 +45,7 @@ void trace_type_profile(Compile* C, ciMethod *method, int depth, int bci, ciMeth
if (TraceTypeProfile || C->print_inlining()) { if (TraceTypeProfile || C->print_inlining()) {
outputStream* out = tty; outputStream* out = tty;
if (!C->print_inlining()) { if (!C->print_inlining()) {
if (NOT_PRODUCT(!PrintOpto &&) !PrintCompilation) { if (!PrintOpto && !PrintCompilation) {
method->print_short_name(); method->print_short_name();
tty->cr(); tty->cr();
} }
@ -426,12 +426,10 @@ void Parse::do_call() {
// uncommon-trap when callee is unloaded, uninitialized or will not link // uncommon-trap when callee is unloaded, uninitialized or will not link
// bailout when too many arguments for register representation // bailout when too many arguments for register representation
if (!will_link || can_not_compile_call_site(orig_callee, klass)) { if (!will_link || can_not_compile_call_site(orig_callee, klass)) {
#ifndef PRODUCT
if (PrintOpto && (Verbose || WizardMode)) { if (PrintOpto && (Verbose || WizardMode)) {
method()->print_name(); tty->print_cr(" can not compile call at bci %d to:", bci()); method()->print_name(); tty->print_cr(" can not compile call at bci %d to:", bci());
orig_callee->print_name(); tty->cr(); orig_callee->print_name(); tty->cr();
} }
#endif
return; return;
} }
assert(holder_klass->is_loaded(), ""); assert(holder_klass->is_loaded(), "");
@ -634,12 +632,10 @@ void Parse::do_call() {
// If the return type of the method is not loaded, assert that the // If the return type of the method is not loaded, assert that the
// value we got is a null. Otherwise, we need to recompile. // value we got is a null. Otherwise, we need to recompile.
if (!rtype->is_loaded()) { if (!rtype->is_loaded()) {
#ifndef PRODUCT
if (PrintOpto && (Verbose || WizardMode)) { if (PrintOpto && (Verbose || WizardMode)) {
method()->print_name(); tty->print_cr(" asserting nullness of result at bci: %d", bci()); method()->print_name(); tty->print_cr(" asserting nullness of result at bci: %d", bci());
cg->method()->print_name(); tty->cr(); cg->method()->print_name(); tty->cr();
} }
#endif
if (C->log() != NULL) { if (C->log() != NULL) {
C->log()->elem("assert_null reason='return' klass='%d'", C->log()->elem("assert_null reason='return' klass='%d'",
C->log()->identify(rtype)); C->log()->identify(rtype));
@ -851,11 +847,9 @@ void Parse::catch_inline_exceptions(SafePointNode* ex_map) {
if (remaining == 1) { if (remaining == 1) {
push_ex_oop(ex_node); // Push exception oop for handler push_ex_oop(ex_node); // Push exception oop for handler
#ifndef PRODUCT
if (PrintOpto && WizardMode) { if (PrintOpto && WizardMode) {
tty->print_cr(" Catching every inline exception bci:%d -> handler_bci:%d", bci(), handler_bci); tty->print_cr(" Catching every inline exception bci:%d -> handler_bci:%d", bci(), handler_bci);
} }
#endif
merge_exception(handler_bci); // jump to handler merge_exception(handler_bci); // jump to handler
return; // No more handling to be done here! return; // No more handling to be done here!
} }
@ -882,13 +876,11 @@ void Parse::catch_inline_exceptions(SafePointNode* ex_map) {
assert(klass->has_subklass() || tinst->klass_is_exact(), "lost exactness"); assert(klass->has_subklass() || tinst->klass_is_exact(), "lost exactness");
Node* ex_oop = _gvn.transform(new CheckCastPPNode(control(), ex_node, tinst)); Node* ex_oop = _gvn.transform(new CheckCastPPNode(control(), ex_node, tinst));
push_ex_oop(ex_oop); // Push exception oop for handler push_ex_oop(ex_oop); // Push exception oop for handler
#ifndef PRODUCT
if (PrintOpto && WizardMode) { if (PrintOpto && WizardMode) {
tty->print(" Catching inline exception bci:%d -> handler_bci:%d -- ", bci(), handler_bci); tty->print(" Catching inline exception bci:%d -> handler_bci:%d -- ", bci(), handler_bci);
klass->print_name(); klass->print_name();
tty->cr(); tty->cr();
} }
#endif
merge_exception(handler_bci); merge_exception(handler_bci);
} }
set_control(not_subtype_ctrl); set_control(not_subtype_ctrl);
@ -1067,13 +1059,11 @@ ciMethod* Compile::optimize_inlining(ciMethod* caller, int bci, ciInstanceKlass*
// such method can be changed when its class is redefined. // such method can be changed when its class is redefined.
ciMethod* exact_method = callee->resolve_invoke(calling_klass, actual_receiver); ciMethod* exact_method = callee->resolve_invoke(calling_klass, actual_receiver);
if (exact_method != NULL) { if (exact_method != NULL) {
#ifndef PRODUCT
if (PrintOpto) { if (PrintOpto) {
tty->print(" Calling method via exact type @%d --- ", bci); tty->print(" Calling method via exact type @%d --- ", bci);
exact_method->print_name(); exact_method->print_name();
tty->cr(); tty->cr();
} }
#endif
return exact_method; return exact_method;
} }
} }

View file

@ -792,8 +792,10 @@ bool IdealLoopTree::policy_unroll(PhaseIdealLoop *phase) {
return false; return false;
} }
if(cl->do_unroll_only()) { if (cl->do_unroll_only()) {
NOT_PRODUCT(if (TraceSuperWordLoopUnrollAnalysis) tty->print_cr("policy_unroll passed vector loop(vlen=%d,factor = %d)\n", slp_max_unroll_factor, future_unroll_ct)); if (TraceSuperWordLoopUnrollAnalysis) {
tty->print_cr("policy_unroll passed vector loop(vlen=%d,factor = %d)\n", slp_max_unroll_factor, future_unroll_ct);
}
} }
// Unroll once! (Each trip will soon do double iterations) // Unroll once! (Each trip will soon do double iterations)
@ -818,7 +820,9 @@ void IdealLoopTree::policy_unroll_slp_analysis(CountedLoopNode *cl, PhaseIdealLo
if (slp_max_unroll_factor >= future_unroll_ct) { if (slp_max_unroll_factor >= future_unroll_ct) {
int new_limit = cl->node_count_before_unroll() * slp_max_unroll_factor; int new_limit = cl->node_count_before_unroll() * slp_max_unroll_factor;
if (new_limit > LoopUnrollLimit) { if (new_limit > LoopUnrollLimit) {
NOT_PRODUCT(if (TraceSuperWordLoopUnrollAnalysis) tty->print_cr("slp analysis unroll=%d, default limit=%d\n", new_limit, _local_loop_unroll_limit)); if (TraceSuperWordLoopUnrollAnalysis) {
tty->print_cr("slp analysis unroll=%d, default limit=%d\n", new_limit, _local_loop_unroll_limit);
}
_local_loop_unroll_limit = new_limit; _local_loop_unroll_limit = new_limit;
} }
} }
@ -2120,10 +2124,9 @@ void PhaseIdealLoop::do_range_check( IdealLoopTree *loop, Node_List &old_new ) {
conditional_rc = !loop->dominates_backedge(iff) || RangeLimitCheck; conditional_rc = !loop->dominates_backedge(iff) || RangeLimitCheck;
} }
} else { } else {
#ifndef PRODUCT if (PrintOpto) {
if( PrintOpto )
tty->print_cr("missed RCE opportunity"); tty->print_cr("missed RCE opportunity");
#endif }
continue; // In release mode, ignore it continue; // In release mode, ignore it
} }
} else { // Otherwise work on normal compares } else { // Otherwise work on normal compares
@ -2158,10 +2161,9 @@ void PhaseIdealLoop::do_range_check( IdealLoopTree *loop, Node_List &old_new ) {
} }
break; break;
default: default:
#ifndef PRODUCT if (PrintOpto) {
if( PrintOpto )
tty->print_cr("missed RCE opportunity"); tty->print_cr("missed RCE opportunity");
#endif }
continue; // Unhandled case continue; // Unhandled case
} }
} }
@ -2505,9 +2507,7 @@ bool IdealLoopTree::iteration_split_impl( PhaseIdealLoop *phase, Node_List &old_
return false; return false;
} }
if (should_peel) { // Should we peel? if (should_peel) { // Should we peel?
#ifndef PRODUCT if (PrintOpto) { tty->print_cr("should_peel"); }
if (PrintOpto) tty->print_cr("should_peel");
#endif
phase->do_peeling(this,old_new); phase->do_peeling(this,old_new);
} else if (should_unswitch) { } else if (should_unswitch) {
phase->do_unswitching(this, old_new); phase->do_unswitching(this, old_new);

View file

@ -361,16 +361,22 @@ bool CountedLoopReserveKit::create_reserve() {
} }
if(!_lpt->_head->is_CountedLoop()) { if(!_lpt->_head->is_CountedLoop()) {
NOT_PRODUCT(if(TraceLoopOpts) {tty->print_cr("CountedLoopReserveKit::create_reserve: %d not counted loop", _lpt->_head->_idx);}) if (TraceLoopOpts) {
tty->print_cr("CountedLoopReserveKit::create_reserve: %d not counted loop", _lpt->_head->_idx);
}
return false; return false;
} }
CountedLoopNode *cl = _lpt->_head->as_CountedLoop(); CountedLoopNode *cl = _lpt->_head->as_CountedLoop();
if (!cl->is_valid_counted_loop()) { if (!cl->is_valid_counted_loop()) {
NOT_PRODUCT(if(TraceLoopOpts) {tty->print_cr("CountedLoopReserveKit::create_reserve: %d not valid counted loop", cl->_idx);}) if (TraceLoopOpts) {
tty->print_cr("CountedLoopReserveKit::create_reserve: %d not valid counted loop", cl->_idx);
}
return false; // skip malformed counted loop return false; // skip malformed counted loop
} }
if (!cl->is_main_loop()) { if (!cl->is_main_loop()) {
NOT_PRODUCT(if(TraceLoopOpts) {tty->print_cr("CountedLoopReserveKit::create_reserve: %d not main loop", cl->_idx);}) if (TraceLoopOpts) {
tty->print_cr("CountedLoopReserveKit::create_reserve: %d not main loop", cl->_idx);
}
return false; // skip normal, pre, and post loops return false; // skip normal, pre, and post loops
} }

View file

@ -2397,11 +2397,9 @@ void PhaseIdealLoop::build_and_optimize(bool do_split_ifs, bool skip_loop_opts)
// After that switch predicates off and do more loop optimizations. // After that switch predicates off and do more loop optimizations.
if (!C->major_progress() && (C->predicate_count() > 0)) { if (!C->major_progress() && (C->predicate_count() > 0)) {
C->cleanup_loop_predicates(_igvn); C->cleanup_loop_predicates(_igvn);
#ifndef PRODUCT
if (TraceLoopOpts) { if (TraceLoopOpts) {
tty->print_cr("PredicatesOff"); tty->print_cr("PredicatesOff");
} }
#endif
C->set_major_progress(); C->set_major_progress();
} }

View file

@ -199,10 +199,7 @@ Node *PhaseIdealLoop::split_thru_phi( Node *n, Node *region, int policy ) {
// IGVN worklist for later cleanup. Move control-dependent data Nodes on the // IGVN worklist for later cleanup. Move control-dependent data Nodes on the
// live path up to the dominating control. // live path up to the dominating control.
void PhaseIdealLoop::dominated_by( Node *prevdom, Node *iff, bool flip, bool exclude_loop_predicate ) { void PhaseIdealLoop::dominated_by( Node *prevdom, Node *iff, bool flip, bool exclude_loop_predicate ) {
#ifndef PRODUCT if (VerifyLoopOptimizations && PrintOpto) { tty->print_cr("dominating test"); }
if (VerifyLoopOptimizations && PrintOpto) tty->print_cr("dominating test");
#endif
// prevdom is the dominating projection of the dominating test. // prevdom is the dominating projection of the dominating test.
assert( iff->is_If(), "" ); assert( iff->is_If(), "" );
@ -617,9 +614,7 @@ Node *PhaseIdealLoop::conditional_move( Node *region ) {
} }
} }
if (phi == NULL) break; if (phi == NULL) break;
#ifndef PRODUCT if (PrintOpto && VerifyLoopOptimizations) { tty->print_cr("CMOV"); }
if (PrintOpto && VerifyLoopOptimizations) tty->print_cr("CMOV");
#endif
// Move speculative ops // Move speculative ops
for (uint j = 1; j < region->req(); j++) { for (uint j = 1; j < region->req(); j++) {
Node *proj = region->in(j); Node *proj = region->in(j);
@ -963,10 +958,9 @@ static bool merge_point_too_heavy(Compile* C, Node* region) {
} }
int nodes_left = C->max_node_limit() - C->live_nodes(); int nodes_left = C->max_node_limit() - C->live_nodes();
if (weight * 8 > nodes_left) { if (weight * 8 > nodes_left) {
#ifndef PRODUCT if (PrintOpto) {
if (PrintOpto)
tty->print_cr("*** Split-if bails out: %d nodes, region weight %d", C->unique(), weight); tty->print_cr("*** Split-if bails out: %d nodes, region weight %d", C->unique(), weight);
#endif }
return true; return true;
} else { } else {
return false; return false;
@ -1490,14 +1484,12 @@ void PhaseIdealLoop::sink_use( Node *use, Node *post_loop ) {
void PhaseIdealLoop::clone_loop( IdealLoopTree *loop, Node_List &old_new, int dd, void PhaseIdealLoop::clone_loop( IdealLoopTree *loop, Node_List &old_new, int dd,
Node* side_by_side_idom) { Node* side_by_side_idom) {
#ifndef PRODUCT
if (C->do_vector_loop() && PrintOpto) { if (C->do_vector_loop() && PrintOpto) {
const char* mname = C->method()->name()->as_quoted_ascii(); const char* mname = C->method()->name()->as_quoted_ascii();
if (mname != NULL) { if (mname != NULL) {
tty->print("PhaseIdealLoop::clone_loop: for vectorize method %s\n", mname); tty->print("PhaseIdealLoop::clone_loop: for vectorize method %s\n", mname);
} }
} }
#endif
CloneMap& cm = C->clone_map(); CloneMap& cm = C->clone_map();
Dict* dict = cm.dict(); Dict* dict = cm.dict();

View file

@ -1569,13 +1569,11 @@ Node *Matcher::Label_Root( const Node *n, State *svec, Node *control, const Node
// Can NOT include the match of a subtree when its memory state // Can NOT include the match of a subtree when its memory state
// is used by any of the other subtrees // is used by any of the other subtrees
(input_mem == NodeSentinel) ) { (input_mem == NodeSentinel) ) {
#ifndef PRODUCT
// Print when we exclude matching due to different memory states at input-loads // Print when we exclude matching due to different memory states at input-loads
if( PrintOpto && (Verbose && WizardMode) && (input_mem == NodeSentinel) if (PrintOpto && (Verbose && WizardMode) && (input_mem == NodeSentinel)
&& !((mem!=(Node*)1) && m->is_Load() && m->in(MemNode::Memory) != mem) ) { && !((mem!=(Node*)1) && m->is_Load() && m->in(MemNode::Memory) != mem)) {
tty->print_cr("invalid input_mem"); tty->print_cr("invalid input_mem");
} }
#endif
// Switch to a register-only opcode; this value must be in a register // Switch to a register-only opcode; this value must be in a register
// and cannot be subsumed as part of a larger instruction. // and cannot be subsumed as part of a larger instruction.
s->DFA( m->ideal_reg(), m ); s->DFA( m->ideal_reg(), m );

View file

@ -230,9 +230,7 @@ Node *CMoveINode::Ideal(PhaseGVN *phase, bool can_reshape) {
// Convert to a bool (flipped) // Convert to a bool (flipped)
// Build int->bool conversion // Build int->bool conversion
#ifndef PRODUCT if (PrintOpto) { tty->print_cr("CMOV to I2B"); }
if( PrintOpto ) tty->print_cr("CMOV to I2B");
#endif
Node *n = new Conv2BNode( cmp->in(1) ); Node *n = new Conv2BNode( cmp->in(1) );
if( flip ) if( flip )
n = new XorINode( phase->transform(n), phase->intcon(1) ); n = new XorINode( phase->transform(n), phase->intcon(1) );

View file

@ -91,13 +91,10 @@ void Compile::Output() {
} }
// Break before main entry point // Break before main entry point
if( (_method && C->directive()->BreakAtExecuteOption) if ((_method && C->directive()->BreakAtExecuteOption) ||
#ifndef PRODUCT (OptoBreakpoint && is_method_compilation()) ||
||(OptoBreakpoint && is_method_compilation()) (OptoBreakpointOSR && is_osr_compilation()) ||
||(OptoBreakpointOSR && is_osr_compilation()) (OptoBreakpointC2R && !_method) ) {
||(OptoBreakpointC2R && !_method)
#endif
) {
// checking for _method means that OptoBreakpoint does not apply to // checking for _method means that OptoBreakpoint does not apply to
// runtime stubs or frame converters // runtime stubs or frame converters
_cfg->insert( entry, 1, new MachBreakpointNode() ); _cfg->insert( entry, 1, new MachBreakpointNode() );

View file

@ -958,12 +958,10 @@ void Parse::do_exits() {
PPC64_ONLY(wrote_volatile() ||) PPC64_ONLY(wrote_volatile() ||)
(AlwaysSafeConstructors && wrote_fields()))) { (AlwaysSafeConstructors && wrote_fields()))) {
_exits.insert_mem_bar(Op_MemBarRelease, alloc_with_final()); _exits.insert_mem_bar(Op_MemBarRelease, alloc_with_final());
#ifndef PRODUCT
if (PrintOpto && (Verbose || WizardMode)) { if (PrintOpto && (Verbose || WizardMode)) {
method()->print_name(); method()->print_name();
tty->print_cr(" writes finals and needs a memory barrier"); tty->print_cr(" writes finals and needs a memory barrier");
} }
#endif
} }
// Any method can write a @Stable field; insert memory barriers after // Any method can write a @Stable field; insert memory barriers after
@ -971,12 +969,10 @@ void Parse::do_exits() {
// barrier there. // barrier there.
if (wrote_stable()) { if (wrote_stable()) {
_exits.insert_mem_bar(Op_MemBarRelease, alloc_with_final()); _exits.insert_mem_bar(Op_MemBarRelease, alloc_with_final());
#ifndef PRODUCT
if (PrintOpto && (Verbose || WizardMode)) { if (PrintOpto && (Verbose || WizardMode)) {
method()->print_name(); method()->print_name();
tty->print_cr(" writes @Stable and needs a memory barrier"); tty->print_cr(" writes @Stable and needs a memory barrier");
} }
#endif
} }
for (MergeMemStream mms(_exits.merged_memory()); mms.next_non_empty(); ) { for (MergeMemStream mms(_exits.merged_memory()); mms.next_non_empty(); ) {

View file

@ -948,13 +948,11 @@ bool Parse::seems_stable_comparison() const {
//-------------------------------repush_if_args-------------------------------- //-------------------------------repush_if_args--------------------------------
// Push arguments of an "if" bytecode back onto the stack by adjusting _sp. // Push arguments of an "if" bytecode back onto the stack by adjusting _sp.
inline int Parse::repush_if_args() { inline int Parse::repush_if_args() {
#ifndef PRODUCT
if (PrintOpto && WizardMode) { if (PrintOpto && WizardMode) {
tty->print("defending against excessive implicit null exceptions on %s @%d in ", tty->print("defending against excessive implicit null exceptions on %s @%d in ",
Bytecodes::name(iter().cur_bc()), iter().cur_bci()); Bytecodes::name(iter().cur_bc()), iter().cur_bci());
method()->print_name(); tty->cr(); method()->print_name(); tty->cr();
} }
#endif
int bc_depth = - Bytecodes::depth(iter().cur_bc()); int bc_depth = - Bytecodes::depth(iter().cur_bc());
assert(bc_depth == 1 || bc_depth == 2, "only two kinds of branches"); assert(bc_depth == 1 || bc_depth == 2, "only two kinds of branches");
DEBUG_ONLY(sync_jvms()); // argument(n) requires a synced jvms DEBUG_ONLY(sync_jvms()); // argument(n) requires a synced jvms
@ -975,10 +973,9 @@ void Parse::do_ifnull(BoolTest::mask btest, Node *c) {
float prob = branch_prediction(cnt, btest, target_bci, c); float prob = branch_prediction(cnt, btest, target_bci, c);
if (prob == PROB_UNKNOWN) { if (prob == PROB_UNKNOWN) {
// (An earlier version of do_ifnull omitted this trap for OSR methods.) // (An earlier version of do_ifnull omitted this trap for OSR methods.)
#ifndef PRODUCT if (PrintOpto && Verbose) {
if (PrintOpto && Verbose) tty->print_cr("Never-taken edge stops compilation at bci %d", bci());
tty->print_cr("Never-taken edge stops compilation at bci %d",bci()); }
#endif
repush_if_args(); // to gather stats on loop repush_if_args(); // to gather stats on loop
// We need to mark this branch as taken so that if we recompile we will // We need to mark this branch as taken so that if we recompile we will
// see that it is possible. In the tiered system the interpreter doesn't // see that it is possible. In the tiered system the interpreter doesn't
@ -1057,10 +1054,9 @@ void Parse::do_if(BoolTest::mask btest, Node* c) {
float untaken_prob = 1.0 - prob; float untaken_prob = 1.0 - prob;
if (prob == PROB_UNKNOWN) { if (prob == PROB_UNKNOWN) {
#ifndef PRODUCT if (PrintOpto && Verbose) {
if (PrintOpto && Verbose) tty->print_cr("Never-taken edge stops compilation at bci %d", bci());
tty->print_cr("Never-taken edge stops compilation at bci %d",bci()); }
#endif
repush_if_args(); // to gather stats on loop repush_if_args(); // to gather stats on loop
// We need to mark this branch as taken so that if we recompile we will // We need to mark this branch as taken so that if we recompile we will
// see that it is possible. In the tiered system the interpreter doesn't // see that it is possible. In the tiered system the interpreter doesn't

View file

@ -213,11 +213,9 @@ void Parse::do_get_xxx(Node* obj, ciField* field, bool is_field) {
// not need to mention the class index, since the class will // not need to mention the class index, since the class will
// already have been loaded if we ever see a non-null value.) // already have been loaded if we ever see a non-null value.)
// uncommon_trap(iter().get_field_signature_index()); // uncommon_trap(iter().get_field_signature_index());
#ifndef PRODUCT
if (PrintOpto && (Verbose || WizardMode)) { if (PrintOpto && (Verbose || WizardMode)) {
method()->print_name(); tty->print_cr(" asserting nullness of field at bci: %d", bci()); method()->print_name(); tty->print_cr(" asserting nullness of field at bci: %d", bci());
} }
#endif
if (C->log() != NULL) { if (C->log() != NULL) {
C->log()->elem("assert_null reason='field' klass='%d'", C->log()->elem("assert_null reason='field' klass='%d'",
C->log()->identify(field->type())); C->log()->identify(field->type()));

View file

@ -506,10 +506,9 @@ uint PhaseChaitin::Split(uint maxlrg, ResourceArea* split_arena) {
// Initialize the split counts to zero // Initialize the split counts to zero
splits.append(0); splits.append(0);
#endif #endif
#ifndef PRODUCT if (PrintOpto && WizardMode && lrgs(bidx)._was_spilled1) {
if( PrintOpto && WizardMode && lrgs(bidx)._was_spilled1 )
tty->print_cr("Warning, 2nd spill of L%d",bidx); tty->print_cr("Warning, 2nd spill of L%d",bidx);
#endif }
} }
} }

View file

@ -390,13 +390,13 @@ void PhaseIdealLoop::handle_use( Node *use, Node *def, small_cache *cache, Node
// Found an If getting its condition-code input from a Phi in the same block. // Found an If getting its condition-code input from a Phi in the same block.
// Split thru the Region. // Split thru the Region.
void PhaseIdealLoop::do_split_if( Node *iff ) { void PhaseIdealLoop::do_split_if( Node *iff ) {
#ifndef PRODUCT if (PrintOpto && VerifyLoopOptimizations) {
if( PrintOpto && VerifyLoopOptimizations )
tty->print_cr("Split-if"); tty->print_cr("Split-if");
}
if (TraceLoopOpts) { if (TraceLoopOpts) {
tty->print_cr("SplitIf"); tty->print_cr("SplitIf");
} }
#endif
C->set_major_progress(); C->set_major_progress();
Node *region = iff->in(0); Node *region = iff->in(0);
Node *region_dom = idom(region); Node *region_dom = idom(region);

View file

@ -276,7 +276,9 @@ void SuperWord::unrolling_analysis(int &local_loop_unroll_factor) {
// stop looking, we already have the max vector to map to. // stop looking, we already have the max vector to map to.
if (cur_max_vector < local_loop_unroll_factor) { if (cur_max_vector < local_loop_unroll_factor) {
is_slp = false; is_slp = false;
NOT_PRODUCT(if (TraceSuperWordLoopUnrollAnalysis) tty->print_cr("slp analysis fails: unroll limit greater than max vector\n")); if (TraceSuperWordLoopUnrollAnalysis) {
tty->print_cr("slp analysis fails: unroll limit greater than max vector\n");
}
break; break;
} }
@ -389,11 +391,9 @@ void SuperWord::SLP_extract() {
if (_do_vector_loop) { if (_do_vector_loop) {
if (_packset.length() == 0) { if (_packset.length() == 0) {
#ifndef PRODUCT
if (TraceSuperWord) { if (TraceSuperWord) {
tty->print_cr("\nSuperWord::_do_vector_loop DFA could not build packset, now trying to build anyway"); tty->print_cr("\nSuperWord::_do_vector_loop DFA could not build packset, now trying to build anyway");
} }
#endif
pack_parallel(); pack_parallel();
} }
} }
@ -560,7 +560,9 @@ void SuperWord::find_adjacent_refs() {
} }
best_align_to_mem_ref = find_align_to_ref(memops); best_align_to_mem_ref = find_align_to_ref(memops);
if (best_align_to_mem_ref == NULL) { if (best_align_to_mem_ref == NULL) {
NOT_PRODUCT(if (TraceSuperWord) tty->print_cr("SuperWord::find_adjacent_refs(): best_align_to_mem_ref == NULL");) if (TraceSuperWord) {
tty->print_cr("SuperWord::find_adjacent_refs(): best_align_to_mem_ref == NULL");
}
break; break;
} }
best_iv_adjustment = get_iv_adjustment(best_align_to_mem_ref); best_iv_adjustment = get_iv_adjustment(best_align_to_mem_ref);
@ -582,12 +584,10 @@ void SuperWord::find_adjacent_refs() {
} // while (memops.size() != 0 } // while (memops.size() != 0
set_align_to_ref(best_align_to_mem_ref); set_align_to_ref(best_align_to_mem_ref);
#ifndef PRODUCT
if (TraceSuperWord) { if (TraceSuperWord) {
tty->print_cr("\nAfter find_adjacent_refs"); tty->print_cr("\nAfter find_adjacent_refs");
print_packset(); print_packset();
} }
#endif
} }
#ifndef PRODUCT #ifndef PRODUCT
@ -874,7 +874,7 @@ void SuperWord::dependence_graph() {
_dg.make_edge(s1, slice_sink); _dg.make_edge(s1, slice_sink);
} }
} }
#ifndef PRODUCT
if (TraceSuperWord) { if (TraceSuperWord) {
tty->print_cr("\nDependence graph for slice: %d", n->_idx); tty->print_cr("\nDependence graph for slice: %d", n->_idx);
for (int q = 0; q < _nlist.length(); q++) { for (int q = 0; q < _nlist.length(); q++) {
@ -882,11 +882,10 @@ void SuperWord::dependence_graph() {
} }
tty->cr(); tty->cr();
} }
#endif
_nlist.clear(); _nlist.clear();
} }
#ifndef PRODUCT
if (TraceSuperWord) { if (TraceSuperWord) {
tty->print_cr("\ndisjoint_ptrs: %s", _disjoint_ptrs.length() > 0 ? "" : "NONE"); tty->print_cr("\ndisjoint_ptrs: %s", _disjoint_ptrs.length() > 0 ? "" : "NONE");
for (int r = 0; r < _disjoint_ptrs.length(); r++) { for (int r = 0; r < _disjoint_ptrs.length(); r++) {
@ -895,7 +894,7 @@ void SuperWord::dependence_graph() {
} }
tty->cr(); tty->cr();
} }
#endif
} }
//---------------------------mem_slice_preds--------------------------- //---------------------------mem_slice_preds---------------------------
@ -912,7 +911,9 @@ void SuperWord::mem_slice_preds(Node* start, Node* stop, GrowableArray<Node*> &p
if (out->is_Load()) { if (out->is_Load()) {
if (in_bb(out)) { if (in_bb(out)) {
preds.push(out); preds.push(out);
NOT_PRODUCT(if (TraceSuperWord && Verbose) tty->print_cr("SuperWord::mem_slice_preds: added pred(%d)", out->_idx);) if (TraceSuperWord && Verbose) {
tty->print_cr("SuperWord::mem_slice_preds: added pred(%d)", out->_idx);
}
} }
} else { } else {
// FIXME // FIXME
@ -931,7 +932,9 @@ void SuperWord::mem_slice_preds(Node* start, Node* stop, GrowableArray<Node*> &p
}//for }//for
if (n == stop) break; if (n == stop) break;
preds.push(n); preds.push(n);
NOT_PRODUCT(if (TraceSuperWord && Verbose) tty->print_cr("SuperWord::mem_slice_preds: added pred(%d)", n->_idx);) if (TraceSuperWord && Verbose) {
tty->print_cr("SuperWord::mem_slice_preds: added pred(%d)", n->_idx);
}
prev = n; prev = n;
assert(n->is_Mem(), "unexpected node %s", n->Name()); assert(n->is_Mem(), "unexpected node %s", n->Name());
n = n->in(MemNode::Memory); n = n->in(MemNode::Memory);
@ -1123,12 +1126,10 @@ void SuperWord::extend_packlist() {
} }
} }
#ifndef PRODUCT
if (TraceSuperWord) { if (TraceSuperWord) {
tty->print_cr("\nAfter extend_packlist"); tty->print_cr("\nAfter extend_packlist");
print_packset(); print_packset();
} }
#endif
} }
//------------------------------follow_use_defs--------------------------- //------------------------------follow_use_defs---------------------------
@ -1412,12 +1413,10 @@ void SuperWord::combine_packs() {
} }
} }
#ifndef PRODUCT
if (TraceSuperWord) { if (TraceSuperWord) {
tty->print_cr("\nAfter combine_packs"); tty->print_cr("\nAfter combine_packs");
print_packset(); print_packset();
} }
#endif
} }
//-----------------------------construct_my_pack_map-------------------------- //-----------------------------construct_my_pack_map--------------------------
@ -2244,7 +2243,9 @@ void SuperWord::output() {
if (cl->has_passed_slp()) { if (cl->has_passed_slp()) {
uint slp_max_unroll_factor = cl->slp_max_unroll(); uint slp_max_unroll_factor = cl->slp_max_unroll();
if (slp_max_unroll_factor == max_vlen) { if (slp_max_unroll_factor == max_vlen) {
NOT_PRODUCT(if (TraceSuperWordLoopUnrollAnalysis) tty->print_cr("vector loop(unroll=%d, len=%d)\n", max_vlen, max_vlen_in_bytes*BitsPerByte)); if (TraceSuperWordLoopUnrollAnalysis) {
tty->print_cr("vector loop(unroll=%d, len=%d)\n", max_vlen, max_vlen_in_bytes*BitsPerByte);
}
// For atomic unrolled loops which are vector mapped, instigate more unrolling. // For atomic unrolled loops which are vector mapped, instigate more unrolling.
cl->set_notpassed_slp(); cl->set_notpassed_slp();
// if vector resources are limited, do not allow additional unrolling // if vector resources are limited, do not allow additional unrolling
@ -2653,10 +2654,10 @@ void SuperWord::compute_max_depth() {
} }
ct++; ct++;
} while (again); } while (again);
#ifndef PRODUCT
if (TraceSuperWord && Verbose) if (TraceSuperWord && Verbose) {
tty->print_cr("compute_max_depth iterated: %d times", ct); tty->print_cr("compute_max_depth iterated: %d times", ct);
#endif }
} }
//-------------------------compute_vector_element_type----------------------- //-------------------------compute_vector_element_type-----------------------
@ -2667,10 +2668,9 @@ void SuperWord::compute_max_depth() {
// Normally the type of the add is integer, but for packed character // Normally the type of the add is integer, but for packed character
// operations the type of the add needs to be char. // operations the type of the add needs to be char.
void SuperWord::compute_vector_element_type() { void SuperWord::compute_vector_element_type() {
#ifndef PRODUCT if (TraceSuperWord && Verbose) {
if (TraceSuperWord && Verbose)
tty->print_cr("\ncompute_velt_type:"); tty->print_cr("\ncompute_velt_type:");
#endif }
// Initial type // Initial type
for (int i = 0; i < _block.length(); i++) { for (int i = 0; i < _block.length(); i++) {
@ -2761,7 +2761,9 @@ int SuperWord::memory_alignment(MemNode* s, int iv_adjust) {
offset += iv_adjust*p.memory_size(); offset += iv_adjust*p.memory_size();
int off_rem = offset % vw; int off_rem = offset % vw;
int off_mod = off_rem >= 0 ? off_rem : off_rem + vw; int off_mod = off_rem >= 0 ? off_rem : off_rem + vw;
NOT_PRODUCT(if(TraceSuperWord && Verbose) tty->print_cr("SWPointer::memory_alignment: off_rem = %d, off_mod = %d", off_rem, off_mod);) if (TraceSuperWord && Verbose) {
tty->print_cr("SWPointer::memory_alignment: off_rem = %d, off_mod = %d", off_rem, off_mod);
}
return off_mod; return off_mod;
} }
@ -4049,11 +4051,9 @@ int SuperWord::mark_generations() {
}//for (int i... }//for (int i...
if (_ii_first == -1 || _ii_last == -1) { if (_ii_first == -1 || _ii_last == -1) {
#ifndef PRODUCT
if (TraceSuperWord && Verbose) { if (TraceSuperWord && Verbose) {
tty->print_cr("SuperWord::mark_generations unknown error, something vent wrong"); tty->print_cr("SuperWord::mark_generations unknown error, something vent wrong");
} }
#endif
return -1; // something vent wrong return -1; // something vent wrong
} }
// collect nodes in the first and last generations // collect nodes in the first and last generations
@ -4086,11 +4086,9 @@ int SuperWord::mark_generations() {
}//for }//for
if (found == false) { if (found == false) {
#ifndef PRODUCT
if (TraceSuperWord && Verbose) { if (TraceSuperWord && Verbose) {
tty->print_cr("SuperWord::mark_generations: Cannot build order of iterations - no dependent Store for %d", nd->_idx); tty->print_cr("SuperWord::mark_generations: Cannot build order of iterations - no dependent Store for %d", nd->_idx);
} }
#endif
_ii_order.clear(); _ii_order.clear();
return -1; return -1;
} }
@ -4156,11 +4154,10 @@ bool SuperWord::fix_commutative_inputs(Node* gold, Node* fix) {
return true; return true;
} }
#ifndef PRODUCT
if (TraceSuperWord && Verbose) { if (TraceSuperWord && Verbose) {
tty->print_cr("SuperWord::fix_commutative_inputs: cannot fix node %d", fix->_idx); tty->print_cr("SuperWord::fix_commutative_inputs: cannot fix node %d", fix->_idx);
} }
#endif
return false; return false;
} }
@ -4227,11 +4224,9 @@ bool SuperWord::hoist_loads_in_graph() {
for (int i = 0; i < _mem_slice_head.length(); i++) { for (int i = 0; i < _mem_slice_head.length(); i++) {
Node* n = _mem_slice_head.at(i); Node* n = _mem_slice_head.at(i);
if ( !in_bb(n) || !n->is_Phi() || n->bottom_type() != Type::MEMORY) { if ( !in_bb(n) || !n->is_Phi() || n->bottom_type() != Type::MEMORY) {
#ifndef PRODUCT
if (TraceSuperWord && Verbose) { if (TraceSuperWord && Verbose) {
tty->print_cr("SuperWord::hoist_loads_in_graph: skipping unexpected node n=%d", n->_idx); tty->print_cr("SuperWord::hoist_loads_in_graph: skipping unexpected node n=%d", n->_idx);
} }
#endif
continue; continue;
} }
@ -4278,11 +4273,10 @@ bool SuperWord::hoist_loads_in_graph() {
restart(); // invalidate all basic structures, since we rebuilt the graph restart(); // invalidate all basic structures, since we rebuilt the graph
#ifndef PRODUCT
if (TraceSuperWord && Verbose) { if (TraceSuperWord && Verbose) {
tty->print_cr("\nSuperWord::hoist_loads_in_graph() the graph was rebuilt, all structures invalidated and need rebuild"); tty->print_cr("\nSuperWord::hoist_loads_in_graph() the graph was rebuilt, all structures invalidated and need rebuild");
} }
#endif
return true; return true;
} }

View file

@ -3899,7 +3899,7 @@ void TestG1BiasedArray_test();
void TestBufferingOopClosure_test(); void TestBufferingOopClosure_test();
void TestCodeCacheRemSet_test(); void TestCodeCacheRemSet_test();
void FreeRegionList_test(); void FreeRegionList_test();
void test_memset_with_concurrent_readers(); void test_memset_with_concurrent_readers() NOT_DEBUG_RETURN;
void TestPredictions_test(); void TestPredictions_test();
#endif #endif

View file

@ -456,7 +456,7 @@ const char* Arguments::real_flag_name(const char *flag_name) {
return flag_name; return flag_name;
} }
#ifndef PRODUCT #ifdef ASSERT
static bool lookup_special_flag(const char *flag_name, size_t skip_index) { static bool lookup_special_flag(const char *flag_name, size_t skip_index) {
for (size_t i = 0; special_jvm_flags[i].name != NULL; i++) { for (size_t i = 0; special_jvm_flags[i].name != NULL; i++) {
if ((i != skip_index) && (strcmp(special_jvm_flags[i].name, flag_name) == 0)) { if ((i != skip_index) && (strcmp(special_jvm_flags[i].name, flag_name) == 0)) {

View file

@ -538,25 +538,23 @@ const char* Flag::flag_error_str(Flag::Error error) {
// 4991491 do not "optimize out" the was_set false values: omitting them // 4991491 do not "optimize out" the was_set false values: omitting them
// tickles a Microsoft compiler bug causing flagTable to be malformed // tickles a Microsoft compiler bug causing flagTable to be malformed
#define NAME(name) NOT_PRODUCT(&name) PRODUCT_ONLY(&CONST_##name)
#define RUNTIME_PRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_PRODUCT) }, #define RUNTIME_PRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_PRODUCT) },
#define RUNTIME_PD_PRODUCT_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_PRODUCT | Flag::KIND_PLATFORM_DEPENDENT) }, #define RUNTIME_PD_PRODUCT_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_PRODUCT | Flag::KIND_PLATFORM_DEPENDENT) },
#define RUNTIME_DIAGNOSTIC_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DIAGNOSTIC) }, #define RUNTIME_DIAGNOSTIC_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DIAGNOSTIC) },
#define RUNTIME_EXPERIMENTAL_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_EXPERIMENTAL) }, #define RUNTIME_EXPERIMENTAL_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_EXPERIMENTAL) },
#define RUNTIME_MANAGEABLE_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_MANAGEABLE) }, #define RUNTIME_MANAGEABLE_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_MANAGEABLE) },
#define RUNTIME_PRODUCT_RW_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_PRODUCT | Flag::KIND_READ_WRITE) }, #define RUNTIME_PRODUCT_RW_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_PRODUCT | Flag::KIND_READ_WRITE) },
#define RUNTIME_DEVELOP_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DEVELOP) }, #define RUNTIME_DEVELOP_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DEVELOP) },
#define RUNTIME_PD_DEVELOP_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) }, #define RUNTIME_PD_DEVELOP_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
#define RUNTIME_NOTPRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_NOT_PRODUCT) }, #define RUNTIME_NOTPRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_NOT_PRODUCT) },
#define JVMCI_PRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_PRODUCT) }, #define JVMCI_PRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_PRODUCT) },
#define JVMCI_PD_PRODUCT_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_PRODUCT | Flag::KIND_PLATFORM_DEPENDENT) }, #define JVMCI_PD_PRODUCT_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_PRODUCT | Flag::KIND_PLATFORM_DEPENDENT) },
#define JVMCI_DEVELOP_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_DEVELOP) },
#define JVMCI_PD_DEVELOP_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
#define JVMCI_DIAGNOSTIC_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_DIAGNOSTIC) }, #define JVMCI_DIAGNOSTIC_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_DIAGNOSTIC) },
#define JVMCI_EXPERIMENTAL_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_EXPERIMENTAL) }, #define JVMCI_EXPERIMENTAL_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_EXPERIMENTAL) },
#define JVMCI_NOTPRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_NOT_PRODUCT) }, #define JVMCI_DEVELOP_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_DEVELOP) },
#define JVMCI_PD_DEVELOP_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
#define JVMCI_NOTPRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_JVMCI | Flag::KIND_NOT_PRODUCT) },
#ifdef _LP64 #ifdef _LP64
#define RUNTIME_LP64_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_LP64_PRODUCT) }, #define RUNTIME_LP64_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_LP64_PRODUCT) },
@ -567,30 +565,30 @@ const char* Flag::flag_error_str(Flag::Error error) {
#define C1_PRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_PRODUCT) }, #define C1_PRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_PRODUCT) },
#define C1_PD_PRODUCT_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_PRODUCT | Flag::KIND_PLATFORM_DEPENDENT) }, #define C1_PD_PRODUCT_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_PRODUCT | Flag::KIND_PLATFORM_DEPENDENT) },
#define C1_DIAGNOSTIC_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_DIAGNOSTIC) }, #define C1_DIAGNOSTIC_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_DIAGNOSTIC) },
#define C1_DEVELOP_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_DEVELOP) }, #define C1_DEVELOP_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_DEVELOP) },
#define C1_PD_DEVELOP_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) }, #define C1_PD_DEVELOP_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
#define C1_NOTPRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_NOT_PRODUCT) }, #define C1_NOTPRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C1 | Flag::KIND_NOT_PRODUCT) },
#define C2_PRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_PRODUCT) }, #define C2_PRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_PRODUCT) },
#define C2_PD_PRODUCT_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_PRODUCT | Flag::KIND_PLATFORM_DEPENDENT) }, #define C2_PD_PRODUCT_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_PRODUCT | Flag::KIND_PLATFORM_DEPENDENT) },
#define C2_DIAGNOSTIC_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_DIAGNOSTIC) }, #define C2_DIAGNOSTIC_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_DIAGNOSTIC) },
#define C2_EXPERIMENTAL_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_EXPERIMENTAL) }, #define C2_EXPERIMENTAL_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_EXPERIMENTAL) },
#define C2_DEVELOP_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_DEVELOP) }, #define C2_DEVELOP_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_DEVELOP) },
#define C2_PD_DEVELOP_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) }, #define C2_PD_DEVELOP_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
#define C2_NOTPRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_NOT_PRODUCT) }, #define C2_NOTPRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_C2 | Flag::KIND_NOT_PRODUCT) },
#define ARCH_PRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_PRODUCT) }, #define ARCH_PRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_PRODUCT) },
#define ARCH_DIAGNOSTIC_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_DIAGNOSTIC) }, #define ARCH_DIAGNOSTIC_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_DIAGNOSTIC) },
#define ARCH_EXPERIMENTAL_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_EXPERIMENTAL) }, #define ARCH_EXPERIMENTAL_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_EXPERIMENTAL) },
#define ARCH_DEVELOP_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_DEVELOP) }, #define ARCH_DEVELOP_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_DEVELOP) },
#define ARCH_NOTPRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_NOT_PRODUCT) }, #define ARCH_NOTPRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_ARCH | Flag::KIND_NOT_PRODUCT) },
#define SHARK_PRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_SHARK | Flag::KIND_PRODUCT) }, #define SHARK_PRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_SHARK | Flag::KIND_PRODUCT) },
#define SHARK_PD_PRODUCT_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_SHARK | Flag::KIND_PRODUCT | Flag::KIND_PLATFORM_DEPENDENT) }, #define SHARK_PD_PRODUCT_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_SHARK | Flag::KIND_PRODUCT | Flag::KIND_PLATFORM_DEPENDENT) },
#define SHARK_DIAGNOSTIC_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_SHARK | Flag::KIND_DIAGNOSTIC) }, #define SHARK_DIAGNOSTIC_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_SHARK | Flag::KIND_DIAGNOSTIC) },
#define SHARK_DEVELOP_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_SHARK | Flag::KIND_DEVELOP) }, #define SHARK_DEVELOP_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_SHARK | Flag::KIND_DEVELOP) },
#define SHARK_PD_DEVELOP_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_SHARK | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) }, #define SHARK_PD_DEVELOP_FLAG_STRUCT( type, name, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_SHARK | Flag::KIND_DEVELOP | Flag::KIND_PLATFORM_DEPENDENT) },
#define SHARK_NOTPRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), NAME(name), NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_SHARK | Flag::KIND_NOT_PRODUCT) }, #define SHARK_NOTPRODUCT_FLAG_STRUCT( type, name, value, doc) { #type, XSTR(name), (void*) &name, NOT_PRODUCT_ARG(doc) Flag::Flags(Flag::DEFAULT | Flag::KIND_SHARK | Flag::KIND_NOT_PRODUCT) },
static Flag flagTable[] = { static Flag flagTable[] = {
RUNTIME_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, \ RUNTIME_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, \

View file

@ -4293,9 +4293,9 @@ public:
#define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name; #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name;
#define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name; #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name;
#ifdef PRODUCT #ifdef PRODUCT
#define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type CONST_##name; const type name = value; #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) const type name = value;
#define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type CONST_##name; const type name = pd_##name; #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) const type name = pd_##name;
#define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type CONST_##name; #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) const type name = value;
#else #else
#define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name; #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name;
#define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type name; #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type name;
@ -4316,9 +4316,9 @@ public:
#define MATERIALIZE_MANAGEABLE_FLAG(type, name, value, doc) type name = value; #define MATERIALIZE_MANAGEABLE_FLAG(type, name, value, doc) type name = value;
#define MATERIALIZE_PRODUCT_RW_FLAG(type, name, value, doc) type name = value; #define MATERIALIZE_PRODUCT_RW_FLAG(type, name, value, doc) type name = value;
#ifdef PRODUCT #ifdef PRODUCT
#define MATERIALIZE_DEVELOPER_FLAG(type, name, value, doc) type CONST_##name = value; #define MATERIALIZE_DEVELOPER_FLAG(type, name, value, doc)
#define MATERIALIZE_PD_DEVELOPER_FLAG(type, name, doc) type CONST_##name = pd_##name; #define MATERIALIZE_PD_DEVELOPER_FLAG(type, name, doc)
#define MATERIALIZE_NOTPRODUCT_FLAG(type, name, value, doc) type CONST_##name = value; #define MATERIALIZE_NOTPRODUCT_FLAG(type, name, value, doc)
#else #else
#define MATERIALIZE_DEVELOPER_FLAG(type, name, value, doc) type name = value; #define MATERIALIZE_DEVELOPER_FLAG(type, name, value, doc) type name = value;
#define MATERIALIZE_PD_DEVELOPER_FLAG(type, name, doc) type name = pd_##name; #define MATERIALIZE_PD_DEVELOPER_FLAG(type, name, doc) type name = pd_##name;