[Rose-public] Trouble extracting OpenMP bits from AST

Phil Miller mille121 at illinois.edu
Mon Sep 2 10:55:16 PDT 2013

I'm trying to examine and manipulate the OpenMP elements of my target
codes, and have run into trouble. Specifically, my initial translator
doesn't seem to see any OpenMP bits in the input code at all,
regardless of what options I pass it.

I'm working with the rose-edg4x branch from Github and g++-4.4 on
Debian Unstable.

There doesn't seem to be a configure-time flag for enabling OpenMP
parsing support, so I assume none is necessary.

Code: http://www.fpaste.org/36556/
Input: http://www.fpaste.org/36557/81431081/
Output: http://www.fpaste.org/36558/78143174/

I get the same output if I change the command line option to
-rose:OpenMP:parse_only. I've even confirmed with the debugger that
the processOpenMP routine described in the user manual is being
called. [1]

So, my first question is what am I missing to be able to find and
process OpenMP directives?

My second question, once the first is resolved, is if they were to
appear as attributes, how can I remove them? I only see calls in the
attributes interface to add new ones and modify existing entries.
Ultimately, I want to remove any existing OpenMP directives and insert
my own. If the appear as SgOmpClause AST nodes, then removal is pretty
straightforward with the rewriting interfaces.

[1] I'm not sure why the documentation mentions it, though. It's not
something the user calls or controls the call to, as far as I can

More information about the rose-public mailing list