aboutsummaryrefslogtreecommitdiff
path: root/gcc/value-range.cc
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2023-10-25 10:39:51 +0100
committerRichard Sandiford <richard.sandiford@arm.com>2023-10-25 10:39:51 +0100
commitadf1b369c5321ffc213e080f8aa9d0cc8d7f9eca (patch)
treec446e8b86c6cdc12996f6365543dc8d4cd758e2d /gcc/value-range.cc
parent60ef0d2cdc97b4325947941834f5d3590f0af062 (diff)
downloadgcc-adf1b369c5321ffc213e080f8aa9d0cc8d7f9eca.zip
gcc-adf1b369c5321ffc213e080f8aa9d0cc8d7f9eca.tar.gz
gcc-adf1b369c5321ffc213e080f8aa9d0cc8d7f9eca.tar.bz2
rtl-ssa: Handle artifical uses of deleted defs
If an optimisation removes the last real use of a definition, there can still be artificial uses left. This patch removes those uses too. These artificial uses exist because RTL-SSA is only an SSA-like view of the existing RTL IL, rather than a native SSA representation. It effectively treats RTL registers like gimple vops, but with the addition of an RPO view of the register's lifetime(s). Things are structured to allow most operations to update this RPO view in amortised sublinear time. gcc/ * rtl-ssa/functions.h (function_info::process_uses_of_deleted_def): New member function. * rtl-ssa/changes.cc (function_info::process_uses_of_deleted_def): Likewise. (function_info::change_insns): Use it.
Diffstat (limited to 'gcc/value-range.cc')
0 files changed, 0 insertions, 0 deletions