From: michelemartone@users.sourceforge.net (Michele Martone)
To: cocci@systeme.lip6.fr
Subject: [Cocci] [cocci-bug] coccinelle 1.0.6: OpenMP #pragma directive leads to function ignore
Date: Mon, 30 Apr 2018 09:47:28 +0200 [thread overview]
Message-ID: <20180430074728.GB20750@localhost> (raw)
In-Reply-To: <alpine.DEB.2.20.1804300940580.2351@hadrien>
On 20180430 at 09:42, Julia Lawall wrote:
>
>
> On Mon, 30 Apr 2018, Michele Martone wrote:
>
> > On 20180430 at 08:43, Julia Lawall wrote:
> > > On Thu, 26 Apr 2018, Michele Martone wrote:
> > >
> > > > On 20180426 at 09:25, Julia Lawall wrote:
> > > > > On Thu, 26 Apr 2018, Michele Martone wrote:
> > > > >
> > > > > > Dear Prof. Lawall and Coccinelle team,
> > > > > >
> > > > > > I'm an enthusiastical, however still beginner use of Coccinelle.
> > > > > >
> > > > > > While running spatch 1.0.6 on a long OpenMP-enabled listing, I
> > > > > > noticed that the presence of the C line:
> > > > > > #pragma omp parallel for reduction(+:I) private(I)
> > > > > > seems to prevent restructuring of the function containing it.
> > > > > > If I simplify the pragma to something like
> > > > > > #pragma omp parallel
> > > > > > the problem disappears.
> > > > > >
> > > > > > Is there anything I can do to restructure large codes containing
> > > > > > many of such similar lines ?
> > > > > >
> > > > > > In the attachment you find a test case and the output I experience.
> > > > >
> > > > > Thanks for the report. We can try to make the parsing of #pragmas more
> > > > > flexible.
> > > > >
> > > > > julia
> > > >
> > > > Dear Julia,
> > > >
> > > > thanks for the quick response!
> > > >
> > > > I'll be waiting for Coccinelle-sided developments then.
> > > >
> > > > May I ask what would you recommend now to circumvent this ?
> > > >
> > > > From the SmPL v1.0.6 Grammar I am not aware of any way to
> > > > e.g. ignore pragma lines as they were comments.
> > > >
> > > > So the best what comes to my mind is to:
> > > >
> > > > - comment #pragma lines
> > > > - compute semantic patch
> > > > - apply semantic patch
> > > > - uncomment #pragma lines
> > > >
> > > > If there is any better solution, please let me know.
> > >
> > > The problem is now fixed in the github version of Coccinelle.
> > >
> > > julia
> >
> > That is good news -- thank you :-)
> >
> > Handling such pragma lines opens new ranges of use for Coccinelle!
> >
> > On my side, I just followed install.txt:
> >
> > #!/bin/bash
> > set -e
> > set -x
> > trap "read" EXIT # will block for input on error
> > git clone https://github.com/coccinelle/coccinelle.git
> > cd coccinelle
> > ./autogen
> > ./configure
> > make # it stops here
> > # make install
> >
> > and it reaches:
> >
> > ...
> > OCAMLOPT enter.ml
> > OCAMLC main.mli
> > OCAMLOPT main.ml
> > OCAMLOPT -o spatch.opt
> > /usr/lib64/ocaml/libbigarray.a(bigarray_stubs.o): In function `caml_ba_deserialize':
> > /home/abuild/rpmbuild/BUILD/ocaml-4.03.0/otherlibs/bigarray/bigarray_stubs.c:979: undefined reference to `caml_umul_overflow'
> > /home/abuild/rpmbuild/BUILD/ocaml-4.03.0/otherlibs/bigarray/bigarray_stubs.c:985: undefined reference to `caml_umul_overflow'
> > collect2: error: ld returned 1 exit status
> > File "caml_startup", line 1:
> > Error: Error during linking
> > Makefile:609: recipe for target 'spatch.opt' failed
> > make: *** [spatch.opt] Error 2
> > rm parsing_cocci/lexer_cli.ml parsing_cocci/parser_cocci_menhir.ml.d parsing_cocci/parser_cocci_menhir.mli.d parsing_cocci/lexer_script.ml parsing_cocci/lexer_cocci.ml parsing_c/lexer_c.ml
> > + read
> >
> > It's my first experience building any ocaml-based software, so
> > I would appreciate any hint how to proceed further, if possible.
>
> Oops, I'll forward this to my engineer, who knows about building issues.
> I'm not sure if he will answer before Wednesday, due to the holiday.
> What is your OS?
$ cat /etc/os-release
NAME="openSUSE Leap"
VERSION="42.3"
ID=opensuse
ID_LIKE="suse"
VERSION_ID="42.3"
PRETTY_NAME="openSUSE Leap 42.3"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:42.3"
thanks!
next prev parent reply other threads:[~2018-04-30 7:47 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-26 8:12 [Cocci] [cocci-bug] coccinelle 1.0.6: OpenMP #pragma directive leads to function ignore Michele Martone
2018-04-26 8:25 ` Julia Lawall
2018-04-26 10:21 ` Michele Martone
2018-04-26 10:22 ` Julia Lawall
2018-04-30 6:43 ` Julia Lawall
2018-04-30 7:39 ` Michele Martone
2018-04-30 7:42 ` Julia Lawall
2018-04-30 7:47 ` Michele Martone [this message]
2018-04-30 7:44 ` Peter Senna Tschudin
2018-05-02 13:16 ` Michele Martone
2018-05-25 13:56 ` Michele Martone
2018-04-26 13:01 ` [Cocci] Coccinelle " SF Markus Elfring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180430074728.GB20750@localhost \
--to=michelemartone@users.sourceforge.net \
--cc=cocci@systeme.lip6.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox