From c7cfaa1ed86aad2a433f24c1f3b906f037243330 Mon Sep 17 00:00:00 2001 From: Marcel Koch <marcel.koch@uni-muenster.de> Date: Tue, 25 Jul 2017 11:41:37 +0200 Subject: [PATCH] Adds bitwise AND to DuneCExpressionToCodeMapper This should probably be part of the loopy Mapper but I'm not sure if I could add it there. --- python/dune/perftool/loopy/target.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/python/dune/perftool/loopy/target.py b/python/dune/perftool/loopy/target.py index 83d42e9d..b535a5e9 100644 --- a/python/dune/perftool/loopy/target.py +++ b/python/dune/perftool/loopy/target.py @@ -20,7 +20,7 @@ from loopy.target.c.codegen.expression import ExpressionToCExpressionMapper, CEx from loopy.tools import is_integer from loopy.types import NumpyType -from pymbolic.mapper.stringifier import PREC_NONE +from pymbolic.mapper.stringifier import PREC_NONE, PREC_BITWISE_AND import pymbolic.primitives as prim import pytools as pt @@ -120,6 +120,12 @@ class DuneCExpressionToCodeMapper(CExpressionToCodeMapper): return CExpressionToCodeMapper.map_remainder(self, expr, enclosing_prec) + def map_bitwise_and(self, expr, enclosing_prec): + return self.parenthesize_if_needed( + self.join_rec(" & ", expr.children, PREC_BITWISE_AND), + enclosing_prec, PREC_BITWISE_AND) + + class DuneASTBuilder(CASTBuilder): def function_manglers(self): return CASTBuilder.function_manglers(self) + retrieve_cache_functions("mangler") -- GitLab