Displaying 6 results from an estimated 6 matches for "mergesetin".
2016 Jan 27
2
Skip redundant checks in AliasSet::aliasesUnknownInst
...ld really be a SmallSet, SmallPtrSet, or
> DenseSet (if you can't do the others).
>
> Otherwise, even with your patch, we are still wasting time traversing and
> copying and .... the unknown instructions.
>
> If that doesn't work, I suspect the way you get dupes is through mergeSetIn,
> so you also could probably just change:
>
> 00061 } else if (ASHadUnknownInsts) {
> 00062 UnknownInsts.insert(UnknownInsts.end(), AS.UnknownInsts.begin(),
> AS.UnknownInsts.end());
> 00063 AS.UnknownInsts.clear();
> 00064 }
>
>
>
> You could insert th...
2016 Jan 24
4
Skip redundant checks in AliasSet::aliasesUnknownInst
Dear llvm contributors,
Could you please advise me how to skip
checks, which are performed in AliasSet::aliasesUnknownInst, of
unknown instructions from different alias sets of an alias set tracker
that is a parameter of ‘AliasSetTracker::add(const AliasSetTracker
&AST)’?
If this wasn’t available at the moment and someone could review me, I
would try to implement it. A temporary patch can be
2016 Jan 27
2
Skip redundant checks in AliasSet::aliasesUnknownInst
...in an alias set. If we
explicitly merged AliasSets from different ASTs (i.e. add all unknown at
once to a single AliasSet, and then merge if needed), this would give us
a fast way to avoid redundant aliasing checks when looking for things
which need merged.
>
> If you look at the code in mergeSetIn (used by both
> findAliasSetForPointer and findAliasSetForUnknownInst) you can see
> when we merge AS's, we simply append the list of unknowninsts from
> one AS into the "destination" AS, without ever checking *whether that
> destination AS already contains any of the...
2020 Jul 09
2
Understand alias-analysis results
...ion-find:
https://github.com/llvm/llvm-project/blob/release/10.x/llvm/include/llvm/Analysis/AliasSetTracker.h#L281
(with "merge" corresponding to the union-find collapsing for "union",
https://en.wikipedia.org/wiki/Disjoint-set_data_structure#Union).
You can see how `AliasSet::mergeSetIn` (called, e.g., by
`AliasSetTracker::mergeAliasSetsForPointer`) sets up forwarding for
`AS.Forward`:
https://github.com/llvm/llvm-project/blob/release/10.x/llvm/lib/Analysis/AliasSetTracker.cpp#L51,
https://github.com/llvm/llvm-project/blob/release/10.x/llvm/lib/Analysis/AliasSetTracker.cpp#L30...
2020 Jul 10
2
Understand alias-analysis results
...vm/llvm-project/blob/release/10.x/llvm/include/llvm/Analysis/AliasSetTracker.h#L281
> (with "merge" corresponding to the union-find collapsing for "union",
> https://en.wikipedia.org/wiki/Disjoint-set_data_structure#Union).
>
> You can see how `AliasSet::mergeSetIn` (called, e.g., by
> `AliasSetTracker::mergeAliasSetsForPointer`) sets up forwarding for
> `AS.Forward`:
> https://github.com/llvm/llvm-project/blob/release/10.x/llvm/lib/Analysis/AliasSetTracker.cpp#L51,
>
> https://github.com/llvm/llvm-project/blob/release/10.x/llv...
2020 Jul 09
2
Understand alias-analysis results
Hey Matt,
That's awesome. Thank you very much for all the information and
clarification! Just a few follow up questions. Could you kindly shed some
lights on it? Thank you!
1. I tried to tweak the code in the following way:
- Clang [-> LLVM-IR]: https://llvm.godbolt.org/z/n9rGrs
- [LLVM-IR ->] opt: https://llvm.godbolt.org/z/Uc6h5Y
And i note that the outputs are:
Alias sets for