813 develop(bool, StressArrayCopyMacroNode, false, \
814 "Perform ArrayCopy load/store replacement during IGVN only") \
815 \
816 develop(bool, RenumberLiveNodes, true, \
817 "Renumber live nodes") \
818 \
819 product(uintx, LoopStripMiningIter, 0, \
820 "Number of iterations in strip mined loop") \
821 range(0, max_juint) \
822 constraint(LoopStripMiningIterConstraintFunc, AfterErgo) \
823 \
824 product(uintx, LoopStripMiningIterShortLoop, 0, \
825 "Loop with fewer iterations are not strip mined") \
826 range(0, max_juint) \
827 \
828 product(bool, UseProfiledLoopPredicate, true, \
829 "Move checks with an uncommon trap out of loops based on " \
830 "profiling data. " \
831 "Requires UseLoopPredicate to be turned on (default).") \
832 \
833 develop(uintx, StressLongCountedLoop, 0, \
834 "if > 0, convert int counted loops to long counted loops" \
835 "to stress handling of long counted loops: run inner loop" \
836 "for at most jint_max / StressLongCountedLoop") \
837 range(0, max_juint) \
838 \
839 product(bool, DuplicateBackedge, true, DIAGNOSTIC, \
840 "Transform loop with a merge point into 2 loops if inner loop is" \
841 "expected to optimize better") \
842 \
843 develop(bool, StressDuplicateBackedge, false, \
844 "Run DuplicateBackedge whenever possible ignoring benefit" \
845 "analysis") \
846 \
847 product(bool, VerifyReceiverTypes, trueInDebug, DIAGNOSTIC, \
848 "Verify receiver types at runtime") \
849 \
850 product(intx, TypeProfileSubTypeCheckCommonThreshold, 50, \
851 "Use profile data at type check if profiled types account for" \
852 "more than this threshold") \
|
813 develop(bool, StressArrayCopyMacroNode, false, \
814 "Perform ArrayCopy load/store replacement during IGVN only") \
815 \
816 develop(bool, RenumberLiveNodes, true, \
817 "Renumber live nodes") \
818 \
819 product(uintx, LoopStripMiningIter, 0, \
820 "Number of iterations in strip mined loop") \
821 range(0, max_juint) \
822 constraint(LoopStripMiningIterConstraintFunc, AfterErgo) \
823 \
824 product(uintx, LoopStripMiningIterShortLoop, 0, \
825 "Loop with fewer iterations are not strip mined") \
826 range(0, max_juint) \
827 \
828 product(bool, UseProfiledLoopPredicate, true, \
829 "Move checks with an uncommon trap out of loops based on " \
830 "profiling data. " \
831 "Requires UseLoopPredicate to be turned on (default).") \
832 \
833 product(bool, UseArrayLoadStoreProfile, true, \
834 "Take advantage of profiling at array load/store") \
835 \
836 product(bool, UseACmpProfile, true, \
837 "Take advantage of profiling at acmp") \
838 \
839 develop(uintx, StressLongCountedLoop, 0, \
840 "if > 0, convert int counted loops to long counted loops" \
841 "to stress handling of long counted loops: run inner loop" \
842 "for at most jint_max / StressLongCountedLoop") \
843 range(0, max_juint) \
844 \
845 product(bool, DuplicateBackedge, true, DIAGNOSTIC, \
846 "Transform loop with a merge point into 2 loops if inner loop is" \
847 "expected to optimize better") \
848 \
849 develop(bool, StressDuplicateBackedge, false, \
850 "Run DuplicateBackedge whenever possible ignoring benefit" \
851 "analysis") \
852 \
853 product(bool, VerifyReceiverTypes, trueInDebug, DIAGNOSTIC, \
854 "Verify receiver types at runtime") \
855 \
856 product(intx, TypeProfileSubTypeCheckCommonThreshold, 50, \
857 "Use profile data at type check if profiled types account for" \
858 "more than this threshold") \
|