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