From bccf4b88e184e925ee2d7931e4cf09704f1c3932 Mon Sep 17 00:00:00 2001 From: Aldy Hernandez Date: Fri, 3 Sep 2021 09:58:29 +0200 Subject: 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. --- gcc/range-op.cc | 1 + 1 file changed, 1 insertion(+) (limited to 'gcc/range-op.cc') 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); -- cgit v1.1