49 #endif
50 #ifdef TARGET_OS_FAMILY_windows
51 # include "c2_globals_windows.hpp"
52 #endif
53 #ifdef TARGET_OS_FAMILY_aix
54 # include "c2_globals_aix.hpp"
55 #endif
56 #ifdef TARGET_OS_FAMILY_bsd
57 # include "c2_globals_bsd.hpp"
58 #endif
59
60 //
61 // Defines all globals flags used by the server compiler.
62 //
63
64 #define C2_FLAGS(develop, \
65 develop_pd, \
66 product, \
67 product_pd, \
68 diagnostic, \
69 experimental, \
70 notproduct, \
71 range, \
72 constraint, \
73 writeable) \
74 \
75 develop(bool, StressLCM, false, \
76 "Randomize instruction scheduling in LCM") \
77 \
78 develop(bool, StressGCM, false, \
79 "Randomize instruction scheduling in GCM") \
80 \
81 develop(intx, OptoPrologueNops, 0, \
82 "Insert this many extra nop instructions " \
83 "in the prologue of every nmethod") \
84 range(0, 128) \
85 \
86 product_pd(intx, InteriorEntryAlignment, \
87 "Code alignment for interior entry points " \
88 "in generated code (in bytes)") \
186 \
187 develop(bool, TraceOptoParse, false, \
188 "Trace bytecode parse and control-flow merge") \
189 \
190 product_pd(intx, LoopUnrollLimit, \
191 "Unroll loop bodies with node count less than this") \
192 range(0, max_jint / 4) \
193 \
194 product_pd(intx, LoopPercentProfileLimit, \
195 "Unroll loop bodies with % node count of profile limit") \
196 range(10, 100) \
197 \
198 product(intx, LoopMaxUnroll, 16, \
199 "Maximum number of unrolls for main loop") \
200 range(0, max_jint) \
201 \
202 product_pd(bool, SuperWordLoopUnrollAnalysis, \
203 "Map number of unrolls for main loop via " \
204 "Superword Level Parallelism analysis") \
205 \
206 product_pd(bool, PostLoopMultiversioning, \
207 "Multi versioned post loops to eliminate range checks") \
208 \
209 notproduct(bool, TraceSuperWordLoopUnrollAnalysis, false, \
210 "Trace what Superword Level Parallelism analysis applies") \
211 \
212 product(intx, LoopUnrollMin, 4, \
213 "Minimum number of unroll loop bodies before checking progress" \
214 "of rounds of unroll,optimize,..") \
215 range(0, max_jint) \
216 \
217 develop(intx, UnrollLimitForProfileCheck, 1, \
218 "Don't use profile_trip_cnt() to restrict unrolling until " \
219 "unrolling would push the number of unrolled iterations above " \
220 "UnrollLimitForProfileCheck. A higher value allows more " \
221 "unrolling. Zero acts as a very large value." ) \
222 range(0, max_intx) \
223 \
224 product(intx, MultiArrayExpandLimit, 6, \
225 "Maximum number of individual allocations in an inline-expanded " \
226 "multianewarray instruction") \
747 product_pd(bool, TrapBasedRangeChecks, \
748 "Generate code for range checks that uses a cmp and trap " \
749 "instruction raising SIGTRAP. Used on PPC64.") \
750 \
751 product(intx, ArrayCopyLoadStoreMaxElem, 8, \
752 "Maximum number of arraycopy elements inlined as a sequence of" \
753 "loads/stores") \
754 range(0, max_intx) \
755 \
756 develop(bool, StressArrayCopyMacroNode, false, \
757 "Perform ArrayCopy load/store replacement during IGVN only") \
758 \
759 develop(bool, RenumberLiveNodes, true, \
760 "Renumber live nodes") \
761
762 C2_FLAGS(DECLARE_DEVELOPER_FLAG, \
763 DECLARE_PD_DEVELOPER_FLAG, \
764 DECLARE_PRODUCT_FLAG, \
765 DECLARE_PD_PRODUCT_FLAG, \
766 DECLARE_DIAGNOSTIC_FLAG, \
767 DECLARE_EXPERIMENTAL_FLAG, \
768 DECLARE_NOTPRODUCT_FLAG, \
769 IGNORE_RANGE, \
770 IGNORE_CONSTRAINT, \
771 IGNORE_WRITEABLE)
772
773 #endif // SHARE_VM_OPTO_C2_GLOBALS_HPP
|
49 #endif
50 #ifdef TARGET_OS_FAMILY_windows
51 # include "c2_globals_windows.hpp"
52 #endif
53 #ifdef TARGET_OS_FAMILY_aix
54 # include "c2_globals_aix.hpp"
55 #endif
56 #ifdef TARGET_OS_FAMILY_bsd
57 # include "c2_globals_bsd.hpp"
58 #endif
59
60 //
61 // Defines all globals flags used by the server compiler.
62 //
63
64 #define C2_FLAGS(develop, \
65 develop_pd, \
66 product, \
67 product_pd, \
68 diagnostic, \
69 diagnostic_pd, \
70 experimental, \
71 notproduct, \
72 range, \
73 constraint, \
74 writeable) \
75 \
76 develop(bool, StressLCM, false, \
77 "Randomize instruction scheduling in LCM") \
78 \
79 develop(bool, StressGCM, false, \
80 "Randomize instruction scheduling in GCM") \
81 \
82 develop(intx, OptoPrologueNops, 0, \
83 "Insert this many extra nop instructions " \
84 "in the prologue of every nmethod") \
85 range(0, 128) \
86 \
87 product_pd(intx, InteriorEntryAlignment, \
88 "Code alignment for interior entry points " \
89 "in generated code (in bytes)") \
187 \
188 develop(bool, TraceOptoParse, false, \
189 "Trace bytecode parse and control-flow merge") \
190 \
191 product_pd(intx, LoopUnrollLimit, \
192 "Unroll loop bodies with node count less than this") \
193 range(0, max_jint / 4) \
194 \
195 product_pd(intx, LoopPercentProfileLimit, \
196 "Unroll loop bodies with % node count of profile limit") \
197 range(10, 100) \
198 \
199 product(intx, LoopMaxUnroll, 16, \
200 "Maximum number of unrolls for main loop") \
201 range(0, max_jint) \
202 \
203 product_pd(bool, SuperWordLoopUnrollAnalysis, \
204 "Map number of unrolls for main loop via " \
205 "Superword Level Parallelism analysis") \
206 \
207 diagnostic_pd(bool, PostLoopMultiversioning, \
208 "Multi versioned post loops to eliminate range checks") \
209 \
210 notproduct(bool, TraceSuperWordLoopUnrollAnalysis, false, \
211 "Trace what Superword Level Parallelism analysis applies") \
212 \
213 product(intx, LoopUnrollMin, 4, \
214 "Minimum number of unroll loop bodies before checking progress" \
215 "of rounds of unroll,optimize,..") \
216 range(0, max_jint) \
217 \
218 develop(intx, UnrollLimitForProfileCheck, 1, \
219 "Don't use profile_trip_cnt() to restrict unrolling until " \
220 "unrolling would push the number of unrolled iterations above " \
221 "UnrollLimitForProfileCheck. A higher value allows more " \
222 "unrolling. Zero acts as a very large value." ) \
223 range(0, max_intx) \
224 \
225 product(intx, MultiArrayExpandLimit, 6, \
226 "Maximum number of individual allocations in an inline-expanded " \
227 "multianewarray instruction") \
748 product_pd(bool, TrapBasedRangeChecks, \
749 "Generate code for range checks that uses a cmp and trap " \
750 "instruction raising SIGTRAP. Used on PPC64.") \
751 \
752 product(intx, ArrayCopyLoadStoreMaxElem, 8, \
753 "Maximum number of arraycopy elements inlined as a sequence of" \
754 "loads/stores") \
755 range(0, max_intx) \
756 \
757 develop(bool, StressArrayCopyMacroNode, false, \
758 "Perform ArrayCopy load/store replacement during IGVN only") \
759 \
760 develop(bool, RenumberLiveNodes, true, \
761 "Renumber live nodes") \
762
763 C2_FLAGS(DECLARE_DEVELOPER_FLAG, \
764 DECLARE_PD_DEVELOPER_FLAG, \
765 DECLARE_PRODUCT_FLAG, \
766 DECLARE_PD_PRODUCT_FLAG, \
767 DECLARE_DIAGNOSTIC_FLAG, \
768 DECLARE_PD_DIAGNOSTIC_FLAG, \
769 DECLARE_EXPERIMENTAL_FLAG, \
770 DECLARE_NOTPRODUCT_FLAG, \
771 IGNORE_RANGE, \
772 IGNORE_CONSTRAINT, \
773 IGNORE_WRITEABLE)
774
775 #endif // SHARE_VM_OPTO_C2_GLOBALS_HPP
|