edA-qa mort-ora-y via llvm-dev
2018-Mar-17 06:48 UTC
[llvm-dev] Migration from 3.8 to 6.0 questions (segfault most concerning)
I'm encountering a few problems in my migration that I haven't yet figured out. `getOrInsertFunction` is generating a SEGFAULT at FunctionType::isValidArgumentType(llvm::Type*). I'm calling it as: generic_ptr_ = llvm::PointerType::get( llvm::Type::getInt8Ty(context), 0 ); f_natural_int = llvm::IntegerType::get(context, 64); module->getOrInsertFunction( "count_malloc", generic_ptr, f_natural_int, (llvm::Type*)0 ); It appears there is no more Reloc::Default or CodeModel::Default, but the docs on those fields indicate there is still a target default. How do I get the default relocation and codeModel? I'm still using the legacy::PassManager. Is there a new way to do the passes now? There docs still reference `tool_output_file*`*, but it appears the new name, in the header, is `ToolOutputFile`. https://llvm.org/doxygen/classllvm_1_1tool__output__file.html -- edA-qa mort-ora-y http://mortoray.com/ Creator of the Leaf language http://leaflang.org/ Streaming algorithms, AI, and design on Twitch https://www.twitch.tv/mortoray Twitter edaqa -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180317/61d4882b/attachment-0001.html>
edA-qa mort-ora-y via llvm-dev
2018-Mar-17 06:57 UTC
[llvm-dev] Migration from 3.8 to 6.0 questions (segfault most concerning)
I found the problem with `getOrInsertFunction`. It's now using a C++ variadic template, thus I shouldn't provide the trailing null sentry. Changing to this works: module->getOrInsertFunction("count_malloc", generic_ptr, f_natural_int ); It looks like LLVM is being slowly C++ modernized, I do the same in my code over time. :) On 17/03/18 07:48, edA-qa mort-ora-y via llvm-dev wrote:> > I'm encountering a few problems in my migration that I haven't yet > figured out. > > `getOrInsertFunction` is generating a SEGFAULT at > FunctionType::isValidArgumentType(llvm::Type*). I'm calling it as: > > generic_ptr_ = llvm::PointerType::get( > llvm::Type::getInt8Ty(context), 0 ); > f_natural_int = llvm::IntegerType::get(context, 64); > module->getOrInsertFunction( > "count_malloc", generic_ptr, f_natural_int, (llvm::Type*)0 ); > > > It appears there is no more Reloc::Default or CodeModel::Default, but > the docs on those fields indicate there is still a target default. How > do I get the default relocation and codeModel? > > I'm still using the legacy::PassManager. Is there a new way to do the > passes now? > > There docs still reference `tool_output_file*`*, but it appears the > new name, in the header, is `ToolOutputFile`. > https://llvm.org/doxygen/classllvm_1_1tool__output__file.html > > -- > edA-qa mort-ora-y > http://mortoray.com/ > > Creator of the Leaf language > http://leaflang.org/ > > Streaming algorithms, AI, and design on Twitch > https://www.twitch.tv/mortoray > > Twitter > edaqa > > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev-- edA-qa mort-ora-y http://mortoray.com/ Creator of the Leaf language http://leaflang.org/ Streaming algorithms, AI, and design on Twitch https://www.twitch.tv/mortoray Twitter edaqa -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180317/e3180fb5/attachment.html>
Apparently Analagous Threads
- [LLVMdev] Error "Cannot emit physreg copy instruction"
- [LLVMdev] Error "Cannot emit physreg copy instruction"
- A struct {i8,i64} has size == 12, clang says size 16
- A struct {i8, i64} has size == 12, clang says size 16
- A struct {i8, i64} has size == 12, clang says size 16