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