public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* OpenMP 3.0 libgomp ABI documentation for TASK construct
@ 2009-10-04  3:00 Qihang Huang
  2009-10-04 19:29 ` Antoniu Pop
  0 siblings, 1 reply; 3+ messages in thread
From: Qihang Huang @ 2009-10-04  3:00 UTC (permalink / raw)
  To: gcc

Hi,

From gcc online docs (http://gcc.gnu.org/onlinedocs/libgomp/), I found
documentations for most of OpenMP constructs, except one very
important construct TASK. I don't know why it is missing, but I really
need to find out how TASK get transformed into GOMP_* routines. I
posted this question before, but haven't got a reply yet. I am very
grateful if someone can point me to the right track. For example, is
there a pretty-print feature of the AST after processing the OpenMP
pragmas? If so, how? Of course, if someone have the expertise, and
directly show me how TASK get transformed, it would be even better!

Many thanks!

Cheers,
Tim

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: OpenMP 3.0 libgomp ABI documentation for TASK construct
  2009-10-04  3:00 OpenMP 3.0 libgomp ABI documentation for TASK construct Qihang Huang
@ 2009-10-04 19:29 ` Antoniu Pop
  2009-10-06  3:09   ` Qihang Huang
  0 siblings, 1 reply; 3+ messages in thread
From: Antoniu Pop @ 2009-10-04 19:29 UTC (permalink / raw)
  To: Qihang Huang; +Cc: gcc

Hi Tim,


> From gcc online docs (http://gcc.gnu.org/onlinedocs/libgomp/), I found
> documentations for most of OpenMP constructs, except one very
> important construct TASK.

I cannot answer this. It may be that the documentation was written
before tasks (which were introduced in a latter version  of OpenMP)
were added to GCC OpenMP.

>
> I don't know why it is missing, but I really
> need to find out how TASK get transformed into GOMP_* routines. I
> posted this question before, but haven't got a reply yet. I am very
> grateful if someone can point me to the right track. For example, is
> there a pretty-print feature of the AST after processing the OpenMP
> pragmas? If so, how? Of course, if someone have the expertise, and
> directly show me how TASK get transformed, it would be even better!


For the pretty print, just use -fdump-tree-ompexp-all on the compile
line and look for the file *.c.*ompexp that is generated. It contains
the dump just after OpenMP expansion.

If you need to check out the code generation routines by yourself,
take a look at gcc/omp-low.c
Most of everything happens there. There are two passes, OpenMP
lowerring then expansion. The generation of the GOMP_* routine calls
happens during expansion pass and so you should start from the
"expand_omp_taskreg" function (in gcc/omp-low.c).

Best,
Antoniu

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: OpenMP 3.0 libgomp ABI documentation for TASK construct
  2009-10-04 19:29 ` Antoniu Pop
@ 2009-10-06  3:09   ` Qihang Huang
  0 siblings, 0 replies; 3+ messages in thread
From: Qihang Huang @ 2009-10-06  3:09 UTC (permalink / raw)
  To: Antoniu Pop; +Cc: gcc

That's super! Thank you Antoniu. With the capacity of printing the
expanded code, it feels a lot more freedom now when reading the source
code of libgomp.

Cheers,
Tim

On Mon, Oct 5, 2009 at 8:29 AM, Antoniu Pop
<antoniu.pop@mines-paristech.fr> wrote:
> Hi Tim,
>
>
>> From gcc online docs (http://gcc.gnu.org/onlinedocs/libgomp/), I found
>> documentations for most of OpenMP constructs, except one very
>> important construct TASK.
>
> I cannot answer this. It may be that the documentation was written
> before tasks (which were introduced in a latter version  of OpenMP)
> were added to GCC OpenMP.
>
>>
>> I don't know why it is missing, but I really
>> need to find out how TASK get transformed into GOMP_* routines. I
>> posted this question before, but haven't got a reply yet. I am very
>> grateful if someone can point me to the right track. For example, is
>> there a pretty-print feature of the AST after processing the OpenMP
>> pragmas? If so, how? Of course, if someone have the expertise, and
>> directly show me how TASK get transformed, it would be even better!
>
>
> For the pretty print, just use -fdump-tree-ompexp-all on the compile
> line and look for the file *.c.*ompexp that is generated. It contains
> the dump just after OpenMP expansion.
>
> If you need to check out the code generation routines by yourself,
> take a look at gcc/omp-low.c
> Most of everything happens there. There are two passes, OpenMP
> lowerring then expansion. The generation of the GOMP_* routine calls
> happens during expansion pass and so you should start from the
> "expand_omp_taskreg" function (in gcc/omp-low.c).
>
> Best,
> Antoniu
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-10-06  3:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-10-04  3:00 OpenMP 3.0 libgomp ABI documentation for TASK construct Qihang Huang
2009-10-04 19:29 ` Antoniu Pop
2009-10-06  3:09   ` Qihang Huang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).