extend OpenMP on gcc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I am working on supporting OpenMP on Single-chip Cloud computer (SCC).

Actually, I don't have enough experience to extend or modified the compiler.
So, I have question please and I need your help.

You know the OpenMP on gcc compiler collects all the pointer references of
shared variable and integer  and put them in structure (imp_data_t).
My question is:
Could I extend the complier (using plugin as example) to add the offset of
shared variable not the  reference pointer?HOW?
For example:

int i;
#pragma omp parallel shared(i)
{
        foo(i);
}
                |
                |
               V

bb 2: gimple_omp_parallel
bb 3: GIMPLE_OMP_RETURN

Merging blocks 2 and 6
Merging blocks 2 and 4
OMP_APP (int argc, char * * argv)
{
  int i;
  int D.5212;
  struct .omp_data_s.0 .omp_data_o.1;
  int D.5219;

<bb 2>:
  i = 4;
  .omp_data_o.1.i = i;                   
======================================convert to===============>  
.omp_data_o.1.i=(void*)(&i - base_address); //saving the offset of the
variable
  __builtin_GOMP_parallel_start (OMP_APP._omp_fn.0, &.omp_data_o.1, 0);
  OMP_APP._omp_fn.0 (&.omp_data_o.1);
  __builtin_GOMP_parallel_end ();
  i = .omp_data_o.1.i;
  D.5212 = 0;
  return D.5212;
}

I am looking to hearing you

Thanks in advance



--
View this message in context: http://gcc.1065356.n5.nabble.com/extend-OpenMP-on-gcc-tp951279.html
Sent from the gcc - Help mailing list archive at Nabble.com.




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux