search for: compute_something_into_val

Displaying 14 results from an estimated 14 matches for "compute_something_into_val".

2017 Jan 20
9
[RFC] IR-level Region Annotations
Hi Sanjoy, Yes, that's exactly what we have been looking at recently here, but the region tags seem to make it possible to express the control flow as well, so I think we could start with reg ions+metadata, as Hal and Xinmin proposed, and then figure out what needs to be first class instructions. --Vikram Adve > On Jan 19, 2017, at 11:03 PM, Sanjoy Das <sanjoy at
2017 Jan 21
2
[RFC] IR-level Region Annotations
...> i32* I = alloca 32 > i32* priv_val = alloca i32 > i32* priv_i alloca 32 > tok = llvm.experimental.intrinsic_a()[ "DIR.PARALLEL"(),"QUAL.PRIVATE"(i32* %priv_val, i32 %priv_i), "QUAL.NUM_THREADS"(i32 4)] > > %priv_i = omp_get_thread_num(); > compute_something_into_val(%priv_val, %priv_i); > a[priv_i] = %priv_val; > > llvm.experimental.intrinsic_b(tok)["DIR.END.PARALLEL"()]; > .... > > I = > Val = > Foo(val, i). > } > > "Prepare phase" is our way of minimizing the impact to existing optimizations...
2017 Jan 20
5
[RFC] IR-level Region Annotations
...izer to understand region-annotation intrinsic. > > { void main() { > i32* val = alloca i32 > tok = llvm.experimental.intrinsic_a()[ "DIR.PARALLEL"(), "QUAL.PRIVATE"(i32* val), "QUAL.NUM_THREADS"(i32 4)] > > int i = omp_get_thread_num(); > compute_something_into_val(val, i); > a[i] = val; > > llvm.experimental.intrinsic_b(tok)["DIR.END.PARALLEL"()]; > } > > With above representation, we can do privatization and outlining as below > > { void main() { > i32* val = alloca i32 > i32* I = alloca 32 > tok = llvm.exp...
2017 Feb 01
0
[RFC] IR-level Region Annotations
...> i32* I = alloca 32 > i32* priv_val = alloca i32 > i32* priv_i alloca 32 > tok = llvm.experimental.intrinsic_a()[ "DIR.PARALLEL"(),"QUAL.PRIVATE"(i32* %priv_val, i32 %priv_i), "QUAL.NUM_THREADS"(i32 4)] > > %priv_i = omp_get_thread_num(); > compute_something_into_val(%priv_val, %priv_i); > a[priv_i] = %priv_val; > > llvm.experimental.intrinsic_b(tok)["DIR.END.PARALLEL"()]; > .... > > I = > Val = > Foo(val, i). > } > > "Prepare phase" is our way of minimizing the impact to existing optimizations...
2017 Feb 01
2
[RFC] IR-level Region Annotations
...ca 32 >> i32* priv_val = alloca i32 >> i32* priv_i alloca 32 >> tok = llvm.experimental.intrinsic_a()[ "DIR.PARALLEL"(),"QUAL.PRIVATE"(i32* %priv_val, i32 %priv_i), "QUAL.NUM_THREADS"(i32 4)] >> >> %priv_i = omp_get_thread_num(); >> compute_something_into_val(%priv_val, %priv_i); >> a[priv_i] = %priv_val; >> >> llvm.experimental.intrinsic_b(tok)["DIR.END.PARALLEL"()]; >> .... >> >> I = >> Val = >> Foo(val, i). >> } >> >> "Prepare phase" is our way of minimizin...
2017 Feb 01
0
[RFC] IR-level Region Annotations
...ca 32 >> i32* priv_val = alloca i32 >> i32* priv_i alloca 32 >> tok = llvm.experimental.intrinsic_a()[ "DIR.PARALLEL"(),"QUAL.PRIVATE"(i32* %priv_val, i32 %priv_i), "QUAL.NUM_THREADS"(i32 4)] >> >> %priv_i = omp_get_thread_num(); >> compute_something_into_val(%priv_val, %priv_i); >> a[priv_i] = %priv_val; >> >> llvm.experimental.intrinsic_b(tok)["DIR.END.PARALLEL"()]; >> .... >> >> I = >> Val = >> Foo(val, i). >> } >> >> "Prepare phase" is our way of minimizin...
2017 Feb 01
1
[RFC] IR-level Region Annotations
...priv_val = alloca i32 >>> i32* priv_i alloca 32 >>> tok = llvm.experimental.intrinsic_a()[ "DIR.PARALLEL"(),"QUAL.PRIVATE"(i32* %priv_val, i32 %priv_i), "QUAL.NUM_THREADS"(i32 4)] >>> >>> %priv_i = omp_get_thread_num(); >>> compute_something_into_val(%priv_val, %priv_i); >>> a[priv_i] = %priv_val; >>> >>> llvm.experimental.intrinsic_b(tok)["DIR.END.PARALLEL"()]; >>> .... >>> >>> I = >>> Val = >>> Foo(val, i). >>> } >>> >>> "P...
2017 Jan 20
3
[RFC] IR-level Region Annotations
...tion intrinsic. >> >> { void main() { >> i32* val = alloca i32 >> tok = llvm.experimental.intrinsic_a()[ "DIR.PARALLEL"(), >> "QUAL.PRIVATE"(i32* val), "QUAL.NUM_THREADS"(i32 4)] >> >> int i = omp_get_thread_num(); >> compute_something_into_val(val, i); >> a[i] = val; >> >> llvm.experimental.intrinsic_b(tok)["DIR.END.PARALLEL"()]; >> } >> >> With above representation, we can do privatization and outlining as below >> >> { void main() { >> i32* val = alloca i32 >> i3...
2017 Feb 01
0
[RFC] IR-level Region Annotations
...2 >>>> i32* priv_i alloca 32 >>>> tok = llvm.experimental.intrinsic_a()[ "DIR.PARALLEL"(),"QUAL.PRIVATE"(i32* %priv_val, i32 %priv_i), "QUAL.NUM_THREADS"(i32 4)] >>>> >>>> %priv_i = omp_get_thread_num(); >>>> compute_something_into_val(%priv_val, %priv_i); >>>> a[priv_i] = %priv_val; >>>> >>>> llvm.experimental.intrinsic_b(tok)["DIR.END.PARALLEL"()]; >>>> .... >>>> >>>> I = >>>> Val = >>>> Foo(val, i). >>>>...
2017 Feb 01
2
[RFC] IR-level Region Annotations
...{ void main() { i32* val = alloca i32 i32* I = alloca 32 i32* priv_val = alloca i32 i32* priv_i alloca 32 tok = llvm.experimental.intrinsic_a()[ "DIR.PARALLEL"(),"QUAL.PRIVATE"(i32* %priv_val, i32 %priv_i), "QUAL.NUM_THREADS"(i32 4)] %priv_i = omp_get_thread_num(); compute_something_into_val(%priv_val, %priv_i); a[priv_i] = %priv_val; llvm.experimental.intrinsic_b(tok)["DIR.END.PARALLEL"()]; .... I = Val = Foo(val, i). } "Prepare phase" is our way of minimizing the impact to existing optimizations. Xinmin -----Original Message----- From: mehdi.amini at apple.co...
2017 Feb 01
1
[RFC] IR-level Region Annotations
...tion intrinsic. >> >> { void main() { >> i32* val = alloca i32 >> tok = llvm.experimental.intrinsic_a()[ "DIR.PARALLEL"(), >> "QUAL.PRIVATE"(i32* val), "QUAL.NUM_THREADS"(i32 4)] >> >> int i = omp_get_thread_num(); >> compute_something_into_val(val, i); >> a[i] = val; >> >> llvm.experimental.intrinsic_b(tok)["DIR.END.PARALLEL"()]; >> } >> >> With above representation, we can do privatization and outlining as >> below >> >> { void main() { >> i32* val = alloca i32 &g...
2017 Feb 01
0
[RFC] IR-level Region Annotations
...i32 > i32* I = alloca 32 > i32* priv_val = alloca i32 > i32* priv_i alloca 32 > tok = llvm.experimental.intrinsic_a()[ "DIR.PARALLEL"(),"QUAL.PRIVATE"(i32* %priv_val, i32 %priv_i), "QUAL.NUM_THREADS"(i32 4)] > > %priv_i = omp_get_thread_num(); > compute_something_into_val(%priv_val, %priv_i); > a[priv_i] = %priv_val; > > llvm.experimental.intrinsic_b(tok)["DIR.END.PARALLEL"()]; > .... > > I = > Val = > Foo(val, i). > } > > "Prepare phase" is our way of minimizing the impact to existing optimizations. &gt...
2017 Feb 01
2
[RFC] IR-level Region Annotations
...{ void main() { i32* val = alloca i32 i32* I = alloca 32 i32* priv_val = alloca i32 i32* priv_i alloca 32 tok = llvm.experimental.intrinsic_a()[ "DIR.PARALLEL"(),"QUAL.PRIVATE"(i32* %priv_val, i32 %priv_i), "QUAL.NUM_THREADS"(i32 4)] %priv_i = omp_get_thread_num(); compute_something_into_val(%priv_val, %priv_i); a[priv_i] = %priv_val; llvm.experimental.intrinsic_b(tok)["DIR.END.PARALLEL"()]; .... I = Val = Foo(val, i). } "Prepare phase" is our way of minimizing the impact to existing optimizations. Xinmin -----Original Message----- From: mehdi.amini at apple.co...
2017 Feb 01
2
[RFC] IR-level Region Annotations
...i32 > i32* I = alloca 32 > i32* priv_val = alloca i32 > i32* priv_i alloca 32 > tok = llvm.experimental.intrinsic_a()[ "DIR.PARALLEL"(),"QUAL.PRIVATE"(i32* %priv_val, i32 %priv_i), "QUAL.NUM_THREADS"(i32 4)] > > %priv_i = omp_get_thread_num(); > compute_something_into_val(%priv_val, %priv_i); > a[priv_i] = %priv_val; > > llvm.experimental.intrinsic_b(tok)["DIR.END.PARALLEL"()]; > .... > > I = > Val = > Foo(val, i). > } > > "Prepare phase" is our way of minimizing the impact to existing optimizations. &gt...