diff options
author | Richard Biener <rguenther@suse.de> | 2024-03-11 11:17:32 +0100 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2024-05-16 14:44:17 +0200 |
commit | f3e5f4c58591f5dacdd14a65ec47bbe310df02a0 (patch) | |
tree | 1dff951489618fa4702979b704dd7a9d3ca64baa /gcc/gimple-pretty-print.cc | |
parent | a9251ab3c91c8c559d0306838575a666ae62dff4 (diff) | |
download | gcc-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.cc | 5 |
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, " ("); |