From 808294bf0f32aaff1cc7e56a756b246d328b3402 Mon Sep 17 00:00:00 2001 From: Diachkov Ilia Date: Fri, 6 Sep 2024 11:10:03 +0800 Subject: [PATCH 2/3] Fix errors in ipa-prefetch (IAORPF and IAOSJ0) Signed-off-by: Diachkov Ilia --- gcc/ipa-prefetch.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gcc/ipa-prefetch.cc b/gcc/ipa-prefetch.cc index b000d4d75..74af55af0 100644 --- a/gcc/ipa-prefetch.cc +++ b/gcc/ipa-prefetch.cc @@ -1681,7 +1681,8 @@ insert_page_check (tree addr, tree_poly_offset_map &offset_map, unsigned long long pmask = ~(param_ipa_prefetch_pagesize - 1); tree pmask_cst = build_int_cst (utype, pmask); tree off_tree = wide_int_to_tree (sizetype, offset); - gcc_assert (TREE_CODE (addr_type) == POINTER_TYPE); + gcc_assert (TREE_CODE (addr_type) == POINTER_TYPE + || TREE_CODE (addr_type) == REFERENCE_TYPE); tree addr_with_offset = gimple_build (&stmts, POINTER_PLUS_EXPR, addr_type, addr, off_tree); tree conv_addr = make_ssa_name (utype); @@ -2082,11 +2083,11 @@ optimize_function (cgraph_node *n, function *fn) for (unsigned int i = 0; i < vmrs.length (); i++) find_nearest_common_post_dominator (vmrs[i], dom_bb); - if (!dom_bb) + if (!dom_bb || dom_bb->index == ENTRY_BLOCK || dom_bb->index == EXIT_BLOCK) { if (dump_file) - fprintf (dump_file, "Post dominator bb for MRs is not found. " - "Skip the case.\n"); + fprintf (dump_file, "Post dominator bb for MRs is not found or " + "it's an entry/exit block. Skip the case.\n"); return 0; } else if (dump_file) -- 2.33.0