294 int _orig_pc_slot;
295 int _orig_pc_slot_offset_in_bytes;
296
297 int _major_progress; // Count of something big happening
298 bool _inlining_progress; // progress doing incremental inlining?
299 bool _inlining_incrementally;// Are we doing incremental inlining (post parse)
300 bool _has_loops; // True if the method _may_ have some loops
301 bool _has_split_ifs; // True if the method _may_ have some split-if
302 bool _has_unsafe_access; // True if the method _may_ produce faults in unsafe loads or stores.
303 bool _has_stringbuilder; // True StringBuffers or StringBuilders are allocated
304 bool _has_boxed_value; // True if a boxed object is allocated
305 int _max_vector_size; // Maximum size of generated vectors
306 uint _trap_hist[trapHistLength]; // Cumulative traps
307 bool _trap_can_recompile; // Have we emitted a recompiling trap?
308 uint _decompile_count; // Cumulative decompilation counts.
309 bool _do_inlining; // True if we intend to do inlining
310 bool _do_scheduling; // True if we intend to do scheduling
311 bool _do_freq_based_layout; // True if we intend to do frequency based block layout
312 bool _do_count_invocations; // True if we generate code to count invocations
313 bool _do_method_data_update; // True if we generate code to update MethodData*s
314 int _AliasLevel; // Locally-adjusted version of AliasLevel flag.
315 bool _print_assembly; // True if we should dump assembly code for this compilation
316 bool _print_inlining; // True if we should print inlining for this compilation
317 bool _print_intrinsics; // True if we should print intrinsics for this compilation
318 #ifndef PRODUCT
319 bool _trace_opto_output;
320 bool _parsed_irreducible_loop; // True if ciTypeFlow detected irreducible loops during parsing
321 #endif
322 bool _has_irreducible_loop; // Found irreducible loops
323 // JSR 292
324 bool _has_method_handle_invokes; // True if this method has MethodHandle invokes.
325 RTMState _rtm_state; // State of Restricted Transactional Memory usage
326
327 // Compilation environment.
328 Arena _comp_arena; // Arena with lifetime equivalent to Compile
329 ciEnv* _env; // CI interface
330 CompileLog* _log; // from CompilerThread
331 const char* _failure_reason; // for record_failure/failing pattern
332 GrowableArray<CallGenerator*>* _intrinsics; // List of intrinsics.
333 GrowableArray<Node*>* _macro_nodes; // List of nodes which need to be expanded before matching.
567 void set_has_boxed_value(bool z) { _has_boxed_value = z; }
568 int max_vector_size() const { return _max_vector_size; }
569 void set_max_vector_size(int s) { _max_vector_size = s; }
570 void set_trap_count(uint r, uint c) { assert(r < trapHistLength, "oob"); _trap_hist[r] = c; }
571 uint trap_count(uint r) const { assert(r < trapHistLength, "oob"); return _trap_hist[r]; }
572 bool trap_can_recompile() const { return _trap_can_recompile; }
573 void set_trap_can_recompile(bool z) { _trap_can_recompile = z; }
574 uint decompile_count() const { return _decompile_count; }
575 void set_decompile_count(uint c) { _decompile_count = c; }
576 bool allow_range_check_smearing() const;
577 bool do_inlining() const { return _do_inlining; }
578 void set_do_inlining(bool z) { _do_inlining = z; }
579 bool do_scheduling() const { return _do_scheduling; }
580 void set_do_scheduling(bool z) { _do_scheduling = z; }
581 bool do_freq_based_layout() const{ return _do_freq_based_layout; }
582 void set_do_freq_based_layout(bool z){ _do_freq_based_layout = z; }
583 bool do_count_invocations() const{ return _do_count_invocations; }
584 void set_do_count_invocations(bool z){ _do_count_invocations = z; }
585 bool do_method_data_update() const { return _do_method_data_update; }
586 void set_do_method_data_update(bool z) { _do_method_data_update = z; }
587 int AliasLevel() const { return _AliasLevel; }
588 bool print_assembly() const { return _print_assembly; }
589 void set_print_assembly(bool z) { _print_assembly = z; }
590 bool print_inlining() const { return _print_inlining; }
591 void set_print_inlining(bool z) { _print_inlining = z; }
592 bool print_intrinsics() const { return _print_intrinsics; }
593 void set_print_intrinsics(bool z) { _print_intrinsics = z; }
594 RTMState rtm_state() const { return _rtm_state; }
595 void set_rtm_state(RTMState s) { _rtm_state = s; }
596 bool use_rtm() const { return (_rtm_state & NoRTM) == 0; }
597 bool profile_rtm() const { return _rtm_state == ProfileRTM; }
598 // check the CompilerOracle for special behaviours for this compile
599 bool method_has_option(const char * option) {
600 return method() != NULL && method()->has_option(option);
601 }
602 #ifndef PRODUCT
603 bool trace_opto_output() const { return _trace_opto_output; }
604 bool parsed_irreducible_loop() const { return _parsed_irreducible_loop; }
605 void set_parsed_irreducible_loop(bool z) { _parsed_irreducible_loop = z; }
606 int _in_dump_cnt; // Required for dumping ir nodes.
|
294 int _orig_pc_slot;
295 int _orig_pc_slot_offset_in_bytes;
296
297 int _major_progress; // Count of something big happening
298 bool _inlining_progress; // progress doing incremental inlining?
299 bool _inlining_incrementally;// Are we doing incremental inlining (post parse)
300 bool _has_loops; // True if the method _may_ have some loops
301 bool _has_split_ifs; // True if the method _may_ have some split-if
302 bool _has_unsafe_access; // True if the method _may_ produce faults in unsafe loads or stores.
303 bool _has_stringbuilder; // True StringBuffers or StringBuilders are allocated
304 bool _has_boxed_value; // True if a boxed object is allocated
305 int _max_vector_size; // Maximum size of generated vectors
306 uint _trap_hist[trapHistLength]; // Cumulative traps
307 bool _trap_can_recompile; // Have we emitted a recompiling trap?
308 uint _decompile_count; // Cumulative decompilation counts.
309 bool _do_inlining; // True if we intend to do inlining
310 bool _do_scheduling; // True if we intend to do scheduling
311 bool _do_freq_based_layout; // True if we intend to do frequency based block layout
312 bool _do_count_invocations; // True if we generate code to count invocations
313 bool _do_method_data_update; // True if we generate code to update MethodData*s
314 bool _age_code;
315 int _AliasLevel; // Locally-adjusted version of AliasLevel flag.
316 bool _print_assembly; // True if we should dump assembly code for this compilation
317 bool _print_inlining; // True if we should print inlining for this compilation
318 bool _print_intrinsics; // True if we should print intrinsics for this compilation
319 #ifndef PRODUCT
320 bool _trace_opto_output;
321 bool _parsed_irreducible_loop; // True if ciTypeFlow detected irreducible loops during parsing
322 #endif
323 bool _has_irreducible_loop; // Found irreducible loops
324 // JSR 292
325 bool _has_method_handle_invokes; // True if this method has MethodHandle invokes.
326 RTMState _rtm_state; // State of Restricted Transactional Memory usage
327
328 // Compilation environment.
329 Arena _comp_arena; // Arena with lifetime equivalent to Compile
330 ciEnv* _env; // CI interface
331 CompileLog* _log; // from CompilerThread
332 const char* _failure_reason; // for record_failure/failing pattern
333 GrowableArray<CallGenerator*>* _intrinsics; // List of intrinsics.
334 GrowableArray<Node*>* _macro_nodes; // List of nodes which need to be expanded before matching.
568 void set_has_boxed_value(bool z) { _has_boxed_value = z; }
569 int max_vector_size() const { return _max_vector_size; }
570 void set_max_vector_size(int s) { _max_vector_size = s; }
571 void set_trap_count(uint r, uint c) { assert(r < trapHistLength, "oob"); _trap_hist[r] = c; }
572 uint trap_count(uint r) const { assert(r < trapHistLength, "oob"); return _trap_hist[r]; }
573 bool trap_can_recompile() const { return _trap_can_recompile; }
574 void set_trap_can_recompile(bool z) { _trap_can_recompile = z; }
575 uint decompile_count() const { return _decompile_count; }
576 void set_decompile_count(uint c) { _decompile_count = c; }
577 bool allow_range_check_smearing() const;
578 bool do_inlining() const { return _do_inlining; }
579 void set_do_inlining(bool z) { _do_inlining = z; }
580 bool do_scheduling() const { return _do_scheduling; }
581 void set_do_scheduling(bool z) { _do_scheduling = z; }
582 bool do_freq_based_layout() const{ return _do_freq_based_layout; }
583 void set_do_freq_based_layout(bool z){ _do_freq_based_layout = z; }
584 bool do_count_invocations() const{ return _do_count_invocations; }
585 void set_do_count_invocations(bool z){ _do_count_invocations = z; }
586 bool do_method_data_update() const { return _do_method_data_update; }
587 void set_do_method_data_update(bool z) { _do_method_data_update = z; }
588 bool age_code() const { return _age_code; }
589 void set_age_code(bool z) { _age_code = z; }
590 int AliasLevel() const { return _AliasLevel; }
591 bool print_assembly() const { return _print_assembly; }
592 void set_print_assembly(bool z) { _print_assembly = z; }
593 bool print_inlining() const { return _print_inlining; }
594 void set_print_inlining(bool z) { _print_inlining = z; }
595 bool print_intrinsics() const { return _print_intrinsics; }
596 void set_print_intrinsics(bool z) { _print_intrinsics = z; }
597 RTMState rtm_state() const { return _rtm_state; }
598 void set_rtm_state(RTMState s) { _rtm_state = s; }
599 bool use_rtm() const { return (_rtm_state & NoRTM) == 0; }
600 bool profile_rtm() const { return _rtm_state == ProfileRTM; }
601 // check the CompilerOracle for special behaviours for this compile
602 bool method_has_option(const char * option) {
603 return method() != NULL && method()->has_option(option);
604 }
605 #ifndef PRODUCT
606 bool trace_opto_output() const { return _trace_opto_output; }
607 bool parsed_irreducible_loop() const { return _parsed_irreducible_loop; }
608 void set_parsed_irreducible_loop(bool z) { _parsed_irreducible_loop = z; }
609 int _in_dump_cnt; // Required for dumping ir nodes.
|