-2005-01-09 Jeff Law <law@redhat.com>
+2006-01-09 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/sh/predicates.md (binary_float_operator,
+ binary_logical_operator, commutative_float_operator,
+ equality_comparison_operator, greater_comparison_operator,
+ less_comparison_operator, logical_operator,
+ noncommutative_float_operator, shift_operator,
+ symbol_ref_operand, unary_float_operator): Remove redundant
+ conditionals.
+
+2006-01-09 Jeff Law <law@redhat.com>
* tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
code to propagate the RHS of a cast into COND_EXPR_COND. Remove
* config/darwin.c (darwin_emit_except_table_label): Define.
* config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
-2005-01-06 Zdenek Dvorak <dvorakz@suse.cz>
+2006-01-06 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/18527
* tree-ssa-loop-niter.c (number_of_iterations_cond,
* tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
find_givs_in_stmt): Changed due to simple_iv change.
-2005-01-06 Jeff Law <law@redhat.com>
+2006-01-06 Jeff Law <law@redhat.com>
PR ada/24994
* tree-cfg.c (bsi_replace): Rename final argument from
(c_parser_new): Merge into ...
(c_parse_file): ... here. Call c_parser_pragma_pch_preprocess.
-2005-01-04 Jeff Law <law@redhat.com>
+2006-01-04 Jeff Law <law@redhat.com>
PR ada/24994
* tree-cfg.c (bsi_replace): Remove the original statement
;; TODO: Add a comment here.
(define_predicate "binary_float_operator"
- (match_code "plus,minus,mult,div")
-{
- if (GET_MODE (op) != mode)
- return 0;
- switch (GET_CODE (op))
- {
- case PLUS:
- case MINUS:
- case MULT:
- case DIV:
- return 1;
- default:
- break;
- }
- return 0;
-})
+ (and (match_code "plus,minus,mult,div")
+ (match_test "GET_MODE (op) == mode")))
;; TODO: Add a comment here.
(define_predicate "binary_logical_operator"
- (match_code "and,ior,xor")
-{
- if (GET_MODE (op) != mode)
- return 0;
- switch (GET_CODE (op))
- {
- case IOR:
- case AND:
- case XOR:
- return 1;
- default:
- break;
- }
- return 0;
-})
+ (and (match_code "and,ior,xor")
+ (match_test "GET_MODE (op) == mode")))
;; TODO: Add a comment here.
;; TODO: Add a comment here.
(define_predicate "commutative_float_operator"
- (match_code "plus,mult")
-{
- if (GET_MODE (op) != mode)
- return 0;
- switch (GET_CODE (op))
- {
- case PLUS:
- case MULT:
- return 1;
- default:
- break;
- }
- return 0;
-})
+ (and (match_code "plus,mult")
+ (match_test "GET_MODE (op) == mode")))
;; TODO: Add a comment here.
(define_predicate "equality_comparison_operator"
- (match_code "eq,ne")
-{
- return ((mode == VOIDmode || GET_MODE (op) == mode)
- && (GET_CODE (op) == EQ || GET_CODE (op) == NE));
-})
+ (match_code "eq,ne"))
;; TODO: Add a comment here.
;; TODO: Add a comment here.
(define_predicate "greater_comparison_operator"
- (match_code "gt,ge,gtu,geu")
-{
- if (mode != VOIDmode && GET_MODE (op) != mode)
- return 0;
- switch (GET_CODE (op))
- {
- case GT:
- case GE:
- case GTU:
- case GEU:
- return 1;
- default:
- return 0;
- }
-})
+ (match_code "gt,ge,gtu,geu"))
;; TODO: Add a comment here.
;; TODO: Add a comment here.
(define_predicate "less_comparison_operator"
- (match_code "lt,le,ltu,leu")
-{
- if (mode != VOIDmode && GET_MODE (op) != mode)
- return 0;
- switch (GET_CODE (op))
- {
- case LT:
- case LE:
- case LTU:
- case LEU:
- return 1;
- default:
- return 0;
- }
-})
+ (match_code "lt,le,ltu,leu"))
;; Returns 1 if OP is a valid source operand for a logical operation.
;; TODO: Add a comment here.
(define_predicate "logical_operator"
- (match_code "and,ior,xor")
-{
- if (mode != VOIDmode && GET_MODE (op) != mode)
- return 0;
- switch (GET_CODE (op))
- {
- case AND:
- case IOR:
- case XOR:
- return 1;
- default:
- return 0;
- }
-})
+ (match_code "and,ior,xor"))
;; Like arith_reg_operand, but for register source operands of narrow
;; logical SHMEDIA operations: forbid subregs of DImode / TImode regs.
;; TODO: Add a comment here.
(define_predicate "noncommutative_float_operator"
- (match_code "minus,div")
-{
- if (GET_MODE (op) != mode)
- return 0;
- switch (GET_CODE (op))
- {
- case MINUS:
- case DIV:
- return 1;
- default:
- break;
- }
- return 0;
-})
+ (and (match_code "minus,div")
+ (match_test "GET_MODE (op) == mode")))
;; TODO: Add a comment here.
;; TODO: Add a comment here.
(define_predicate "shift_operator"
- (match_code "ashift,ashiftrt,lshiftrt")
-{
- if (mode != VOIDmode && GET_MODE (op) != mode)
- return 0;
- switch (GET_CODE (op))
- {
- case ASHIFT:
- case ASHIFTRT:
- case LSHIFTRT:
- return 1;
- default:
- return 0;
- }
-})
+ (match_code "ashift,ashiftrt,lshiftrt"))
;; TODO: Add a comment here.
(define_predicate "symbol_ref_operand"
- (match_code "symbol_ref")
-{
- return (GET_CODE (op) == SYMBOL_REF);
-})
+ (match_code "symbol_ref"))
;; Same as target_reg_operand, except that label_refs and symbol_refs
;; are accepted before reload.
;; TODO: Add a comment here.
(define_predicate "unary_float_operator"
- (match_code "abs,neg,sqrt")
-{
- if (GET_MODE (op) != mode)
- return 0;
- switch (GET_CODE (op))
- {
- case ABS:
- case NEG:
- case SQRT:
- return 1;
- default:
- break;
- }
- return 0;
-})
+ (and (match_code "abs,neg,sqrt")
+ (match_test "GET_MODE (op) == mode")))
;; Return 1 if OP is a valid source operand for xor.