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