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