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