Displaying 4 results from an estimated 4 matches for "cflandersaaresult".
2018 May 22
1
CFLAndersAliasAnalysis print implementation
...t function for the anders alias analysis, and the print
function parameter Module *M and the Result calculated each indicate that
there are no aliases. I'm certain I'm missing something, but I don't know
what. To be absolutely clear, a Result is calculated of type:
std::unique_ptr<CFLAndersAAResult> Result;
And CFLAndersAAResult contains member fields:
DenseMap<const Function *, Optional<FunctionInfo>> Cache;
std::forward_list<cflaa::FunctionHandle<CFLAndersAAResult>> Handles;
The DenseMap Cache is empty, and so is Handles.
I can do -print-alias-sets, and t...
2017 Jul 14
2
PartialAlias: different start addresses
...I'm asking this because:
>> 1) This condition seems very strict and I don't think it's met in a few
>> places I found by manual inspection
> If I read the definition correctly, at least our Andersens' AA
> implementation violates it.
> see:
>
> AliasResult CFLAndersAAResult::alias(const MemoryLocation &LocA,
> const MemoryLocation &LocB) {
> if (LocA.Ptr == LocB.Ptr)
> return LocA.Size == LocB.Size ? MustAlias : PartialAlias;
>
>
> (i.e. the two objects are overlapping here *and* start at the same...
2017 Jul 14
2
PartialAlias: different start addresses
Hi,
I going through the alias analysis documentation
(http://llvm.org/docs/AliasAnalysis.html) and noticed the following in the
definition of PartialAlias:
"
The PartialAlias response is used when the two memory objects are known to
be overlapping in some way, but *do not start at the same address*.
"
Is it really required that the objects do no start at the same address? if
2017 Jul 14
2
PartialAlias: different start addresses
...he AA algorithm would need to prove that.
I'm asking this because:
1) This condition seems very strict and I don't think it's met in a few
places I found by manual inspection
If I read the definition correctly, at least our Andersens' AA
implementation violates it.
see:
AliasResult CFLAndersAAResult::alias(const MemoryLocation &LocA,
const MemoryLocation &LocB) {
if (LocA.Ptr == LocB.Ptr)
return LocA.Size == LocB.Size ? MustAlias : PartialAlias;
(i.e. the two objects are overlapping here *and* start at the same address).
I've never n...