diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2021-06-17 11:49:21 -0400 |
---|---|---|
committer | Andrew MacLeod <amacleod@redhat.com> | 2021-06-22 08:11:44 -0400 |
commit | 80dd13f5c3bdc7899ee6e863e05b254815ec0cef (patch) | |
tree | 011828c50185a5df40c282f2fa95bb154998136e /gcc/tree-vect-patterns.c | |
parent | 3aaa69e5f30e1904d7ca2bb711b1cb0c62b6895f (diff) | |
download | gcc-80dd13f5c3bdc7899ee6e863e05b254815ec0cef.zip gcc-80dd13f5c3bdc7899ee6e863e05b254815ec0cef.tar.gz gcc-80dd13f5c3bdc7899ee6e863e05b254815ec0cef.tar.bz2 |
Add relational support to range-op.
This patch integrates relations with range-op functionality so that any
known relations can be used to help reduce or resolve ranges.
Initially handle EQ_EXPR, NE_EXPR, LE_EXPR, LT_EXPR, GT_EXPR and GE_EXPR.
* range-op.cc (range_operator::wi_fold): Apply relation effect.
(range_operator::fold_range): Adjust and apply relation effect.
(*::fold_range): Add relation parameters.
(*::op1_range): Ditto.
(*::op2_range): Ditto.
(range_operator::lhs_op1_relation): New.
(range_operator::lhs_op2_relation): New.
(range_operator::op1_op2_relation): New.
(range_operator::op1_op2_relation_effect): New.
(relop_early_resolve): New.
(operator_equal::op1_op2_relation): New.
(operator_equal::fold_range): Call relop_early_resolve.
(operator_not_equal::op1_op2_relation): New.
(operator_not_equal::fold_range): Call relop_early_resolve.
(operator_lt::op1_op2_relation): New.
(operator_lt::fold_range): Call relop_early_resolve.
(operator_le::op1_op2_relation): New.
(operator_le::fold_range): Call relop_early_resolve.
(operator_gt::op1_op2_relation): New.
(operator_gt::fold_range): Call relop_early_resolve.
(operator_ge::op1_op2_relation): New.
(operator_ge::fold_range): Call relop_early_resolve.
* range-op.h (class range_operator): Adjust parameters and methods.
Diffstat (limited to 'gcc/tree-vect-patterns.c')
0 files changed, 0 insertions, 0 deletions