Displaying 3 results from an estimated 3 matches for "original_funct".
2012 Jan 16
1
[LLVMdev] OpenMP support for LLVM
...he intrinsics to the
specific libgomp or mpc library calls. If already possible at compile
time, fast LLVM-IR sequences can be inlined instead of calling actual
library functions.
pragma omp for schedule(runtime)
for ( i=lb ; i COND b ; i+=incr ) { A ; }
-> Represented as LLVM-IR
def original_function() {
llvm.openmp.loop(lower_bound, upper_bound, body, context, schedule)
}
def body(i, context) {
A(i);
}
-> Lowering to MPC: (for schedule = runtime)
if ( __mpcomp_runtime_loop_begin( ... ) ) {
do {
for ( ... ) {
A ;
}
} while ( __mpcomp_runtime...
2012 Jan 16
3
[LLVMdev] multi-threading in llvm
I am interested. I would be grateful for your hints.
So OpenMP has various constructs such as parallel, barrier, single,
for, etc. And there is at least two libraries to generate OpenMP code:
libgomp and mpc. We want to be independent of specific library.
We should create an interface with methods which present manual
inserting of OpenMP pragmas in C or Fortran code. These sounds like
"this
2012 Jan 16
0
[LLVMdev] OpenMP support for LLVM
...ructs will be very important for some platforms. We
may need some new attributes in the IR so that we can still safely do
things like LICM.
-Hal
>
> pragma omp for schedule(runtime)
> for ( i=lb ; i COND b ; i+=incr ) { A ; }
>
> -> Represented as LLVM-IR
>
> def original_function() {
> llvm.openmp.loop(lower_bound, upper_bound, body, context, schedule)
> }
>
> def body(i, context) {
> A(i);
> }
>
> -> Lowering to MPC: (for schedule = runtime)
>
> if ( __mpcomp_runtime_loop_begin( ... ) ) {
> do {
> for...