873 develop(bool, StressArrayCopyMacroNode, false, \
874 "Perform ArrayCopy load/store replacement during IGVN only") \
875 \
876 develop(bool, RenumberLiveNodes, true, \
877 "Renumber live nodes") \
878 \
879 product(uintx, LoopStripMiningIter, 0, \
880 "Number of iterations in strip mined loop") \
881 range(0, max_juint) \
882 constraint(LoopStripMiningIterConstraintFunc, AfterErgo) \
883 \
884 product(uintx, LoopStripMiningIterShortLoop, 0, \
885 "Loop with fewer iterations are not strip mined") \
886 range(0, max_juint) \
887 \
888 product(bool, UseProfiledLoopPredicate, true, \
889 "Move checks with an uncommon trap out of loops based on " \
890 "profiling data. " \
891 "Requires UseLoopPredicate to be turned on (default).") \
892 \
893 develop(uintx, StressLongCountedLoop, 0, \
894 "if > 0, convert int counted loops to long counted loops" \
895 "to stress handling of long counted loops: run inner loop" \
896 "for at most jint_max / StressLongCountedLoop") \
897 range(0, max_juint) \
898 \
899 product(bool, DuplicateBackedge, true, DIAGNOSTIC, \
900 "Transform loop with a merge point into 2 loops if inner loop is" \
901 "expected to optimize better") \
902 \
903 develop(bool, StressDuplicateBackedge, false, \
904 "Run DuplicateBackedge whenever possible ignoring benefit" \
905 "analysis") \
906 \
907 product(bool, VerifyReceiverTypes, trueInDebug, DIAGNOSTIC, \
908 "Verify receiver types at runtime") \
909 \
910 product(intx, TypeProfileSubTypeCheckCommonThreshold, 50, \
911 "Use profile data at type check if profiled types account for" \
912 "more than this threshold") \
|
873 develop(bool, StressArrayCopyMacroNode, false, \
874 "Perform ArrayCopy load/store replacement during IGVN only") \
875 \
876 develop(bool, RenumberLiveNodes, true, \
877 "Renumber live nodes") \
878 \
879 product(uintx, LoopStripMiningIter, 0, \
880 "Number of iterations in strip mined loop") \
881 range(0, max_juint) \
882 constraint(LoopStripMiningIterConstraintFunc, AfterErgo) \
883 \
884 product(uintx, LoopStripMiningIterShortLoop, 0, \
885 "Loop with fewer iterations are not strip mined") \
886 range(0, max_juint) \
887 \
888 product(bool, UseProfiledLoopPredicate, true, \
889 "Move checks with an uncommon trap out of loops based on " \
890 "profiling data. " \
891 "Requires UseLoopPredicate to be turned on (default).") \
892 \
893 product(bool, UseArrayLoadStoreProfile, true, DIAGNOSTIC, \
894 "Take advantage of profiling at array load/store") \
895 \
896 product(bool, UseACmpProfile, true, DIAGNOSTIC, \
897 "Take advantage of profiling at if_acmp<cond>") \
898 \
899 develop(uintx, StressLongCountedLoop, 0, \
900 "if > 0, convert int counted loops to long counted loops" \
901 "to stress handling of long counted loops: run inner loop" \
902 "for at most jint_max / StressLongCountedLoop") \
903 range(0, max_juint) \
904 \
905 product(bool, DuplicateBackedge, true, DIAGNOSTIC, \
906 "Transform loop with a merge point into 2 loops if inner loop is" \
907 "expected to optimize better") \
908 \
909 develop(bool, StressDuplicateBackedge, false, \
910 "Run DuplicateBackedge whenever possible ignoring benefit" \
911 "analysis") \
912 \
913 product(bool, VerifyReceiverTypes, trueInDebug, DIAGNOSTIC, \
914 "Verify receiver types at runtime") \
915 \
916 product(intx, TypeProfileSubTypeCheckCommonThreshold, 50, \
917 "Use profile data at type check if profiled types account for" \
918 "more than this threshold") \
|