aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-patterns.c
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2021-06-17 11:49:21 -0400
committerAndrew MacLeod <amacleod@redhat.com>2021-06-22 08:11:44 -0400
commit80dd13f5c3bdc7899ee6e863e05b254815ec0cef (patch)
tree011828c50185a5df40c282f2fa95bb154998136e /gcc/tree-vect-patterns.c
parent3aaa69e5f30e1904d7ca2bb711b1cb0c62b6895f (diff)
downloadgcc-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