aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog221
-rw-r--r--gcc/DATESTAMP2
-rw-r--r--gcc/c-family/ChangeLog8
-rw-r--r--gcc/c/ChangeLog21
-rw-r--r--gcc/cp/ChangeLog16
-rw-r--r--gcc/testsuite/ChangeLog65
6 files changed, 332 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8c0ce0a..04c9dec 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,224 @@
+2022-10-18 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-prop.h (ipa_agg_value): Remove type.
+ (ipa_agg_value_set): Likewise.
+ (ipa_copy_agg_values): Remove function.
+ (ipa_release_agg_values): Likewise.
+ (ipa_auto_call_arg_values) Add a forward declaration.
+ (ipa_call_arg_values): Likewise.
+ (class ipa_argagg_value_list): New constructors, added member function
+ value_for_index_p.
+ (class ipa_auto_call_arg_values): Removed the destructor and member
+ function safe_aggval_at. Use ipa_argagg_values for m_known_aggs.
+ (class ipa_call_arg_values): Removed member function safe_aggval_at.
+ Use ipa_argagg_values for m_known_aggs.
+ (ipa_get_indirect_edge_target): Removed declaration.
+ (ipa_find_agg_cst_for_param): Likewise.
+ (ipa_find_agg_cst_from_init): New declaration.
+ (ipa_agg_value_from_jfunc): Likewise.
+ (ipa_agg_value_set_from_jfunc): Removed declaration.
+ (ipa_push_agg_values_from_jfunc): New declaration.
+ * ipa-cp.cc (ipa_agg_value_from_node): Renamed to
+ ipa_agg_value_from_jfunc, made public.
+ (ipa_agg_value_set_from_jfunc): Removed.
+ (ipa_push_agg_values_from_jfunc): New function.
+ (ipa_get_indirect_edge_target_1): Removed known_aggs parameter, use
+ avs for this purpose too.
+ (ipa_get_indirect_edge_target): Removed the overload working on
+ ipa_auto_call_arg_values, use ipa_argagg_value_list in the remaining
+ one.
+ (devirtualization_time_bonus): Use ipa_argagg_value_list and
+ ipa_get_indirect_edge_target_1 instead of
+ ipa_get_indirect_edge_target.
+ (context_independent_aggregate_values): Removed function.
+ (gather_context_independent_values): Work on ipa_argagg_value_list.
+ (estimate_local_effects): Likewise, define some iterator variables
+ only in the construct where necessary.
+ (ipcp_discover_new_direct_edges): Adjust the call to
+ ipa_get_indirect_edge_target_1.
+ (push_agg_values_for_index_from_edge): Adjust the call
+ ipa_agg_value_from_node which has been renamed to
+ ipa_agg_value_from_jfunc.
+ * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Work on
+ ipa_argagg_value_list.
+ (evaluate_properties_for_edge): Replace manual filling in aggregate
+ values with call to ipa_push_agg_values_from_jfunc.
+ (estimate_calls_size_and_time): Work on ipa_argagg_value_list.
+ (ipa_cached_call_context::duplicate_from): Likewise.
+ (ipa_cached_call_context::release): Likewise.
+ (ipa_call_context::equal_to): Likewise.
+ * ipa-prop.cc (ipa_find_agg_cst_from_init): Make public.
+ (ipa_find_agg_cst_for_param): Removed function.
+ (ipa_find_agg_cst_from_jfunc_items): New function.
+ (try_make_edge_direct_simple_call): Replace calls to
+ ipa_agg_value_set_from_jfunc and ipa_find_agg_cst_for_param with
+ ipa_find_agg_cst_from_init and ipa_find_agg_cst_from_jfunc_items.
+ (try_make_edge_direct_virtual_call): Replace calls to
+ ipa_agg_value_set_from_jfunc and ipa_find_agg_cst_for_param with
+ simple query of constant jump function and a call to
+ ipa_find_agg_cst_from_jfunc_items.
+ (ipa_auto_call_arg_values::~ipa_auto_call_arg_values): Removed.
+
+2022-10-18 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-prop.h (IPA_PROP_ARG_INDEX_LIMIT_BITS): New.
+ (ipcp_transformation): Added forward declaration.
+ (ipa_argagg_value): New type.
+ (ipa_argagg_value_list): New type.
+ (ipa_agg_replacement_value): Removed type.
+ (ipcp_transformation): Switch from using ipa_agg_replacement_value
+ to ipa_argagg_value_list.
+ (ipa_get_agg_replacements_for_node): Removed.
+ (ipa_dump_agg_replacement_values): Removed declaration.
+ * ipa-cp.cc: Define INCLUDE_ALGORITHM.
+ (values_equal_for_ipcp_p): Moved up in the file.
+ (ipa_argagg_value_list::dump): New function.
+ (ipa_argagg_value_list::debug): Likewise.
+ (ipa_argagg_value_list::get_elt): Likewise.
+ (ipa_argagg_value_list::get_elt_for_index): Likewise.
+ (ipa_argagg_value_list::get_value): New overloaded functions.
+ (ipa_argagg_value_list::superset_of_p): New function.
+ (new ipa_argagg_value_list::push_adjusted_values): Likewise.
+ (push_agg_values_from_plats): Likewise.
+ (intersect_argaggs_with): Likewise.
+ (get_clone_agg_value): Removed.
+ (ipa_agg_value_from_node): Make last parameter const, use
+ ipa_argagg_value_list to search values coming from clones.
+ (ipa_get_indirect_edge_target_1): Use ipa_argagg_value_list to search
+ values coming from clones.
+ (ipcp_discover_new_direct_edges): Pass around a vector of
+ ipa_argagg_values rather than a link list of replacement values.
+ (cgraph_edge_brings_value_p): Use ipa_argagg_value_list to search
+ values coming from clones.
+ (create_specialized_node): Work with a vector of ipa_argagg_values
+ rather than a link list of replacement values.
+ (self_recursive_agg_pass_through_p): Make the pointer parameters
+ const.
+ (copy_plats_to_inter): Removed.
+ (intersect_with_plats): Likewise.
+ (agg_replacements_to_vector): Likewise.
+ (intersect_with_agg_replacements): Likewise.
+ (intersect_aggregates_with_edge): Likewise.
+ (push_agg_values_for_index_from_edge): Likewise.
+ (push_agg_values_from_edge): Likewise.
+ (find_aggregate_values_for_callers_subset): Rewrite.
+ (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
+ (ipcp_val_agg_replacement_ok_p): Use ipa_argagg_value_list to search
+ aggregate values.
+ (decide_about_value): Work with a vector of ipa_argagg_values rather
+ than a link list of replacement values.
+ (decide_whether_version_node): Likewise.
+ (ipa_analyze_node): Check number of parameters, assert that there
+ are no descriptors when bailing out.
+ * ipa-prop.cc (ipa_set_node_agg_value_chain): Switch to a vector of
+ ipa_argagg_value.
+ (ipa_node_params_t::duplicate): Removed superfluous handling of
+ ipa_agg_replacement_values. Name of src parameter removed because
+ it is no longer used.
+ (ipcp_transformation_t::duplicate): Replaced duplication of
+ ipa_agg_replacement_values with copying vector m_agg_values.
+ (ipa_dump_agg_replacement_values): Removed.
+ (write_ipcp_transformation_info): Stream the new data-structure
+ instead of the old.
+ (read_ipcp_transformation_info): Likewise.
+ (adjust_agg_replacement_values): Work with ipa_argagg_values instead
+ of linked lists of ipa_agg_replacement_values, copy the items and
+ truncate the vector as necessary to keep it sorted instead of marking
+ items as invalid. Return one bool if CFG should be updated.
+ (ipcp_modif_dom_walker): Store ipcp_transformation instead of
+ linked list of ipa_agg_replacement_values.
+ (ipcp_modif_dom_walker::before_dom_children): Use
+ ipa_argagg_value_list instead of walking a list of
+ ipa_agg_replacement_values.
+ (ipcp_transform_function): Switch to the new data structure, adjust
+ dumping.
+
+2022-10-18 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/107302
+ * tree-vect-loop.cc (vectorizable_recurrence): Fix vec_perm
+ placement for a PHI latch def.
+
+2022-10-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
+
+ PR tree-optimization/107275
+ * tree-if-conv.cc (if_convertible_loop_p_1): Move
+ find_data_references_in_loop call from here...
+ (if_convertible_loop_p): And move data-reference vector initialization
+ from here...
+ (tree_if_conversion):... to here.
+
+2022-10-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/106654
+ * gimple.def (GIMPLE_ASSUME): New statement kind.
+ * gimple.h (struct gimple_statement_assume): New type.
+ (is_a_helper <gimple_statement_assume *>::test,
+ is_a_helper <const gimple_statement_assume *>::test): New.
+ (gimple_build_assume): Declare.
+ (gimple_has_substatements): Return true for GIMPLE_ASSUME.
+ (gimple_assume_guard, gimple_assume_set_guard,
+ gimple_assume_guard_ptr, gimple_assume_body_ptr, gimple_assume_body):
+ New inline functions.
+ * gsstruct.def (GSS_ASSUME): New.
+ * gimple.cc (gimple_build_assume): New function.
+ (gimple_copy): Handle GIMPLE_ASSUME.
+ * gimple-pretty-print.cc (dump_gimple_assume): New function.
+ (pp_gimple_stmt_1): Handle GIMPLE_ASSUME.
+ * gimple-walk.cc (walk_gimple_op): Handle GIMPLE_ASSUME.
+ * omp-low.cc (WALK_SUBSTMTS): Likewise.
+ (lower_omp_1): Likewise.
+ * omp-oacc-kernels-decompose.cc (adjust_region_code_walk_stmt_fn):
+ Likewise.
+ * tree-cfg.cc (verify_gimple_stmt, verify_gimple_in_seq_2): Likewise.
+ * function.h (struct function): Add assume_function bitfield.
+ * gimplify.cc (gimplify_call_expr): If the assumption isn't
+ simple enough, expand it into GIMPLE_ASSUME wrapped block or
+ for -O0 drop it.
+ * gimple-low.cc: Include attribs.h.
+ (create_assumption_fn): New function.
+ (struct lower_assumption_data): New type.
+ (find_assumption_locals_r, assumption_copy_decl,
+ adjust_assumption_stmt_r, adjust_assumption_stmt_op,
+ lower_assumption): New functions.
+ (lower_stmt): Handle GIMPLE_ASSUME.
+ * tree-ssa-ccp.cc (pass_fold_builtins::execute): Remove
+ IFN_ASSUME calls.
+ * lto-streamer-out.cc (output_struct_function_base): Pack
+ assume_function bit.
+ * lto-streamer-in.cc (input_struct_function_base): And unpack it.
+ * cgraphunit.cc (cgraph_node::expand): Don't verify assume_function
+ has TREE_ASM_WRITTEN set and don't release its body.
+ (symbol_table::compile): Allow assume functions not to have released
+ body.
+ * internal-fn.cc (expand_ASSUME): Remove gcc_unreachable.
+ * passes.cc (execute_one_pass): For TODO_discard_function don't
+ release body of assume functions.
+ * cgraph.cc (cgraph_node::verify_node): Don't verify cgraph nodes
+ of PROP_assumptions_done functions.
+ * tree-pass.h (PROP_assumptions_done): Define.
+ (TODO_discard_function): Adjust comment.
+ (make_pass_assumptions): Declare.
+ * passes.def (pass_assumptions): Add.
+ * timevar.def (TV_TREE_ASSUMPTIONS): New.
+ * tree-inline.cc (remap_gimple_stmt): Handle GIMPLE_ASSUME.
+ * tree-vrp.cc (pass_data_assumptions): New variable.
+ (pass_assumptions): New class.
+ (make_pass_assumptions): New function.
+
+2022-10-18 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/107301
+ * gimple-ssa-isolate-paths.cc (handle_return_addr_local_phi_arg):
+ Check whether we can duplicate the block.
+ (find_implicit_erroneous_behavior): Likewise.
+
+2022-10-18 Andrew MacLeod <amacleod@redhat.com>
+
+ PR tree-optimization/107273
+ * value-relation.cc (equiv_oracle::add_partial_equiv): Merge
+ instead of copying precison of each member.
+
2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
PR target/101697
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index e1b70eb..268d1b4 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20221018
+20221019
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 2047e2e..63076ed 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,11 @@
+2022-10-18 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/36113
+ * c-common.cc (c_common_type_for_size): Add fallback to
+ widest_unsigned_literal_type_node or
+ widest_integer_literal_type_node for precision that may not
+ exactly match the precision of those types.
+
2022-10-14 Jakub Jelinek <jakub@redhat.com>
* c-cppbuiltin.cc (c_cpp_builtins): If bfloat16_type_node,
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index d28585b..7cb2e9c 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,24 @@
+2022-10-18 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/107164
+ * c-decl.cc (shadow_tag_warned): If pedantic, diagnose "enum tag;"
+ with previous declaration visible.
+
+2022-10-18 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/36113
+ * c-decl.cc (finish_enum): If any enumerators do not fit in int,
+ convert all to the type of the enumeration. pedwarn if no integer
+ type fits all enumerators and default to
+ widest_integer_literal_type_node in that case. Otherwise pedwarn
+ for type wider than intmax_t.
+ (build_enumerator): pedwarn for enumerators outside the range of
+ uintmax_t or intmax_t, and otherwise use pedwarn_c11 for
+ enumerators outside the range of int. On overflow, attempt to
+ find a wider type that can hold the value of the next enumerator.
+ Do not convert value to type determined with
+ c_common_type_for_size.
+
2022-10-14 Jakub Jelinek <jakub@redhat.com>
* c-typeck.cc (convert_arguments): Don't promote __bf16 to
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 19f923a..1fe2b1f 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,19 @@
+2022-10-18 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/105045
+ * module.cc (trees_out::tpl_parms_fini): Don't assume default
+ template arguments must be trailing.
+ (trees_in::tpl_parms_fini): Likewise.
+
+2022-10-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/106654
+ * cp-tree.h (build_assume_call): Declare.
+ * parser.cc (cp_parser_omp_assumption_clauses): Use build_assume_call.
+ * cp-gimplify.cc (build_assume_call): New function.
+ (process_stmt_assume_attribute): Use build_assume_call.
+ * pt.cc (tsubst_copy_and_build): Likewise.
+
2022-10-17 Patrick Palka <ppalka@redhat.com>
PR c++/101449
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7aa621e..763e88a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,68 @@
+2022-10-18 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/107164
+ * gcc.dg/c99-tag-4.c, gcc.dg/c99-tag-5.c, gcc.dg/c99-tag-6.c: New
+ tests.
+
+2022-10-18 Marek Polacek <polacek@redhat.com>
+
+ PR testsuite/107213
+ * c-c++-common/pointer-to-fn1.c: Only run on i?86/x86_64.
+
+2022-10-18 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/105045
+ * g++.dg/modules/pr105045_a.C: New test.
+ * g++.dg/modules/pr105045_b.C: New test.
+
+2022-10-18 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/36113
+ * gcc.dg/c11-enum-1.c, gcc.dg/c11-enum-2.c, gcc.dg/c11-enum-3.c,
+ gcc.dg/c2x-enum-1.c, gcc.dg/c2x-enum-2.c, gcc.dg/c2x-enum-3.c,
+ gcc.dg/c2x-enum-4.c, gcc.dg/c2x-enum-5.c: New tests.
+ * gcc.dg/pr30260.c: Explicitly use -std=gnu11. Update expected
+ diagnostics.
+ * gcc.dg/torture/pr25183.c: Update expected diagnostics.
+
+2022-10-18 Martin Jambor <mjambor@suse.cz>
+
+ * gcc.dg/ipa/ipcp-agg-11.c: Adjust dumps.
+ * gcc.dg/ipa/ipcp-agg-8.c: Likewise.
+
+2022-10-18 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/107302
+ * gcc.dg/vect/pr107302.c: New testcase.
+
+2022-10-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
+
+ * gcc.dg/vect/pr107275.c: New test.
+
+2022-10-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/106654
+ * g++.dg/cpp23/attr-assume5.C: New test.
+ * g++.dg/cpp23/attr-assume6.C: New test.
+ * g++.dg/cpp23/attr-assume7.C: New test.
+
+2022-10-18 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/107301
+ * gcc.dg/torture/pr107301.c: New testcase.
+
+2022-10-18 Liwei Xu <liwei.xu@intel.com>
+
+ PR testsuite/107220
+ * gcc.dg/tree-ssa/forwprop-19.c: Move scanning pass from
+ forwprop1 to dse1, This fixs the test case fail.
+
+2022-10-18 Andrew MacLeod <amacleod@redhat.com>
+
+ PR tree-optimization/107273
+ * gcc.dg/tree-ssa/pr107273-1.c: New.
+ * gcc.dg/tree-ssa/pr107273-2.c: New.
+
2022-10-17 Steve Kargl <kargl@gcc.gnu.org>
PR fortran/104330