https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102646
Bug ID: 102646 Summary: large performance changes between 1932e1169a236849f5e7f1cd386da100d9af470f and 9cfb95f9b92326e86e99b50350ebf04fa9cd2477 (probably jump threading) Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: hubicka at gcc dot gnu.org Target Milestone: --- There are many regressions and also some improvements especialy in -O2 tsvc (which is simple benchmark) in this range See https://lnt.opensuse.org/db_default/v4/CPP/latest_runs_report?younger_in_days=14&older_in_days=0&min_percentage_change=0.02&revisions=1932e1169a236849f5e7f1cd386da100d9af470f%2C9cfb95f9b92326e86e99b50350ebf04fa9cd2477 and also https://lnt.opensuse.org/db_default/v4/SPEC/latest_runs_report?younger_in_days=14&older_in_days=0&min_percentage_change=0.02&revisions=1932e1169a236849f5e7f1cd386da100d9af470f%2C9cfb95f9b92326e86e99b50350ebf04fa9cd2477 We get: +2021-09-27 Aldy Hernandez <al...@redhat.com> + + * gimple-range-path.cc + (path_range_query::precompute_ranges_in_block): Rename to... + (path_range_query::compute_ranges_in_block): ...this. + (path_range_query::precompute_ranges): Rename to... + (path_range_query::compute_ranges): ...this. + (path_range_query::precompute_relations): Rename to... + (path_range_query::compute_relations): ...this. + (path_range_query::precompute_phi_relations): Rename to... + (path_range_query::compute_phi_relations): ...this. + * gimple-range-path.h: Rename precompute* to compute*. + * tree-ssa-threadbackward.c + (back_threader::find_taken_edge_switch): Same. + (back_threader::find_taken_edge_cond): Same. + * tree-ssa-threadedge.c + (hybrid_jt_simplifier::compute_ranges_from_state): Same. + (hybrid_jt_state::register_equivs_stmt): Inline... + * tree-ssa-threadedge.h: ...here. + +2021-09-27 Aldy Hernandez <al...@redhat.com> + + * tree-vrp.c (lhs_of_dominating_assert): Remove. + (class vrp_jt_state): Remove. + (class vrp_jt_simplifier): Remove. + (vrp_jt_simplifier::simplify): Remove. + (class vrp_jump_threader): Remove. + (vrp_jump_threader::vrp_jump_threader): Remove. + (vrp_jump_threader::~vrp_jump_threader): Remove. + (vrp_jump_threader::before_dom_children): Remove. + (vrp_jump_threader::after_dom_children): Remove. + +2021-09-27 Aldy Hernandez <al...@redhat.com> + + * passes.def (pass_vrp_threader): New. + * tree-pass.h (make_pass_vrp_threader): Add make_pass_vrp_threader. + * tree-ssa-threadedge.c (hybrid_jt_state::register_equivs_stmt): New. + (hybrid_jt_simplifier::hybrid_jt_simplifier): New. + (hybrid_jt_simplifier::simplify): New. + (hybrid_jt_simplifier::compute_ranges_from_state): New. + * tree-ssa-threadedge.h (class hybrid_jt_state): New. + (class hybrid_jt_simplifier): New. + * tree-vrp.c (execute_vrp): Remove ASSERT_EXPR based jump + threader. + (class hybrid_threader): New. + (hybrid_threader::hybrid_threader): New. + (hybrid_threader::~hybrid_threader): New. + (hybrid_threader::before_dom_children): New. + (hybrid_threader::after_dom_children): New. + (execute_vrp_threader): New. + (class pass_vrp_threader): New. + (make_pass_vrp_threader): New. + +2021-09-27 Martin Liska <mli...@suse.cz> + + * output.h (enum section_flag): New. + (SECTION_FORGET): Remove. + (SECTION_ENTSIZE): Make it (1UL << 8) - 1. + (SECTION_STYLE_MASK): Define it based on other enum + values. + * varasm.c (switch_to_section): Remove unused handling of + SECTION_FORGET. + +2021-09-27 Martin Liska <mli...@suse.cz> + + * common.opt: Add new variable flag_default_complex_method. + * opts.c (finish_options): Handle flags related to + x_flag_complex_method. + * toplev.c (process_options): Remove option handling related + to flag_complex_method. + +2021-09-27 Richard Biener <rguent...@suse.de> + + PR middle-end/102450 + * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid using + type_for_size, instead use int_mode_for_size. + +2021-09-27 Andrew Pinski <apin...@marvell.com> + + PR c/94726 + * gimplify.c (gimplify_save_expr): Return early + if the type of val is error_mark_node. + +2021-09-27 Aldy Hernandez <al...@redhat.com> + + * tree-ssanames.c (ssa_name_has_boolean_range): Use + get_range_query. + +2021-09-27 Aldy Hernandez <al...@redhat.com> + + * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove + vrp_visit_cond_stmt. + * tree-ssa-dom.c (cprop_operand): Convert to range_query API. + (cprop_into_stmt): Same. + (dom_opt_dom_walker::optimize_stmt): Same. + +2021-09-27 Richard Biener <rguent...@suse.de> + + PR tree-optimization/97351 + PR tree-optimization/97352 + PR tree-optimization/82426 + * tree-vectorizer.h (dr_misalignment): Add vector type + argument. + (aligned_access_p): Likewise. + (known_alignment_for_access_p): Likewise. + (vect_supportable_dr_alignment): Likewise. + (vect_known_alignment_in_bytes): Likewise. Refactor. + (DR_MISALIGNMENT): Remove. + (vect_update_shared_vectype): Likewise. + * tree-vect-data-refs.c (dr_misalignment): Refactor, handle + a vector type with larger alignment requirement and apply + the negative step adjustment here. + (vect_calculate_target_alignment): Remove. + * tree-vect-stmts.c (vect_analyze_stmt): Push/pop the + vector type of an SLP node to the representative stmt-info. + (vect_transform_stmt): Likewise. + +2021-09-27 liuhongt <hongtao....@intel.com> + + Revert: + 2021-09-09 liuhongt <hongtao....@intel.com> + + PR target/101059 + * config/i386/sse.md (reduc_plus_scal_<mode>): Split to .. + (reduc_plus_scal_v4sf): .. this, New define_expand. + (reduc_plus_scal_v2df): .. and this, New define_expand. + >From which (since it reproduces at -O2 and thus is not vectorization related) it seems that it can be attributed to the new threader. Honza