Displaying 2 results from an estimated 2 matches for "idxprom7".
Did you mean:
idxprom
2020 Feb 17
3
Differentiate array access at IR level
Hi LLVM community,
I am trying to differentiate access to different array elements, for example:
for (int i = 1; i < 10; i++) {
a[i] = a[i] + 10;
b[i] = a[i - 1] * 2;
}
If it is possible to tell it loads/stores 3 different array elements: a[i], b[i] and a[i - 1] at IR level?
Thanks for your time in advance!
Best,
Michael
-------------- next part --------------
An HTML
2016 Apr 20
2
[IndVarSimplify] Narrow IV's are not eliminated resulting in inefficient code
...esses array elements with
different indexes on each iteration.
The latest LLVM fails to reuse array element values from previous
iterations and generates an unnecessary GEP. The generated IR is shown in
the attached file 'bad.ir'.
This happens because IndVarSimplify fails to eliminate '%idxprom7' and
'%idxprom10'.
The clang command line we use:
clang++ -mllvm -debug -S -emit-llvm -O3 --target=aarch64-linux-elf
indvar_test.cpp -o bad.ir
I found that 'WidenIV::widenIVUse' (IndVarSimplify.cpp) may fail to widen
narrow IV uses.
When the function gets a NarrowUse such...