[PATCH] D17157: Add the beginnings of an update API for preserving MemorySSA
Mikael Holmén via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 2 23:03:37 PST 2016
Hi,
On 03/02/2016 04:40 PM, Daniel Berlin wrote:
> I'm kinda surprised nothing asserts here, even in debug mode.
Yes, only reason I saw this is because in my out-of-tree backend we do
some more things in DataLayout::getTypeStoreSize (accessing members in
the DL object) which caused a SEGV since the DL object was broken.
> But I'll fix if George's fixes didn't do it already.
Yep, I saw the fix now.
Thanks!
Mikael
>
>
> On Wed, Mar 2, 2016 at 2:44 AM, Mikael Holmén
> <mikael.holmen at ericsson.com <mailto:mikael.holmen at ericsson.com>> wrote:
>
> Hi,
>
> There seems to be a problem in the MemorySSA.cpp test case:
>
> First a Function is built
>
> std::unique_ptr<Function> F(Function::Create(
> FunctionType::get(B.getVoidTy(), {B.getInt8PtrTy()}, false),
> GlobalValue::ExternalLinkage, "F"));
>
> Note that we don't pass any Module to the Function:
>
> static Function *Create(FunctionType *Ty, LinkageTypes Linkage,
> const Twine &N = "", Module *M = nullptr)
>
> o the Function's Module will be nullptr.
>
> However, throughout the code there are places where it is assumed
> that the Module can be fetched, e.g. in
>
> MemoryLocation MemoryLocation::get(const LoadInst *LI) {
> AAMDNodes AATags;
> LI->getAAMetadata(AATags);
> const auto &DL = LI->getModule()->getDataLayout();
>
> return MemoryLocation(LI->getPointerOperand(),
> DL.getTypeStoreSize(LI->getType()), AATags);
> }
>
> which in the MemorySSA test indeed gets called:
>
> #3 0x00000000006b3886 in llvm::MemoryLocation::get (Inst=0xda03f8)
> at include/llvm/Analysis/MemoryLocation.h:72
> #4 0x00000000006b2c84 in
> llvm::CachingMemorySSAWalker::getClobberingMemoryAccess
> (this=0xda1bf0, I=0xda03f8)
> at lib/Transforms/Utils/MemorySSA.cpp:1047
> #5 0x00000000006aff7a in llvm::MemorySSA::buildMemorySSA
> (this=0xda0440, AA=0xda16c0, DT=0xda04c0)
> at lib/Transforms/Utils/MemorySSA.cpp:346
> #6 0x000000000042786f in
> MemorySSA_RemoveMemoryAccess_Test::TestBody (this=0xd9a920) at
> unittests/Transforms/Utils/MemorySSA.cpp:55
>
> So I suppose a Module should be created as well to setup the test
> properly.
>
> Regards,
> Mikael
>
>
>
> On 03/01/2016 07:51 PM, Phabricator via llvm-commits wrote:
>
> This revision was automatically updated to reflect the committed
> changes.
> Closed by commit rL262362: Add the beginnings of an update API
> for preserving MemorySSA (authored by dannyb).
>
> Changed prior to commit:
> http://reviews.llvm.org/D17157?vs=47855&id=49511#toc
>
> Repository:
> rL LLVM
>
> http://reviews.llvm.org/D17157
>
> Files:
> llvm/trunk/include/llvm/Transforms/Utils/MemorySSA.h
> llvm/trunk/lib/Transforms/Utils/MemorySSA.cpp
> llvm/trunk/unittests/Transforms/Utils/CMakeLists.txt
> llvm/trunk/unittests/Transforms/Utils/MemorySSA.cpp
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
>
More information about the llvm-commits
mailing list