You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
LCALS uses refs to array-of-arrays. Many LCALS kernels could be faster if the Chapel compiler can emit no-alias hints to LLVM optimizations for these refs.
For example:
configconst n =10;
proc kernel(A) {
// This pattern comes up in LCALSref A1 = A[1];
ref A2 = A[2];
for i in1..n {
A1[i]= A2[1]+ A2[i];
}
}
proc main() {
var A:[1..10][1..10]int;
kernel(A);
}
Here one might imagine that the compiler can prove that A1 does not alias A2 because:
A stores sub-arrays by value (not by reference / alias / slice)
A1 and A2 came from different indices in A
Associated future test: test/analysis/alias/future/ref-to-array-of-arrays.chpl
(added in PR #11779).
The text was updated successfully, but these errors were encountered:
LCALS uses refs to array-of-arrays. Many LCALS kernels could be faster if the Chapel compiler can emit no-alias hints to LLVM optimizations for these refs.
For example:
Here one might imagine that the compiler can prove that A1 does not alias A2 because:
Associated future test: test/analysis/alias/future/ref-to-array-of-arrays.chpl
(added in PR #11779).
The text was updated successfully, but these errors were encountered: