search for: getmemoryaccess

Displaying 7 results from an estimated 7 matches for "getmemoryaccess".

2016 Apr 11
2
[LICM][MemorySSA] Converting LICM pass to use MemorySSA to avoid AliasSet collapse issue
Hi All, I'm looking into converting LICM to use MemorySSA instead of AliasSets to determine when it is safe to hoist/sink/promote loads and stores to get around the issue of alias set collapse (see discussion [1]). I have a prototype implementation, but have run into two issues that I could use input from the designers of MemorySSA to resolve: 1) Is MemorySSA intended to be
2016 Apr 20
2
[LICM][MemorySSA] Converting LICM pass to use MemorySSA to avoid AliasSet collapse issue
...er here: http://reviews.llvm.org/D18090 a load hoist will look something like this to update: // We also hoist operands of loads using this function, so check to see if // this is really a memory access before we try to update MemorySSA for it. MemoryAccess *HoistCandAccess = MSSA->getMemoryAccess(HoistCand); if (HoistCandAccess) { MemoryUseOrDef *MUD = cast<MemoryUseOrDef>(HoistCandAccess); // What is happening here is that we are creating the hoisted access // and destroying the old accesses. MSSA->createMemoryAccess(HoistedInst, MUD->getDefiningAccess(),...
2017 Sep 17
2
assertion triggered since update to llvm 5
...17, 2017 10:45 AM, "Andrew Kelley via llvm-dev" < llvm-dev at lists.llvm.org> wrote: > What do you think about this patch? > > --- a/llvm/lib/Transforms/Scalar/NewGVN.cpp > +++ b/llvm/lib/Transforms/Scalar/NewGVN.cpp > @@ -732,7 +732,7 @@ private: > MemoryPhi *getMemoryAccess(const BasicBlock *) const; > template <class T, class Range> T *getMinDFSOfRange(const Range &) > const; > unsigned InstrToDFSNum(const Value *V) const { > - assert(isa<Instruction>(V) && "This should not be used for > MemoryAccesses"); >...
2017 Sep 17
4
assertion triggered since update to llvm 5
...gt;> llvm-dev at lists.llvm.org> wrote: >> >>> What do you think about this patch? >>> >>> --- a/llvm/lib/Transforms/Scalar/NewGVN.cpp >>> +++ b/llvm/lib/Transforms/Scalar/NewGVN.cpp >>> @@ -732,7 +732,7 @@ private: >>> MemoryPhi *getMemoryAccess(const BasicBlock *) const; >>> template <class T, class Range> T *getMinDFSOfRange(const Range &) >>> const; >>> unsigned InstrToDFSNum(const Value *V) const { >>> - assert(isa<Instruction>(V) && "This should not be used for...
2017 Feb 17
2
[MemorySSA] inserting or removing memory instructions
In particular, if you want to add support, the right way to know what to rename is (off the top of my head) add a flag or something to have renamepass reset all uses it sees (you only have to change the uses, defs are all linked together and thus already fixed by the updater). Right now it only does that if they have no defining access. Make it skip blocks already in the visited set (the
2017 Sep 17
2
assertion triggered since update to llvm 5
...vm.org> wrote: >>> >>>> What do you think about this patch? >>>> >>>> --- a/llvm/lib/Transforms/Scalar/NewGVN.cpp >>>> +++ b/llvm/lib/Transforms/Scalar/NewGVN.cpp >>>> @@ -732,7 +732,7 @@ private: >>>> MemoryPhi *getMemoryAccess(const BasicBlock *) const; >>>> template <class T, class Range> T *getMinDFSOfRange(const Range &) >>>> const; >>>> unsigned InstrToDFSNum(const Value *V) const { >>>> - assert(isa<Instruction>(V) && "This should...
2017 Sep 16
2
assertion triggered since update to llvm 5
When zig updated to llvm 5 we started hitting this assertion: zig: /home/andy/downloads/llvm-project/llvm/include/llvm/Support/Casting.h:106: static bool llvm::isa_impl_cl<To, const From*>::doit(const From*) [with To = llvm::Instruction; From = llvm::Value]: Assertion `Val && "isa<> used on a null pointer"' failed. I wonder if however this was caused by an