572 \ 573 product(intx, MaxLabelRootDepth, 1100, \ 574 "Maximum times call Label_Root to prevent stack overflow") \ 575 range(100, max_jint) \ 576 \ 577 diagnostic(intx, DominatorSearchLimit, 1000, \ 578 "Iterations limit in Node::dominates") \ 579 range(0, max_jint) \ 580 \ 581 product(bool, BlockLayoutByFrequency, true, \ 582 "Use edge frequencies to drive block ordering") \ 583 \ 584 product(intx, BlockLayoutMinDiamondPercentage, 20, \ 585 "Miniumum %% of a successor (predecessor) for which block " \ 586 "layout a will allow a fork (join) in a single chain") \ 587 range(0, 100) \ 588 \ 589 product(bool, BlockLayoutRotateLoops, true, \ 590 "Allow back branches to be fall throughs in the block layour") \ 591 \ 592 diagnostic(bool, InlineReflectionGetCallerClass, true, \ 593 "inline sun.reflect.Reflection.getCallerClass(), known to be " \ 594 "part of base library DLL") \ 595 \ 596 diagnostic(bool, InlineObjectCopy, true, \ 597 "inline Object.clone and Arrays.copyOf[Range] intrinsics") \ 598 \ 599 diagnostic(bool, SpecialStringCompareTo, true, \ 600 "special version of string compareTo") \ 601 \ 602 diagnostic(bool, SpecialStringIndexOf, true, \ 603 "special version of string indexOf") \ 604 \ 605 diagnostic(bool, SpecialStringEquals, true, \ 606 "special version of string equals") \ 607 \ 608 diagnostic(bool, SpecialArraysEquals, true, \ 609 "special version of Arrays.equals(char[],char[])") \ 610 \ 611 diagnostic(bool, SpecialEncodeISOArray, true, \ 612 "special version of ISO_8859_1$Encoder.encodeISOArray") \ 613 \ 614 develop(bool, BailoutToInterpreterForThrows, false, \ 615 "Compiled methods which throws/catches exceptions will be " \ 616 "deopt and intp.") \ 617 \ 618 develop(bool, ConvertCmpD2CmpF, true, \ 619 "Convert cmpD to cmpF when one input is constant in float range") \ 620 \ 621 develop(bool, ConvertFloat2IntClipping, true, \ 622 "Convert float2int clipping idiom to integer clipping") \ 623 \ 624 develop(bool, Use24BitFPMode, true, \ 625 "Set 24-bit FPU mode on a per-compile basis ") \ 626 \ 627 develop(bool, Use24BitFP, true, \ 628 "use FP instructions that produce 24-bit precise results") \ 629 \ 630 develop(bool, MonomorphicArrayCheck, true, \ 631 "Uncommon-trap array store checks that require full type check") \ 693 "2 for class split, 3 for unique instances") \ 694 range(0, 3) \ 695 constraint(AliasLevelConstraintFunc,AfterErgo) \ 696 \ 697 develop(bool, VerifyAliases, false, \ 698 "perform extra checks on the results of alias analysis") \ 699 \ 700 product(bool, IncrementalInline, true, \ 701 "do post parse inlining") \ 702 \ 703 develop(bool, AlwaysIncrementalInline, false, \ 704 "do all inlining incrementally") \ 705 \ 706 product(intx, LiveNodeCountInliningCutoff, 40000, \ 707 "max number of live nodes in a method") \ 708 range(0, max_juint / 8) \ 709 \ 710 diagnostic(bool, OptimizeExpensiveOps, true, \ 711 "Find best control for expensive operations") \ 712 \ 713 diagnostic(bool, UseMathExactIntrinsics, true, \ 714 "Enables intrinsification of various java.lang.Math functions") \ 715 \ 716 diagnostic(bool, UseMultiplyToLenIntrinsic, false, \ 717 "Enables intrinsification of BigInteger.multiplyToLen()") \ 718 \ 719 diagnostic(bool, UseSquareToLenIntrinsic, false, \ 720 "Enables intrinsification of BigInteger.squareToLen()") \ 721 \ 722 diagnostic(bool, UseMulAddIntrinsic, false, \ 723 "Enables intrinsification of BigInteger.mulAdd()") \ 724 \ 725 diagnostic(bool, UseMontgomeryMultiplyIntrinsic, false, \ 726 "Enables intrinsification of BigInteger.montgomeryMultiply()") \ 727 \ 728 diagnostic(bool, UseMontgomerySquareIntrinsic, false, \ 729 "Enables intrinsification of BigInteger.montgomerySquare()") \ 730 \ 731 product(bool, UseTypeSpeculation, true, \ 732 "Speculatively propagate types from profiles") \ 733 \ 734 diagnostic(bool, UseInlineDepthForSpeculativeTypes, true, \ 735 "Carry inline depth of profile point with speculative type " \ 736 "and give priority to profiling from lower inline depth") \ 737 \ 738 product_pd(bool, TrapBasedRangeChecks, \ 739 "Generate code for range checks that uses a cmp and trap " \ 740 "instruction raising SIGTRAP. Used on PPC64.") \ 741 \ 742 product(intx, ArrayCopyLoadStoreMaxElem, 8, \ 743 "Maximum number of arraycopy elements inlined as a sequence of" \ 744 "loads/stores") \ 745 range(0, max_intx) \ 746 \ 747 develop(bool, StressArrayCopyMacroNode, false, \ 748 "Perform ArrayCopy load/store replacement during IGVN only") \ | 572 \ 573 product(intx, MaxLabelRootDepth, 1100, \ 574 "Maximum times call Label_Root to prevent stack overflow") \ 575 range(100, max_jint) \ 576 \ 577 diagnostic(intx, DominatorSearchLimit, 1000, \ 578 "Iterations limit in Node::dominates") \ 579 range(0, max_jint) \ 580 \ 581 product(bool, BlockLayoutByFrequency, true, \ 582 "Use edge frequencies to drive block ordering") \ 583 \ 584 product(intx, BlockLayoutMinDiamondPercentage, 20, \ 585 "Miniumum %% of a successor (predecessor) for which block " \ 586 "layout a will allow a fork (join) in a single chain") \ 587 range(0, 100) \ 588 \ 589 product(bool, BlockLayoutRotateLoops, true, \ 590 "Allow back branches to be fall throughs in the block layour") \ 591 \ 592 develop(bool, InlineReflectionGetCallerClass, true, \ 593 "inline sun.reflect.Reflection.getCallerClass(), known to be " \ 594 "part of base library DLL") \ 595 \ 596 develop(bool, InlineObjectCopy, true, \ 597 "inline Object.clone and Arrays.copyOf[Range] intrinsics") \ 598 \ 599 develop(bool, SpecialStringCompareTo, true, \ 600 "special version of string compareTo") \ 601 \ 602 develop(bool, SpecialStringIndexOf, true, \ 603 "special version of string indexOf") \ 604 \ 605 develop(bool, SpecialStringEquals, true, \ 606 "special version of string equals") \ 607 \ 608 develop(bool, SpecialArraysEquals, true, \ 609 "special version of Arrays.equals(char[],char[])") \ 610 \ 611 product(bool, SpecialEncodeISOArray, true, \ 612 "special version of ISO_8859_1$Encoder.encodeISOArray") \ 613 \ 614 develop(bool, BailoutToInterpreterForThrows, false, \ 615 "Compiled methods which throws/catches exceptions will be " \ 616 "deopt and intp.") \ 617 \ 618 develop(bool, ConvertCmpD2CmpF, true, \ 619 "Convert cmpD to cmpF when one input is constant in float range") \ 620 \ 621 develop(bool, ConvertFloat2IntClipping, true, \ 622 "Convert float2int clipping idiom to integer clipping") \ 623 \ 624 develop(bool, Use24BitFPMode, true, \ 625 "Set 24-bit FPU mode on a per-compile basis ") \ 626 \ 627 develop(bool, Use24BitFP, true, \ 628 "use FP instructions that produce 24-bit precise results") \ 629 \ 630 develop(bool, MonomorphicArrayCheck, true, \ 631 "Uncommon-trap array store checks that require full type check") \ 693 "2 for class split, 3 for unique instances") \ 694 range(0, 3) \ 695 constraint(AliasLevelConstraintFunc,AfterErgo) \ 696 \ 697 develop(bool, VerifyAliases, false, \ 698 "perform extra checks on the results of alias analysis") \ 699 \ 700 product(bool, IncrementalInline, true, \ 701 "do post parse inlining") \ 702 \ 703 develop(bool, AlwaysIncrementalInline, false, \ 704 "do all inlining incrementally") \ 705 \ 706 product(intx, LiveNodeCountInliningCutoff, 40000, \ 707 "max number of live nodes in a method") \ 708 range(0, max_juint / 8) \ 709 \ 710 diagnostic(bool, OptimizeExpensiveOps, true, \ 711 "Find best control for expensive operations") \ 712 \ 713 product(bool, UseMathExactIntrinsics, true, \ 714 "Enables intrinsification of various java.lang.Math functions") \ 715 \ 716 product(bool, UseMultiplyToLenIntrinsic, false, \ 717 "Enables intrinsification of BigInteger.multiplyToLen()") \ 718 \ 719 product(bool, UseSquareToLenIntrinsic, false, \ 720 "Enables intrinsification of BigInteger.squareToLen()") \ 721 \ 722 product(bool, UseMulAddIntrinsic, false, \ 723 "Enables intrinsification of BigInteger.mulAdd()") \ 724 \ 725 product(bool, UseMontgomeryMultiplyIntrinsic, false, \ 726 "Enables intrinsification of BigInteger.montgomeryMultiply()") \ 727 \ 728 product(bool, UseMontgomerySquareIntrinsic, false, \ 729 "Enables intrinsification of BigInteger.montgomerySquare()") \ 730 \ 731 product(bool, UseTypeSpeculation, true, \ 732 "Speculatively propagate types from profiles") \ 733 \ 734 diagnostic(bool, UseInlineDepthForSpeculativeTypes, true, \ 735 "Carry inline depth of profile point with speculative type " \ 736 "and give priority to profiling from lower inline depth") \ 737 \ 738 product_pd(bool, TrapBasedRangeChecks, \ 739 "Generate code for range checks that uses a cmp and trap " \ 740 "instruction raising SIGTRAP. Used on PPC64.") \ 741 \ 742 product(intx, ArrayCopyLoadStoreMaxElem, 8, \ 743 "Maximum number of arraycopy elements inlined as a sequence of" \ 744 "loads/stores") \ 745 range(0, max_intx) \ 746 \ 747 develop(bool, StressArrayCopyMacroNode, false, \ 748 "Perform ArrayCopy load/store replacement during IGVN only") \ |