|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Declarations
include/llvm/Analysis/IVDescriptors.h 36 class AliasSet;
include/llvm/Transforms/Utils/LoopUtils.h 37 class AliasSet;
tools/polly/include/polly/ScopDetectionDiagnostic.h 32 class AliasSet;
References
include/llvm/ADT/ilist.h 41 static void deleteNode(NodeTy *V) { delete V; }
65 void addNodeToList(NodeTy *) {}
66 void removeNodeFromList(NodeTy *) {}
82 struct ilist_node_traits : ilist_alloc_traits<NodeTy>,
83 ilist_callback_traits<NodeTy> {};
89 struct ilist_traits : public ilist_node_traits<NodeTy> {};
96 template <class T> T &make();
106 static Yes &test(U *I, decltype(I->getNext(&make<NodeT>())) * = 0);
136 static Yes &test(U *I, decltype(I->createNode(make<NodeT>())) * = 0);
144 static const bool value = HasGetNext<TraitsT, NodeT>::value ||
146 HasCreateNode<TraitsT, NodeT>::value;
389 : public iplist_impl<simple_ilist<T, Options...>, ilist_traits<T>> {
389 : public iplist_impl<simple_ilist<T, Options...>, ilist_traits<T>> {
include/llvm/ADT/ilist_node.h 150 typename ilist_detail::compute_node_options<T, Options...>::type> {
include/llvm/ADT/ilist_node_options.h 108 typedef T value_type;
109 typedef T *pointer;
110 typedef T &reference;
111 typedef const T *const_pointer;
112 typedef const T &const_reference;
122 typedef node_options<T, extract_sentinel_tracking<Options...>::value,
include/llvm/ADT/simple_ilist.h 79 : ilist_detail::compute_node_options<T, Options...>::type::list_base_type,
81 typename ilist_detail::compute_node_options<T, Options...>::type> {
85 typename ilist_detail::compute_node_options<T, Options...>::type;
include/llvm/Analysis/AliasSetTracker.h 48 class AliasSet : public ilist_node<AliasSet> {
55 AliasSet *AS = nullptr;
116 AliasSet *getAliasSet(AliasSetTracker &AST) {
119 AliasSet *OldAS = AS;
127 void setAliasSet(AliasSet *as) {
147 AliasSet *Forward = nullptr;
204 AliasSet(const AliasSet &) = delete;
205 AliasSet &operator=(const AliasSet &) = delete;
205 AliasSet &operator=(const AliasSet &) = delete;
218 void mergeSetIn(AliasSet &AS, AliasSetTracker &AST);
284 AliasSet *getForwardedTarget(AliasSetTracker &AST) {
287 AliasSet *Dest = Forward->getForwardedTarget(AST);
323 inline raw_ostream& operator<<(raw_ostream &OS, const AliasSet &AS) {
349 ilist<AliasSet> AliasSets;
351 using PointerMapType = DenseMap<ASTCallbackVH, AliasSet::PointerRec *,
392 const ilist<AliasSet> &getAliasSets() const { return AliasSets; }
398 AliasSet &getAliasSetFor(const MemoryLocation &MemLoc);
415 using iterator = ilist<AliasSet>::iterator;
416 using const_iterator = ilist<AliasSet>::const_iterator;
435 AliasSet *AliasAnyAS = nullptr;
437 void removeAliasSet(AliasSet *AS);
441 AliasSet::PointerRec &getEntryFor(Value *V) {
442 AliasSet::PointerRec *&Entry = PointerMap[ASTCallbackVH(V, this)];
444 Entry = new AliasSet::PointerRec(V);
448 AliasSet &addPointer(MemoryLocation Loc, AliasSet::AccessLattice E);
448 AliasSet &addPointer(MemoryLocation Loc, AliasSet::AccessLattice E);
449 AliasSet *mergeAliasSetsForPointer(const Value *Ptr, LocationSize Size,
455 AliasSet &mergeAllAliasSets();
457 AliasSet *findAliasSetForUnknownInst(Instruction *Inst);
lib/Analysis/AliasSetTracker.cpp 52 void AliasSet::mergeSetIn(AliasSet &AS, AliasSetTracker &AST) {
113 void AliasSetTracker::removeAliasSet(AliasSet *AS) {
114 if (AliasSet *Fwd = AS->Forward) {
118 if (AS->Alias == AliasSet::SetMayAlias)
304 AliasSet *AliasSetTracker::mergeAliasSetsForPointer(const Value *Ptr,
308 AliasSet *FoundSet = nullptr;
335 AliasSet *AliasSetTracker::findAliasSetForUnknownInst(Instruction *Inst) {
336 AliasSet *FoundSet = nullptr;
352 AliasSet &AliasSetTracker::getAliasSetFor(const MemoryLocation &MemLoc) {
358 AliasSet::PointerRec &Entry = getEntryFor(Pointer);
390 if (AliasSet *AS =
398 AliasSets.push_back(new AliasSet());
405 addPointer(MemoryLocation(Ptr, Size, AAInfo), AliasSet::NoAccess);
411 addPointer(MemoryLocation::get(LI), AliasSet::RefAccess);
417 addPointer(MemoryLocation::get(SI), AliasSet::ModAccess);
421 addPointer(MemoryLocation::get(VAAI), AliasSet::ModRefAccess);
425 addPointer(MemoryLocation::getForDest(MSI), AliasSet::ModAccess);
429 addPointer(MemoryLocation::getForDest(MTI), AliasSet::ModAccess);
430 addPointer(MemoryLocation::getForSource(MTI), AliasSet::RefAccess);
452 if (AliasSet *AS = findAliasSetForUnknownInst(Inst)) {
456 AliasSets.push_back(new AliasSet());
478 return AliasSet::ModRefAccess;
480 return AliasSet::ModAccess;
482 return AliasSet::RefAccess;
484 return AliasSet::NoAccess;
527 for (const AliasSet &AS : AST) {
537 for (AliasSet::iterator ASI = AS.begin(), E = AS.end(); ASI != E; ++ASI)
564 AliasSet::PointerRec *PtrValEnt = I->second;
565 AliasSet *AS = PtrValEnt->getAliasSet(*this);
570 if (AS->Alias == AliasSet::SetMayAlias) {
593 AliasSet::PointerRec &Entry = getEntryFor(To);
599 AliasSet *AS = I->second->getAliasSet(*this);
604 AliasSet &AliasSetTracker::mergeAllAliasSets() {
611 std::vector<AliasSet *> ASVector;
618 AliasSets.push_back(new AliasSet());
620 AliasAnyAS->Alias = AliasSet::SetMayAlias;
621 AliasAnyAS->Access = AliasSet::ModRefAccess;
626 AliasSet *FwdTo = Cur->Forward;
641 AliasSet &AliasSetTracker::addPointer(MemoryLocation Loc,
642 AliasSet::AccessLattice E) {
643 AliasSet &AS = getAliasSetFor(Loc);
703 for (const AliasSet &AS : *this)
lib/Analysis/LoopAccessAnalysis.cpp 710 for (auto &AS : AST) {
837 for (auto &AS : AST) {
lib/Transforms/Scalar/LICM.cpp 435 for (AliasSet &AS : *CurAST) {
1048 for (AliasSet &AS : *CurAST) {
1210 auto &AS = CurAST->getAliasSetFor(MemoryLocation::get(SI));
lib/Transforms/Scalar/LoopRerollPass.cpp 1311 for (auto &K : AST) {
lib/Transforms/Scalar/LoopVersioningLICM.cpp 281 for (const auto &I : *CurAST) {
282 const AliasSet &AS = I;
tools/polly/include/polly/ScopDetectionDiagnostic.h 680 ReportAlias(Instruction *Inst, AliasSet &AS);
tools/polly/lib/Analysis/ScopBuilder.cpp 3380 for (AliasSet &AS : AST) {
tools/polly/lib/Analysis/ScopDetection.cpp 385 Args &&... Arguments) const {
1126 AliasSet &AS = Context.AST.getAliasSetFor(
tools/polly/lib/Analysis/ScopDetectionDiagnostic.cpp 607 ReportAlias::ReportAlias(Instruction *Inst, AliasSet &AS)
unittests/Analysis/AliasSetTrackerTest.cpp 79 for (AliasSet &AS : AST) {
usr/include/c++/7.4.0/bits/alloc_traits.h 474 construct(allocator_type& __a, _Up* __p, _Args&&... __args)
usr/include/c++/7.4.0/bits/move.h 72 constexpr _Tp&&
83 constexpr _Tp&&
usr/include/c++/7.4.0/bits/shared_ptr.h 343 _Args&&... __args)
688 allocate_shared(const _Alloc& __a, _Args&&... __args)
703 make_shared(_Args&&... __args)
usr/include/c++/7.4.0/bits/shared_ptr_base.h 1317 _Args&&... __args)
usr/include/c++/7.4.0/ext/new_allocator.h 135 construct(_Up* __p, _Args&&... __args)
usr/include/c++/7.4.0/type_traits 1633 { typedef _Tp type; };