347
348 // Control of this compilation.
349 int _num_loop_opts; // Number of iterations for doing loop optimiztions
350 int _max_inline_size; // Max inline size for this compilation
351 int _freq_inline_size; // Max hot method inline size for this compilation
352 int _fixed_slots; // count of frame slots not allocated by the register
353 // allocator i.e. locks, original deopt pc, etc.
354 uintx _max_node_limit; // Max unique node count during a single compilation.
355 // For deopt
356 int _orig_pc_slot;
357 int _orig_pc_slot_offset_in_bytes;
358
359 int _major_progress; // Count of something big happening
360 bool _inlining_progress; // progress doing incremental inlining?
361 bool _inlining_incrementally;// Are we doing incremental inlining (post parse)
362 bool _has_loops; // True if the method _may_ have some loops
363 bool _has_split_ifs; // True if the method _may_ have some split-if
364 bool _has_unsafe_access; // True if the method _may_ produce faults in unsafe loads or stores.
365 bool _has_stringbuilder; // True StringBuffers or StringBuilders are allocated
366 bool _has_boxed_value; // True if a boxed object is allocated
367 int _max_vector_size; // Maximum size of generated vectors
368 uint _trap_hist[trapHistLength]; // Cumulative traps
369 bool _trap_can_recompile; // Have we emitted a recompiling trap?
370 uint _decompile_count; // Cumulative decompilation counts.
371 bool _do_inlining; // True if we intend to do inlining
372 bool _do_scheduling; // True if we intend to do scheduling
373 bool _do_freq_based_layout; // True if we intend to do frequency based block layout
374 bool _do_count_invocations; // True if we generate code to count invocations
375 bool _do_method_data_update; // True if we generate code to update MethodData*s
376 bool _do_vector_loop; // True if allowed to execute loop in parallel iterations
377 bool _age_code; // True if we need to profile code age (decrement the aging counter)
378 int _AliasLevel; // Locally-adjusted version of AliasLevel flag.
379 bool _print_assembly; // True if we should dump assembly code for this compilation
380 bool _print_inlining; // True if we should print inlining for this compilation
381 bool _print_intrinsics; // True if we should print intrinsics for this compilation
382 #ifndef PRODUCT
383 bool _trace_opto_output;
384 bool _parsed_irreducible_loop; // True if ciTypeFlow detected irreducible loops during parsing
385 #endif
386 bool _has_irreducible_loop; // Found irreducible loops
613 void set_inlining_incrementally(bool z) { _inlining_incrementally = z; }
614 int inlining_incrementally() const { return _inlining_incrementally; }
615 void set_major_progress() { _major_progress++; }
616 void clear_major_progress() { _major_progress = 0; }
617 int num_loop_opts() const { return _num_loop_opts; }
618 void set_num_loop_opts(int n) { _num_loop_opts = n; }
619 int max_inline_size() const { return _max_inline_size; }
620 void set_freq_inline_size(int n) { _freq_inline_size = n; }
621 int freq_inline_size() const { return _freq_inline_size; }
622 void set_max_inline_size(int n) { _max_inline_size = n; }
623 bool has_loops() const { return _has_loops; }
624 void set_has_loops(bool z) { _has_loops = z; }
625 bool has_split_ifs() const { return _has_split_ifs; }
626 void set_has_split_ifs(bool z) { _has_split_ifs = z; }
627 bool has_unsafe_access() const { return _has_unsafe_access; }
628 void set_has_unsafe_access(bool z) { _has_unsafe_access = z; }
629 bool has_stringbuilder() const { return _has_stringbuilder; }
630 void set_has_stringbuilder(bool z) { _has_stringbuilder = z; }
631 bool has_boxed_value() const { return _has_boxed_value; }
632 void set_has_boxed_value(bool z) { _has_boxed_value = z; }
633 int max_vector_size() const { return _max_vector_size; }
634 void set_max_vector_size(int s) { _max_vector_size = s; }
635 void set_trap_count(uint r, uint c) { assert(r < trapHistLength, "oob"); _trap_hist[r] = c; }
636 uint trap_count(uint r) const { assert(r < trapHistLength, "oob"); return _trap_hist[r]; }
637 bool trap_can_recompile() const { return _trap_can_recompile; }
638 void set_trap_can_recompile(bool z) { _trap_can_recompile = z; }
639 uint decompile_count() const { return _decompile_count; }
640 void set_decompile_count(uint c) { _decompile_count = c; }
641 bool allow_range_check_smearing() const;
642 bool do_inlining() const { return _do_inlining; }
643 void set_do_inlining(bool z) { _do_inlining = z; }
644 bool do_scheduling() const { return _do_scheduling; }
645 void set_do_scheduling(bool z) { _do_scheduling = z; }
646 bool do_freq_based_layout() const{ return _do_freq_based_layout; }
647 void set_do_freq_based_layout(bool z){ _do_freq_based_layout = z; }
648 bool do_count_invocations() const{ return _do_count_invocations; }
649 void set_do_count_invocations(bool z){ _do_count_invocations = z; }
650 bool do_method_data_update() const { return _do_method_data_update; }
651 void set_do_method_data_update(bool z) { _do_method_data_update = z; }
652 bool do_vector_loop() const { return _do_vector_loop; }
|
347
348 // Control of this compilation.
349 int _num_loop_opts; // Number of iterations for doing loop optimiztions
350 int _max_inline_size; // Max inline size for this compilation
351 int _freq_inline_size; // Max hot method inline size for this compilation
352 int _fixed_slots; // count of frame slots not allocated by the register
353 // allocator i.e. locks, original deopt pc, etc.
354 uintx _max_node_limit; // Max unique node count during a single compilation.
355 // For deopt
356 int _orig_pc_slot;
357 int _orig_pc_slot_offset_in_bytes;
358
359 int _major_progress; // Count of something big happening
360 bool _inlining_progress; // progress doing incremental inlining?
361 bool _inlining_incrementally;// Are we doing incremental inlining (post parse)
362 bool _has_loops; // True if the method _may_ have some loops
363 bool _has_split_ifs; // True if the method _may_ have some split-if
364 bool _has_unsafe_access; // True if the method _may_ produce faults in unsafe loads or stores.
365 bool _has_stringbuilder; // True StringBuffers or StringBuilders are allocated
366 bool _has_boxed_value; // True if a boxed object is allocated
367 bool _has_reserved_stack_access; // True if the method or an inlined method is annotated with ReservedStackAccess
368 int _max_vector_size; // Maximum size of generated vectors
369 uint _trap_hist[trapHistLength]; // Cumulative traps
370 bool _trap_can_recompile; // Have we emitted a recompiling trap?
371 uint _decompile_count; // Cumulative decompilation counts.
372 bool _do_inlining; // True if we intend to do inlining
373 bool _do_scheduling; // True if we intend to do scheduling
374 bool _do_freq_based_layout; // True if we intend to do frequency based block layout
375 bool _do_count_invocations; // True if we generate code to count invocations
376 bool _do_method_data_update; // True if we generate code to update MethodData*s
377 bool _do_vector_loop; // True if allowed to execute loop in parallel iterations
378 bool _age_code; // True if we need to profile code age (decrement the aging counter)
379 int _AliasLevel; // Locally-adjusted version of AliasLevel flag.
380 bool _print_assembly; // True if we should dump assembly code for this compilation
381 bool _print_inlining; // True if we should print inlining for this compilation
382 bool _print_intrinsics; // True if we should print intrinsics for this compilation
383 #ifndef PRODUCT
384 bool _trace_opto_output;
385 bool _parsed_irreducible_loop; // True if ciTypeFlow detected irreducible loops during parsing
386 #endif
387 bool _has_irreducible_loop; // Found irreducible loops
614 void set_inlining_incrementally(bool z) { _inlining_incrementally = z; }
615 int inlining_incrementally() const { return _inlining_incrementally; }
616 void set_major_progress() { _major_progress++; }
617 void clear_major_progress() { _major_progress = 0; }
618 int num_loop_opts() const { return _num_loop_opts; }
619 void set_num_loop_opts(int n) { _num_loop_opts = n; }
620 int max_inline_size() const { return _max_inline_size; }
621 void set_freq_inline_size(int n) { _freq_inline_size = n; }
622 int freq_inline_size() const { return _freq_inline_size; }
623 void set_max_inline_size(int n) { _max_inline_size = n; }
624 bool has_loops() const { return _has_loops; }
625 void set_has_loops(bool z) { _has_loops = z; }
626 bool has_split_ifs() const { return _has_split_ifs; }
627 void set_has_split_ifs(bool z) { _has_split_ifs = z; }
628 bool has_unsafe_access() const { return _has_unsafe_access; }
629 void set_has_unsafe_access(bool z) { _has_unsafe_access = z; }
630 bool has_stringbuilder() const { return _has_stringbuilder; }
631 void set_has_stringbuilder(bool z) { _has_stringbuilder = z; }
632 bool has_boxed_value() const { return _has_boxed_value; }
633 void set_has_boxed_value(bool z) { _has_boxed_value = z; }
634 bool has_reserved_stack_access() const { return _has_reserved_stack_access; }
635 void set_has_reserved_stack_access(bool z) { _has_reserved_stack_access = z; }
636 int max_vector_size() const { return _max_vector_size; }
637 void set_max_vector_size(int s) { _max_vector_size = s; }
638 void set_trap_count(uint r, uint c) { assert(r < trapHistLength, "oob"); _trap_hist[r] = c; }
639 uint trap_count(uint r) const { assert(r < trapHistLength, "oob"); return _trap_hist[r]; }
640 bool trap_can_recompile() const { return _trap_can_recompile; }
641 void set_trap_can_recompile(bool z) { _trap_can_recompile = z; }
642 uint decompile_count() const { return _decompile_count; }
643 void set_decompile_count(uint c) { _decompile_count = c; }
644 bool allow_range_check_smearing() const;
645 bool do_inlining() const { return _do_inlining; }
646 void set_do_inlining(bool z) { _do_inlining = z; }
647 bool do_scheduling() const { return _do_scheduling; }
648 void set_do_scheduling(bool z) { _do_scheduling = z; }
649 bool do_freq_based_layout() const{ return _do_freq_based_layout; }
650 void set_do_freq_based_layout(bool z){ _do_freq_based_layout = z; }
651 bool do_count_invocations() const{ return _do_count_invocations; }
652 void set_do_count_invocations(bool z){ _do_count_invocations = z; }
653 bool do_method_data_update() const { return _do_method_data_update; }
654 void set_do_method_data_update(bool z) { _do_method_data_update = z; }
655 bool do_vector_loop() const { return _do_vector_loop; }
|