476 \
477 notproduct(bool, TraceReduceAllocationMerges, false, \
478 "Trace decision for simplifying allocation merges.") \
479 \
480 develop(bool, VerifyReduceAllocationMerges, true, \
481 "Verify reduce allocation merges in escape analysis") \
482 \
483 product(bool, DoEscapeAnalysis, true, \
484 "Perform escape analysis") \
485 \
486 product(double, EscapeAnalysisTimeout, 20. DEBUG_ONLY(+40.), \
487 "Abort EA when it reaches time limit (in sec)") \
488 range(0, DBL_MAX) \
489 \
490 develop(bool, ExitEscapeAnalysisOnTimeout, true, \
491 "Exit or throw assert in EA when it reaches time limit") \
492 \
493 notproduct(bool, PrintEscapeAnalysis, false, \
494 "Print the results of escape analysis") \
495 \
496 product(bool, EliminateAllocations, true, \
497 "Use escape analysis to eliminate allocations") \
498 \
499 notproduct(bool, PrintEliminateAllocations, false, \
500 "Print out when allocations are eliminated") \
501 \
502 product(intx, EliminateAllocationArraySizeLimit, 64, \
503 "Array size (number of elements) limit for scalar replacement") \
504 range(0, max_jint) \
505 \
506 product(intx, EliminateAllocationFieldsLimit, 512, DIAGNOSTIC, \
507 "Number of fields in instance limit for scalar replacement") \
508 range(0, max_jint) \
509 \
510 product(bool, OptimizePtrCompare, true, \
511 "Use escape analysis to optimize pointers compare") \
512 \
513 notproduct(bool, PrintOptimizePtrCompare, false, \
514 "Print information about optimized pointers compare") \
515 \
|
476 \
477 notproduct(bool, TraceReduceAllocationMerges, false, \
478 "Trace decision for simplifying allocation merges.") \
479 \
480 develop(bool, VerifyReduceAllocationMerges, true, \
481 "Verify reduce allocation merges in escape analysis") \
482 \
483 product(bool, DoEscapeAnalysis, true, \
484 "Perform escape analysis") \
485 \
486 product(double, EscapeAnalysisTimeout, 20. DEBUG_ONLY(+40.), \
487 "Abort EA when it reaches time limit (in sec)") \
488 range(0, DBL_MAX) \
489 \
490 develop(bool, ExitEscapeAnalysisOnTimeout, true, \
491 "Exit or throw assert in EA when it reaches time limit") \
492 \
493 notproduct(bool, PrintEscapeAnalysis, false, \
494 "Print the results of escape analysis") \
495 \
496 product(bool, DoPartialEscapeAnalysis, true, EXPERIMENTAL, \
497 "Perform partial escape analysis") \
498 \
499 product(ccstr, PEAMethodOnly, nullptr, EXPERIMENTAL, \
500 "perform PEA for only matched methods") \
501 \
502 product(bool, PEAParanoid, false, EXPERIMENTAL, \
503 "Abort when C2 expands an object which has been materialized." \
504 "Duplicated allocation is detected caused by PEA.") \
505 \
506 notproduct(bool, PEAVerbose, false, \
507 "trace PEA in verbose") \
508 \
509 notproduct(intx, PEA_debug_idx, 0, \
510 "only select ObjID in PEA when debug_idx > 0;" \
511 "skip ObjID if debug_idx < 0") \
512 \
513 notproduct(intx, PEA_debug_start, 0, \
514 "only start performing PEA after _debug_start") \
515 \
516 notproduct(intx, PEA_debug_stop, INT_MAX, \
517 "stop performing PEA after (excluded) _debug_stop") \
518 \
519 product(bool, EliminateAllocations, true, \
520 "Use escape analysis to eliminate allocations") \
521 \
522 notproduct(bool, PrintEliminateAllocations, false, \
523 "Print out when allocations are eliminated") \
524 \
525 product(intx, EliminateAllocationArraySizeLimit, 64, \
526 "Array size (number of elements) limit for scalar replacement") \
527 range(0, max_jint) \
528 \
529 product(intx, EliminateAllocationFieldsLimit, 512, DIAGNOSTIC, \
530 "Number of fields in instance limit for scalar replacement") \
531 range(0, max_jint) \
532 \
533 product(bool, OptimizePtrCompare, true, \
534 "Use escape analysis to optimize pointers compare") \
535 \
536 notproduct(bool, PrintOptimizePtrCompare, false, \
537 "Print information about optimized pointers compare") \
538 \
|