aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2020-03-06 08:32:48 +0100
committerAldy Hernandez <aldyh@redhat.com>2020-03-10 12:14:49 +0100
commit0e95df7c002d5a7085b368dada87d1311f425c64 (patch)
tree3282d803c276a7cfbec785b2539c6308ea74757b /gcc
parent7b0df61d25e5d156aea41fd0ddc318e904db7894 (diff)
downloadgcc-0e95df7c002d5a7085b368dada87d1311f425c64.zip
gcc-0e95df7c002d5a7085b368dada87d1311f425c64.tar.gz
gcc-0e95df7c002d5a7085b368dada87d1311f425c64.tar.bz2
Adjust compute_logical_operands to use known range if we can't compute one.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/gimple-range-gori.cc9
1 files changed, 4 insertions, 5 deletions
diff --git a/gcc/gimple-range-gori.cc b/gcc/gimple-range-gori.cc
index d6710ff..b1f321f 100644
--- a/gcc/gimple-range-gori.cc
+++ b/gcc/gimple-range-gori.cc
@@ -915,7 +915,6 @@ gori_compute::compute_logical_operands (irange &r, gimple *stmt,
bool op1_in_chain, op2_in_chain;
const unsigned depth_limit = 6; // Max depth of logical recursion.
static unsigned depth = 0; // Current depth of recursion.
- tree type = TREE_TYPE (name);
widest_irange op1_true, op1_false, op2_true, op2_false;
// Reaching this point means NAME is not in this stmt, but one of
@@ -951,10 +950,10 @@ gori_compute::compute_logical_operands (irange &r, gimple *stmt,
{
if (!compute_operand_range (op1_true, SSA_NAME_DEF_STMT (op1),
m_bool_one, name, name_range))
- op1_true.set_varying (type);
+ get_tree_range (op1_true, name, name, name_range);
if (!compute_operand_range (op1_false, SSA_NAME_DEF_STMT (op1),
m_bool_zero, name, name_range))
- op1_false.set_varying (type);
+ get_tree_range (op1_false, name, name, name_range);
}
else
{
@@ -966,10 +965,10 @@ gori_compute::compute_logical_operands (irange &r, gimple *stmt,
{
if (!compute_operand_range (op2_true, SSA_NAME_DEF_STMT (op2),
m_bool_one, name, name_range))
- op2_true.set_varying (type);
+ get_tree_range (op2_true, name, name, name_range);
if (!compute_operand_range (op2_false, SSA_NAME_DEF_STMT (op2),
m_bool_zero, name, name_range))
- op2_false.set_varying (type);
+ get_tree_range (op2_false, name, name, name_range);
}
else
{