Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrating from develop to master #29

Closed
Commaster opened this issue Sep 21, 2018 · 2 comments
Closed

Migrating from develop to master #29

Commaster opened this issue Sep 21, 2018 · 2 comments

Comments

@Commaster
Copy link
Contributor

So, like you suggested in #28 I migrated from develop to master, added rv::CallPredicateMode to all my VectorMapping-s (https://zivgitlab.uni-muenster.de/HPC2SE-Project/pacxx-runtime/commit/e574e747ffc049f43726747e3f9c33e025b7194b) and ...

SLEEFResolverService: llvm.pacxx.barrier0 for width 8
        sleef: n/a
ListResolverService: llvm.pacxx.barrier0 for width 8
ListR: match VectorMapping {
        scalarFn = llvm.pacxx.barrier0
        vectorFn = llvm.pacxx.barrier0
        vectorW  = 0
        predMode = PredicateArg
        maskPos  = -1
        resultSh = uni
        paramShs: {
        }
}
scalCall = 'call void @llvm.pacxx.barrier0() #4'

#3  0x00007fffe08f7412 in __GI___assert_fail (assertion=0x7fffe20b29b8 "!getType()->isVoidTy() && \"Cannot assign a name to void values!\"", file=0x7fffe20b24c0 "%%/llvm/lib/IR/Value.cpp", line=247, 
    function=0x7fffe20b62e0 <llvm::Value::setNameImpl(llvm::Twine const&)::__PRETTY_FUNCTION__> "void llvm::Value::setNameImpl(const llvm::Twine&)") at assert.c:101
#4  0x00007fffe1f7e71e in llvm::Value::setNameImpl(llvm::Twine const&) () from %%/lib/libLLVMCore.so
#5  0x00007fffe1f7e749 in llvm::Value::setName(llvm::Twine const&) () from %%/lib/libLLVMCore.so
#6  0x00007ffff738b66c in std::_Function_handler<llvm::Value* (llvm::IRBuilder<llvm::ConstantFolder, llvm::IRBuilderDefaultInserter>&), rv::NatBuilder::vectorizeCallInstruction(llvm::CallInst*)::{lambda(llvm::IRBuilder<llvm::ConstantFolder, llvm::IRBuilderDefaultInserter>&)#1}>::_M_invoke(std::_Any_data const&, llvm::IRBuilder<llvm::ConstantFolder, llvm::IRBuilderDefaultInserter>&) () from %%/lib/libRV.so
#7  0x00007ffff739b062 in rv::NatBuilder::createAnyGuard(bool, llvm::BasicBlock&, llvm::Instruction&, bool, std::function<llvm::Value* (llvm::IRBuilder<llvm::ConstantFolder, llvm::IRBuilderDefaultInserter>&)>) ()
   from %%/lib/libRV.so
#8  0x00007ffff7399081 in rv::NatBuilder::vectorizeCallInstruction(llvm::CallInst*) () from %%/lib/libRV.so
#9  0x00007ffff73a159a in rv::NatBuilder::vectorize(llvm::BasicBlock*, llvm::BasicBlock*) () from %%/lib/libRV.so
#10 0x00007ffff73a2ba3 in rv::NatBuilder::vectorize(bool, llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >*) ()
   from %%/lib/libRV.so
#11 0x00007ffff73aeab2 in rv::VectorizerInterface::vectorize(rv::VectorizationInfo&, llvm::DominatorTree&, llvm::LoopInfo&, llvm::ScalarEvolution&, llvm::MemoryDependenceResults&, llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >*) () from %%l/lib/libRV.so

Any hints on further changes affecting this?

@simoll
Copy link
Member

simoll commented Sep 21, 2018

I've documented vector mappings in the wiki.

You should set the CallPredicateMode for those mappings to SafeWithoutPredicate to get the old behavior for unpredicated functions.

@Commaster
Copy link
Contributor Author

Thank you. The option SafeWithoutPredicate alleviated the issue.

And thanks for the wiki update 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants