search for: mergesetin

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