Displaying 3 results from an estimated 3 matches for "move_one".
2017 Jun 21
2
A bug in DependenceAnalysis?
Hello llvm-dev,
I'm running a pass that uses the result of
llvm::DependenceAnalysisWrapperPass to compute the dependencies between all
instructions of a loop. I have the following two examples of code I wish to
analyse:
example A:
```
void move_one(int *A, unsigned n) {
for (unsigned i = 0; i < n-1; ++i) {
A[i] = A[i + 1];
}
}
```
and example B:
```
void move_one_alt(int *A, unsigned n) {
int *B = A + 1;
for (unsigned i = 0; i < n-1; ++i) {
A[i] = B[i];
}
}
```
I would expect that I get the same result for both A and...
2017 Jun 21
2
A bug in DependenceAnalysis?
...>> I'm running a pass that uses the result of llvm::DependenceAnalysisWrapperPass
>> to compute the dependencies between all instructions of a loop. I have the
>> following two examples of code I wish to analyse:
>>
>> example A:
>>
>> ```
>> void move_one(int *A, unsigned n) {
>> for (unsigned i = 0; i < n-1; ++i) {
>> A[i] = A[i + 1];
>> }
>> }
>> ```
>> and example B:
>> ```
>> void move_one_alt(int *A, unsigned n) {
>> int *B = A + 1;
>> for (unsigned i = 0; i < n-1; ++...
2017 Jun 22
2
A bug in DependenceAnalysis?
..., loop-independent dependence and
an inconsistent, ordered, flow, loop-carried dependence for example A. At
the same time I get just a consistent, ordered, anti, loop-independent
dependence for example B.
Here's the .ll code for example A:
*; Function Attrs: nounwind uwtable*
*define void @_Z8move_onePij(i32*, i32) #3 {*
* br label %3*
*; <label>:3: ; preds = %13, %2*
* %.0 = phi i32 [ 0, %2 ], [ %14, %13 ]*
* %4 = sub i32 %1, 1*
* %5 = icmp ult i32 %.0, %4*
* br i1 %5, label %6, label %15*
*; <label>:6:...