preejackie via llvm-dev
2019-Jan-24 21:19 UTC
[llvm-dev] LLVM Kaleidoscope : Compiling to Object Code - Segmentation Fault
Hi David! Thanks for reaching out, the codegen part of the tutorial is fine, but when I try to generate the object code file, it throws segfault. Also please note that I'm using release build of llvm, actually I don't know whether that is the root cause or not. I also run through valgrind, it seems like a invalid read from stack. |||Error Summary: | |1 errors in context 1 of 1: ==4153== Invalid read of size 1 ==4153== at 0x4AFEE0: llvm::optional_detail::OptionalStorage<llvm::Reloc::Model, true>::OptionalStorage(llvm::optional_detail::OptionalStorage<llvm::Reloc::Model, true> const&) (in /home/preejackie/kld/toy) ==4153== by 0x4B098D: llvm::RegisterTargetMachine<llvm::X86TargetMachine>::Allocator(llvm::Target const&, llvm::Triple const&, llvm::StringRef, llvm::StringRef, llvm::TargetOptions const&, llvm::Optional<llvm::Reloc::Model>, llvm::Optional<llvm::CodeModel::Model>, llvm::CodeGenOpt::Level, bool) (in /home/preejackie/kld/toy) ==4153== by 0x46CE5B: createTargetMachine (TargetRegistry.h:397) ==4153== by 0x46CE5B: main (kjit.cpp:1337) ==4153== Address 0x4 is not stack'd, malloc'd or (recently) free'd | Source compile command : clang++ -g -O3 kjit.cpp `llvm-config --cxxflags --ldflags --system-libs --libs all` -o toy Please, let me know that if you need some additional information :) Thanks a lot On 25/01/19 1:47 AM, David Blaikie wrote:> Hi there! > > Sorry to hear you're having trouble with the examples & thanks for > reaching out. > > I'm having some difficulty reproducing the failure mode you described. > From the code sample, it sounds like you're in Chapter 8 and I just > took a look at Chapter 8 in my debug build and got this result: > > $ ./bin/Kaleidoscope-Ch8 > ready> def average(x y) (x + y) * 0.5; > Read function definition: > define double @average(double %x, double %y) { > entry: > %y2 = alloca double > %x1 = alloca double > store double %x, double* %x1 > store double %y, double* %y2 > %x3 = load double, double* %x1 > %y4 = load double, double* %y2 > %addtmp = fadd double %x3, %y4 > %multmp = fmul double %addtmp, 5.000000e-01 > ret double %multmp > } > > > Any ideas what you might be doing differently that I could do to try > to reproduce the failure you're seeing? > > On Thu, Jan 24, 2019 at 9:36 AM preejackie via llvm-dev > <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote: > > Hi all :) > > I'm new to llvm! > > I'm going through the kaleidoscope : compiling llvm IR to object > code tutorial, code in the listings breaks and causes a > segmentation fault. After some investigation through gdb, probably > this constructor call, causing the segfault. > > |Program received signal SIGSEGV, Segmentation fault.|| > ||0x00000000004afee0 in > llvm::optional_detail::OptionalStorage<llvm::Reloc::Model, > true>::OptionalStorage(llvm::optional_detail::OptionalStorage<llvm::Reloc::Model, > true> const&) ()| > > |Source code: | > > TargetOptions opt; > autoRM =Optional<Reloc::Model>(); > autoTheTargetMachine > Target->createTargetMachine(TargetTriple, CPU, Features, opt, RM); > > Whether this behavior is already notified and is there any > workaround available for it ? I would be great to know the root > cause for this behavior. > > Of course, the kaleidoscope is friendly and good introduction to > llvm for beginners, thank you very much for developing :) > > Thanks for your kind help > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org> > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190125/9a9cff23/attachment.html>
David Blaikie via llvm-dev
2019-Jan-24 22:42 UTC
[llvm-dev] LLVM Kaleidoscope : Compiling to Object Code - Segmentation Fault
Still haven't had much luck reproducing this On Thu, Jan 24, 2019 at 1:19 PM preejackie <praveenvelliengiri at gmail.com> wrote:> Hi David! > > Thanks for reaching out, the codegen part of the tutorial is fine, but > when I try to generate the object code file, it throws segfault. Also > please note that I'm using release build of llvm, actually I don't know > whether that is the root cause or not. > > I also run through valgrind, it seems like a invalid read from stack. > > Error Summary: > > 1 errors in context 1 of 1: > ==4153== Invalid read of size 1 > ==4153== at 0x4AFEE0: > llvm::optional_detail::OptionalStorage<llvm::Reloc::Model, > true>::OptionalStorage(llvm::optional_detail::OptionalStorage<llvm::Reloc::Model, > true> const&) (in /home/preejackie/kld/toy) > ==4153== by 0x4B098D: > llvm::RegisterTargetMachine<llvm::X86TargetMachine>::Allocator(llvm::Target > const&, llvm::Triple const&, llvm::StringRef, llvm::StringRef, > llvm::TargetOptions const&, llvm::Optional<llvm::Reloc::Model>, > llvm::Optional<llvm::CodeModel::Model>, llvm::CodeGenOpt::Level, bool) (in > /home/preejackie/kld/toy) > ==4153== by 0x46CE5B: createTargetMachine (TargetRegistry.h:397) > ==4153== by 0x46CE5B: main (kjit.cpp:1337) > ==4153== Address 0x4 is not stack'd, malloc'd or (recently) free'd > > Source compile command : clang++ -g -O3 kjit.cpp `llvm-config --cxxflags > --ldflags --system-libs --libs all` -o toy > > Please, let me know that if you need some additional information :) > > Thanks a lot >Oh, hmm, this might be that ABI problem https://bugs.llvm.org/show_bug.cgi?id=39427 - if the release you're using was built with GCC and you're building your code with Clang, that could be it. Maybe try building with GCC?> On 25/01/19 1:47 AM, David Blaikie wrote: > > Hi there! > > Sorry to hear you're having trouble with the examples & thanks for > reaching out. > > I'm having some difficulty reproducing the failure mode you described. > From the code sample, it sounds like you're in Chapter 8 and I just took a > look at Chapter 8 in my debug build and got this result: > > $ ./bin/Kaleidoscope-Ch8 > ready> def average(x y) (x + y) * 0.5; > Read function definition: > define double @average(double %x, double %y) { > entry: > %y2 = alloca double > %x1 = alloca double > store double %x, double* %x1 > store double %y, double* %y2 > %x3 = load double, double* %x1 > %y4 = load double, double* %y2 > %addtmp = fadd double %x3, %y4 > %multmp = fmul double %addtmp, 5.000000e-01 > ret double %multmp > } > > > Any ideas what you might be doing differently that I could do to try to > reproduce the failure you're seeing? > > On Thu, Jan 24, 2019 at 9:36 AM preejackie via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > >> Hi all :) >> >> I'm new to llvm! >> >> I'm going through the kaleidoscope : compiling llvm IR to object code >> tutorial, code in the listings breaks and causes a segmentation fault. >> After some investigation through gdb, probably this constructor call, >> causing the segfault. >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00000000004afee0 in >> llvm::optional_detail::OptionalStorage<llvm::Reloc::Model, >> true>::OptionalStorage(llvm::optional_detail::OptionalStorage<llvm::Reloc::Model, >> true> const&) () >> >> Source code: >> TargetOptions opt; >> auto RM = Optional<Reloc::Model>(); >> auto TheTargetMachine >> Target->createTargetMachine(TargetTriple, CPU, Features, opt, RM); >> >> Whether this behavior is already notified and is there any workaround >> available for it ? I would be great to know the root cause for this >> behavior. >> >> Of course, the kaleidoscope is friendly and good introduction to llvm for >> beginners, thank you very much for developing :) >> >> Thanks for your kind help >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190124/237eb3f1/attachment.html>
preejackie via llvm-dev
2019-Jan-25 19:37 UTC
[llvm-dev] LLVM Kaleidoscope : Compiling to Object Code - Segmentation Fault
Hi David On 25/01/19 4:12 AM, David Blaikie wrote:> Still haven't had much luck reproducing this > On Thu, Jan 24, 2019 at 1:19 PM preejackie > <praveenvelliengiri at gmail.com <mailto:praveenvelliengiri at gmail.com>> > wrote: > > Hi David! > > Thanks for reaching out, the codegen part of the tutorial is fine, > but when I try to generate the object code file, it throws > segfault. Also please note that I'm using release build of llvm, > actually I don't know whether that is the root cause or not. > > I also run through valgrind, it seems like a invalid read from stack. > > |||Error Summary: > | > > |1 errors in context 1 of 1: > ==4153== Invalid read of size 1 > ==4153== at 0x4AFEE0: > llvm::optional_detail::OptionalStorage<llvm::Reloc::Model, > true>::OptionalStorage(llvm::optional_detail::OptionalStorage<llvm::Reloc::Model, > true> const&) (in /home/preejackie/kld/toy) > ==4153== by 0x4B098D: > llvm::RegisterTargetMachine<llvm::X86TargetMachine>::Allocator(llvm::Target > const&, llvm::Triple const&, llvm::StringRef, llvm::StringRef, > llvm::TargetOptions const&, llvm::Optional<llvm::Reloc::Model>, > llvm::Optional<llvm::CodeModel::Model>, llvm::CodeGenOpt::Level, > bool) (in /home/preejackie/kld/toy) > ==4153== by 0x46CE5B: createTargetMachine (TargetRegistry.h:397) > ==4153== by 0x46CE5B: main (kjit.cpp:1337) > ==4153== Address 0x4 is not stack'd, malloc'd or (recently) free'd > | > > Source compile command : clang++ -g -O3 kjit.cpp `llvm-config > --cxxflags --ldflags --system-libs --libs all` -o toy > > Please, let me know that if you need some additional information :) > > Thanks a lot > > > Oh, hmm, this might be that ABI problem > https://bugs.llvm.org/show_bug.cgi?id=39427 - if the release you're > using was built with GCC and you're building your code with Clang, > that could be it. > > Maybe try building with GCC? >Yes, I tried to compile with GCC it works fine. Thanks a lot> On 25/01/19 1:47 AM, David Blaikie wrote: >> Hi there! >> >> Sorry to hear you're having trouble with the examples & thanks >> for reaching out. >> >> I'm having some difficulty reproducing the failure mode you >> described. From the code sample, it sounds like you're in Chapter >> 8 and I just took a look at Chapter 8 in my debug build and got >> this result: >> >> $ ./bin/Kaleidoscope-Ch8 >> ready> def average(x y) (x + y) * 0.5; >> Read function definition: >> define double @average(double %x, double %y) { >> entry: >> %y2 = alloca double >> %x1 = alloca double >> store double %x, double* %x1 >> store double %y, double* %y2 >> %x3 = load double, double* %x1 >> %y4 = load double, double* %y2 >> %addtmp = fadd double %x3, %y4 >> %multmp = fmul double %addtmp, 5.000000e-01 >> ret double %multmp >> } >> >> >> Any ideas what you might be doing differently that I could do to >> try to reproduce the failure you're seeing? >> >> On Thu, Jan 24, 2019 at 9:36 AM preejackie via llvm-dev >> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote: >> >> Hi all :) >> >> I'm new to llvm! >> >> I'm going through the kaleidoscope : compiling llvm IR to >> object code tutorial, code in the listings breaks and causes >> a segmentation fault. After some investigation through gdb, >> probably this constructor call, causing the segfault. >> >> |Program received signal SIGSEGV, Segmentation fault.|| >> ||0x00000000004afee0 in >> llvm::optional_detail::OptionalStorage<llvm::Reloc::Model, >> true>::OptionalStorage(llvm::optional_detail::OptionalStorage<llvm::Reloc::Model, >> true> const&) ()| >> >> |Source code: | >> >> TargetOptions opt; >> autoRM =Optional<Reloc::Model>(); >> autoTheTargetMachine >> Target->createTargetMachine(TargetTriple, CPU, Features, opt, >> RM); >> >> Whether this behavior is already notified and is there any >> workaround available for it ? I would be great to know the >> root cause for this behavior. >> >> Of course, the kaleidoscope is friendly and good introduction >> to llvm for beginners, thank you very much for developing :) >> >> Thanks for your kind help >> >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org> >> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >>-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190126/be2fbe94/attachment-0001.html>