aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-pretty-print.cc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2024-03-11 11:17:32 +0100
committerRichard Biener <rguenther@suse.de>2024-05-16 14:44:17 +0200
commitf3e5f4c58591f5dacdd14a65ec47bbe310df02a0 (patch)
tree1dff951489618fa4702979b704dd7a9d3ca64baa /gcc/gimple-pretty-print.cc
parenta9251ab3c91c8c559d0306838575a666ae62dff4 (diff)
downloadgcc-f3e5f4c58591f5dacdd14a65ec47bbe310df02a0.zip
gcc-f3e5f4c58591f5dacdd14a65ec47bbe310df02a0.tar.gz
gcc-f3e5f4c58591f5dacdd14a65ec47bbe310df02a0.tar.bz2
tree-optimization/13962 - handle ptr-ptr compares in ptrs_compare_unequal
Now that we handle pt.null conservatively we can implement the missing tracking of constant pool entries (aka STRING_CST) and handle ptr-ptr compares using points-to info in ptrs_compare_unequal. PR tree-optimization/13962 PR tree-optimization/96564 * tree-ssa-alias.h (pt_solution::const_pool): New flag. * tree-ssa-alias.cc (ptrs_compare_unequal): Handle pointer-pointer compares. (dump_points_to_solution): Dump the const_pool flag, fix guard of flag dumping. * gimple-pretty-print.cc (pp_points_to_solution): Likewise. * tree-ssa-structalias.cc (find_what_var_points_to): Set the const_pool flag for STRING. (pt_solution_ior_into): Handle the const_pool flag. (ipa_escaped_pt): Initialize it. * gcc.dg/tree-ssa/alias-39.c: New testcase. * g++.dg/vect/pr68145.cc: Use -fno-tree-pta to avoid UB to manifest in transforms no longer vectorizing this testcase for an ICE.
Diffstat (limited to 'gcc/gimple-pretty-print.cc')
-rw-r--r--gcc/gimple-pretty-print.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/gimple-pretty-print.cc b/gcc/gimple-pretty-print.cc
index abda887..a71e1e0 100644
--- a/gcc/gimple-pretty-print.cc
+++ b/gcc/gimple-pretty-print.cc
@@ -822,6 +822,8 @@ pp_points_to_solution (pretty_printer *buffer, const pt_solution *pt)
pp_string (buffer, "unit-escaped ");
if (pt->null)
pp_string (buffer, "null ");
+ if (pt->const_pool)
+ pp_string (buffer, "const-pool ");
if (pt->vars
&& !bitmap_empty_p (pt->vars))
{
@@ -838,7 +840,8 @@ pp_points_to_solution (pretty_printer *buffer, const pt_solution *pt)
if (pt->vars_contains_nonlocal
|| pt->vars_contains_escaped
|| pt->vars_contains_escaped_heap
- || pt->vars_contains_restrict)
+ || pt->vars_contains_restrict
+ || pt->vars_contains_interposable)
{
const char *comma = "";
pp_string (buffer, " (");