This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Pretty print FP-only comparison trees
- From: Paolo Bonzini <paolo dot bonzini at polimi dot it>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 01 Jul 2004 10:39:14 +0200
- Subject: [PATCH] Pretty print FP-only comparison trees
This patch improves a bit the support of floating-point comparison
operators in the C pretty printer. They are mapped to the C99
functions isgreater and friends.
Bootstrapped i686-pc-linux-gnu, checked that the output is correct
using -fdump-tree-all. Ok for mainline?
Paolo
2004-05-29 Paolo Bonzini <bonzini@gnu.org>
* c-pretty-print.c (pp_c_postfix_expression): Handle
floating-point comparison operators.
(pp_c_expression): Pass floating-point comparison operators
to pp_c_postfix_expression.
--- gcc-save/gcc/c-pretty-print.c 2004-05-28 23:33:16.000000000 +0200
+++ gcc/gcc/c-pretty-print.c 2004-05-29 00:30:06.000000000 +0200
@@ -1224,6 +1224,45 @@ pp_c_postfix_expression (c_pretty_printe
pp_c_call_argument_list (pp, TREE_OPERAND (e, 1));
break;
+ case UNORDERED_EXPR:
+ pp_c_identifier (pp, "__builtin_isunordered");
+ goto two_args_fun;
+
+ case ORDERED_EXPR:
+ pp_c_identifier (pp, "!__builtin_isunordered");
+ goto two_args_fun;
+
+ case UNLT_EXPR:
+ pp_c_identifier (pp, "!__builtin_isgreaterequal");
+ goto two_args_fun;
+
+ case UNLE_EXPR:
+ pp_c_identifier (pp, "!__builtin_isgreater");
+ goto two_args_fun;
+
+ case UNGT_EXPR:
+ pp_c_identifier (pp, "!__builtin_islessequal");
+ goto two_args_fun;
+
+ case UNGE_EXPR:
+ pp_c_identifier (pp, "!__builtin_isless");
+ goto two_args_fun;
+
+ case UNEQ_EXPR:
+ pp_c_identifier (pp, "!__builtin_islessgreater");
+ goto two_args_fun;
+
+ case LTGT_EXPR:
+ pp_c_identifier (pp, "__builtin_islessgreater");
+ goto two_args_fun;
+
+ two_args_fun:
+ pp_c_left_paren (pp);
+ pp_expression (pp, TREE_OPERAND (e, 0));
+ pp_separate_with (pp, ',');
+ pp_expression (pp, TREE_OPERAND (e, 1));
+ pp_c_right_paren (pp);
+
case ABS_EXPR:
pp_c_identifier (pp, "__builtin_abs");
pp_c_left_paren (pp);
@@ -1742,6 +1797,14 @@ pp_c_expression (c_pretty_printer *pp, t
case COMPLEX_CST:
case COMPLEX_EXPR:
case VECTOR_CST:
+ case ORDERED_EXPR:
+ case UNORDERED_EXPR:
+ case LTGT_EXPR:
+ case UNEQ_EXPR:
+ case UNLE_EXPR:
+ case UNLT_EXPR:
+ case UNGE_EXPR:
+ case UNGT_EXPR:
case ABS_EXPR:
case CONSTRUCTOR:
case COMPOUND_LITERAL_EXPR: