772 develop(bool, StressArrayCopyMacroNode, false, \
773 "Perform ArrayCopy load/store replacement during IGVN only") \
774 \
775 develop(bool, RenumberLiveNodes, true, \
776 "Renumber live nodes") \
777 \
778 product(uintx, LoopStripMiningIter, 0, \
779 "Number of iterations in strip mined loop") \
780 range(0, max_juint) \
781 constraint(LoopStripMiningIterConstraintFunc, AfterErgo) \
782 \
783 product(uintx, LoopStripMiningIterShortLoop, 0, \
784 "Loop with fewer iterations are not strip mined") \
785 range(0, max_juint) \
786 \
787 product(bool, UseProfiledLoopPredicate, true, \
788 "Move checks with an uncommon trap out of loops based on " \
789 "profiling data. " \
790 "Requires UseLoopPredicate to be turned on (default).") \
791 \
792 develop(uintx, StressLongCountedLoop, 0, \
793 "if > 0, convert int counted loops to long counted loops" \
794 "to stress handling of long counted loops: run inner loop" \
795 "for at most jint_max / StressLongCountedLoop") \
796 range(0, max_juint) \
797 \
798 product(bool, DuplicateBackedge, true, DIAGNOSTIC, \
799 "Transform loop with a merge point into 2 loops if inner loop is" \
800 "expected to optimize better") \
801 \
802 develop(bool, StressDuplicateBackedge, false, \
803 "Run DuplicateBackedge whenever possible ignoring benefit" \
804 "analysis") \
805 \
806 product(bool, VerifyReceiverTypes, trueInDebug, DIAGNOSTIC, \
807 "Verify receiver types at runtime") \
808 \
809 product(intx, TypeProfileSubTypeCheckCommonThreshold, 50, \
810 "Use profile data at type check if profiled types account for" \
811 "more than this threshold") \
|
772 develop(bool, StressArrayCopyMacroNode, false, \
773 "Perform ArrayCopy load/store replacement during IGVN only") \
774 \
775 develop(bool, RenumberLiveNodes, true, \
776 "Renumber live nodes") \
777 \
778 product(uintx, LoopStripMiningIter, 0, \
779 "Number of iterations in strip mined loop") \
780 range(0, max_juint) \
781 constraint(LoopStripMiningIterConstraintFunc, AfterErgo) \
782 \
783 product(uintx, LoopStripMiningIterShortLoop, 0, \
784 "Loop with fewer iterations are not strip mined") \
785 range(0, max_juint) \
786 \
787 product(bool, UseProfiledLoopPredicate, true, \
788 "Move checks with an uncommon trap out of loops based on " \
789 "profiling data. " \
790 "Requires UseLoopPredicate to be turned on (default).") \
791 \
792 product(bool, UseArrayLoadStoreProfile, true, \
793 "Take advantage of profiling at array load/store") \
794 \
795 product(bool, UseACmpProfile, true, \
796 "Take advantage of profiling at acmp") \
797 \
798 develop(uintx, StressLongCountedLoop, 0, \
799 "if > 0, convert int counted loops to long counted loops" \
800 "to stress handling of long counted loops: run inner loop" \
801 "for at most jint_max / StressLongCountedLoop") \
802 range(0, max_juint) \
803 \
804 product(bool, DuplicateBackedge, true, DIAGNOSTIC, \
805 "Transform loop with a merge point into 2 loops if inner loop is" \
806 "expected to optimize better") \
807 \
808 develop(bool, StressDuplicateBackedge, false, \
809 "Run DuplicateBackedge whenever possible ignoring benefit" \
810 "analysis") \
811 \
812 product(bool, VerifyReceiverTypes, trueInDebug, DIAGNOSTIC, \
813 "Verify receiver types at runtime") \
814 \
815 product(intx, TypeProfileSubTypeCheckCommonThreshold, 50, \
816 "Use profile data at type check if profiled types account for" \
817 "more than this threshold") \
|