aboutsummaryrefslogtreecommitdiffstats
path: root/cfrontend/PrintCsyntax.ml
diff options
context:
space:
mode:
authorxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2013-11-06 13:51:31 +0000
committerxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2013-11-06 13:51:31 +0000
commitf8202f62ed65d15738e0868005c856168a302696 (patch)
treed9a16b650e62be1c15830eb41f9339485e948bd8 /cfrontend/PrintCsyntax.ml
parentf9c799143067c3197dc925f7fd916206d075a25d (diff)
downloadcompcert-kvx-f8202f62ed65d15738e0868005c856168a302696.tar.gz
compcert-kvx-f8202f62ed65d15738e0868005c856168a302696.zip
- Recognize __builtin_fabs as an operator, not just a builtin,
enabling more aggressive optimizations. - Less aggressive CSE for EF_builtin builtins, causes problems for __builtin_write{16,32}_reversed. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2363 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'cfrontend/PrintCsyntax.ml')
-rw-r--r--cfrontend/PrintCsyntax.ml3
1 files changed, 3 insertions, 0 deletions
diff --git a/cfrontend/PrintCsyntax.ml b/cfrontend/PrintCsyntax.ml
index ec82869f..0bed6473 100644
--- a/cfrontend/PrintCsyntax.ml
+++ b/cfrontend/PrintCsyntax.ml
@@ -30,6 +30,7 @@ let name_unop = function
| Onotbool -> "!"
| Onotint -> "~"
| Oneg -> "-"
+ | Oabsfloat -> "__builtin_fabs"
let name_binop = function
| Oadd -> "+"
@@ -215,6 +216,8 @@ let rec expr p (prec, e) =
fprintf p "sizeof(%s)" (name_type ty)
| Ealignof(ty, _) ->
fprintf p "__alignof__(%s)" (name_type ty)
+ | Eunop(Oabsfloat, a1, _) ->
+ fprintf p "__builtin_fabs(%a)" expr (2, a1)
| Eunop(op, a1, _) ->
fprintf p "%s%a" (name_unop op) expr (prec', a1)
| Eaddrof(a1, _) ->