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