Displaying 4 results from an estimated 4 matches for "isvalueequalinpotentialcycl".
Did you mean:
isvalueequalinpotentialcycles
2017 Jul 15
2
PartialAlias: different start addresses
...cpp
I glanced over all the uses in these files and I couldn't find any usage
that requires sizes to match. Actually most clients check access sizes
themselves. Most don't need equal sizes, just need one to be smaller than
the other.
BTW, Basic AA doesn't check for size either:
if (isValueEqualInPotentialCycles(V1, V2))
return MustAlias;
bool BasicAAResult::isValueEqualInPotentialCycles(const Value *V,
const Value *V2) {
if (V != V2)
return false;
const Instruction *Inst = dyn_cast<Instruction>(V);
if (!Inst)
return true;
(...)
}...
2016 Apr 19
2
Different index types in GEPs -> non-aliasing?
...hanging this condition fix the issue? E.g
>
> if (C1 && C2 && C1->getSExtValue() == C2->getSExtValue()) { ... }
Yes it does. Then it realize the two GEPs alias and I get the expected
result.
But since there is also a Value pointer comparison in
bool BasicAAResult::isValueEqualInPotentialCycles(const Value *V,
const Value *V2) {
if (V != V2)
return false;
and probably in several other places too I wasn't comfortable just
changing it... Right now I made my front-end always use i64 for GEP
array indices instead.
Should I f...
2016 Apr 18
2
Different index types in GEPs -> non-aliasing?
...eason for this is that the alias analysis
considers the two pointers used to store and load the value 98 are
non-aliasing, even if both the pointer and the indices 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...
2017 Jul 14
2
PartialAlias: different start addresses
Thank you all for your replies.
So here seems to be an agreement that the documentation for PartialAlias is
incorrect.
Daniel: now you got me wondering about MustAlias. This is what the docs say:
"The MustAlias response may only be returned if the two memory objects are
*guaranteed to always start at exactly the same location*"
This statement is regardless of the access sizes. For