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.