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