aboutsummaryrefslogtreecommitdiff
path: root/gcc/range-op.cc
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2021-09-03 09:58:29 +0200
committerAldy Hernandez <aldyh@redhat.com>2021-09-03 15:30:56 +0200
commitbccf4b88e184e925ee2d7931e4cf09704f1c3932 (patch)
treef6d2a064075687dd01cca20343ecefd175296e47 /gcc/range-op.cc
parent4ce90454c2c81246be993d997cab12e21bc0be68 (diff)
downloadgcc-bccf4b88e184e925ee2d7931e4cf09704f1c3932.zip
gcc-bccf4b88e184e925ee2d7931e4cf09704f1c3932.tar.gz
gcc-bccf4b88e184e925ee2d7931e4cf09704f1c3932.tar.bz2
Improve support for IMAGPART_EXPR and REALPART_EXPR in ranger.
Currently we adjust statements containing an IMAGPART_EXPR if the defining statement was one of a few built-ins known to return boolean types. We can also adjust statements for both IMAGPART_EXPR and REALPART_EXPR where the defining statement is a constant. This patch adds such support, and cleans up the code a bit. Tested on x86-64 Linux. gcc/ChangeLog: * gimple-range-fold.cc (adjust_imagpart_expr): Move from gimple_range_adjustment. Add support for constants. (adjust_realpart_expr): New. (gimple_range_adjustment): Move IMAGPART_EXPR code to adjust_imagpart_expr. * range-op.cc (integral_table::integral_table): Add entry for REALPART_CST.
Diffstat (limited to 'gcc/range-op.cc')
-rw-r--r--gcc/range-op.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/range-op.cc b/gcc/range-op.cc
index 56eccf4..fee0e83 100644
--- a/gcc/range-op.cc
+++ b/gcc/range-op.cc
@@ -4017,6 +4017,7 @@ integral_table::integral_table ()
set (PAREN_EXPR, op_identity);
set (OBJ_TYPE_REF, op_identity);
set (IMAGPART_EXPR, op_unknown);
+ set (REALPART_EXPR, op_unknown);
set (POINTER_DIFF_EXPR, op_unknown);
set (ABS_EXPR, op_abs);
set (ABSU_EXPR, op_absu);