Displaying 4 results from an estimated 4 matches for "parreg".
2012 Oct 02
7
[LLVMdev] [RFC] Parallelization metadata and intrinsics in LLVM (for OpenMP, etc.)
...metadata below.
>
> Note that parallel regions can be nested.
>
> As a quick example, something like:
> int main() {
> int a;
> #pragma omp parallel firstprivate(a)
> do_something(a)
> ...
> }
>
> becomes something like:
>
> define private void @parreg(i32 %a) {
> entry:
> call void @do_something(i32 %a)
> ret
> }
>
> define i32 @main() {
> entry:
> ...
> call void @parreg1(i32 %a) !parallel !0
> ...
>
> !0 = metadata !{ metadata !"region", @parreg }
>
--Vikram
Professor, Computer Science...
2012 Oct 02
0
[LLVMdev] [RFC] Parallelization metadata and intrinsics in LLVM (for OpenMP, etc.)
...e nested.
> >
> > As a quick example, something like:
> > int main() {
> > int a;
> > #pragma omp parallel firstprivate(a)
> > do_something(a)
> > ...
> > }
> >
> > becomes something like:
> >
> > define private void @parreg(i32 %a) {
> > entry:
> > call void @do_something(i32 %a)
> > ret
> > }
> >
> > define i32 @main() {
> > entry:
> > ...
> > call void @parreg1(i32 %a) !parallel !0
> > ...
> >
> > !0 = metadata !{ metadata !"region&qu...
2012 Oct 02
1
[LLVMdev] [RFC] Parallelization metadata and intrinsics in LLVM (for OpenMP, etc.)
...le, something like:
> > > int main() {
> > > int a;
> > > #pragma omp parallel firstprivate(a)
> > > do_something(a)
> > > ...
> > > }
> > >
> > > becomes something like:
> > >
> > > define private void @parreg(i32 %a) {
> > > entry:
> > > call void @do_something(i32 %a)
> > > ret
> > > }
> > >
> > > define i32 @main() {
> > > entry:
> > > ...
> > > call void @parreg1(i32 %a) !parallel !0
> > > ...
> > >...
2012 Aug 10
2
[LLVMdev] [RFC] Parallelization metadata and intrinsics in LLVM (for OpenMP, etc.)
...arallelizationCleanup. The same is true for all other
cross-referenced metadata below.
Note that parallel regions can be nested.
As a quick example, something like:
int main() {
int a;
#pragma omp parallel firstprivate(a)
do_something(a)
...
}
becomes something like:
define private void @parreg(i32 %a) {
entry:
call void @do_something(i32 %a)
ret
}
define i32 @main() {
entry:
...
call void @parreg1(i32 %a) !parallel !0
...
!0 = metadata !{ metadata !"region", @parreg }
-- Reductions --
To handle reductions, first, the variable is converted into a output
pass-by-pointer p...