Displaying 3 results from an estimated 3 matches for "aliassamebasepointergep".
Did you mean:
aliassamebasepointergeps
2018 Jun 12
2
One more No-alias case on Alias analysis
...ake this:
(odd number) == 2*idx
which makes sense. I think that we can go further looking at:
n == 2*idx
and, calling computeKnownBits on n and idx, then asking whether:
knownZeros(n) == (knownZeros(idx) << 1) | 1 and
knownOnes(n) == knownOnes(idx) << 1
(please note the comment in aliasSameBasePointerGEPs regarding avoiding
PR32314)
also, if we have more than one array access, we can have:
n - idx == m - idx
then we have:
n-m == 2*idx
and so we can check:
knownZeros(n-m) == (knownZeros(idx) << 1) | 1 and
knownOnes(n-m) == knownOnes(idx) << 1
Sadly, we don't have a good API to...
2016 Apr 18
2
Different index types in GEPs -> non-aliasing?
...dices has the same
values. The only difference is the type of the last value.
In e.g. BasicAliasAnalysis.cpp we have
bool BasicAAResult::isValueEqualInPotentialCycles(const Value *V,
const Value *V2) {
if (V != V2)
return false;
and in
aliasSameBasePointerGEPs:
// If the last (struct) indices are constants and are equal, the
other indices
// might be also be dynamically equal, so the GEPs can alias.
if (C1 && C2 && C1 == C2)
return MayAlias;
so here we consider two pointers to be completely different just because
the ty...
2018 Jun 11
4
One more No-alias case on Alias analysis
Hello All,
I have met one may-alias case from llvm's alias analysis. The code
snippet is as following:
char buf[4];
void test (int idx) {
char *a = &buf[3 - idx];
char *b = &buf[idx];
*a = 1;
*b = 2;
}
I can see below output from alias set tracker for above code snippet.
Alias sets for function 'test':
Alias Set Tracker: 1 alias sets for 2 pointer values.