On Sun, Jan 31, 2010 at 8:02 PM, Óscar Fuentes <ofv at wanadoo.es> wrote:> A transformation pass. If the program works without it, I don't think it > is important unless you care about optimization.Ah, I was afraid of that, because I do care very much about optimization -- it's the main reason I'm planning on using llvm for my compiler backend in the first place. Any guess at where to start investigating why LLVMInstCombine.lib might be missing? If there had been an error during the attempt to compile it, would the build process have stopped there, or just skipped it and kept going new?> Most likely this is due to mixing compiled code wich was built with > different settings. Most specifically, your LLVM libraries possibly are > a debug build, so /MDd (which links the debug-mode variant of the VC > runtime libraries) was used for them.That certainly sounds plausible. How do I build llvm in release mode? The makefile generated by cmake doesn't include 'debug' and 'release' targets.> Possibly some bug related to cleaning up memory on exit.That seems plausible. If it's a bug in Kaleidoscope itself rather than the libraries, it's not very important.
Russell Wallace <russell.wallace at gmail.com> writes:> On Sun, Jan 31, 2010 at 8:02 PM, Óscar Fuentes <ofv at wanadoo.es> wrote: >> A transformation pass. If the program works without it, I don't think it >> is important unless you care about optimization. > > Ah, I was afraid of that, because I do care very much about > optimization -- it's the main reason I'm planning on using llvm for my > compiler backend in the first place. > > Any guess at where to start investigating why LLVMInstCombine.lib > might be missing? If there had been an error during the attempt to > compile it, would the build process have stopped there, or just > skipped it and kept going new?nmake should stop. The IDE does not, although reports the number of errors at the end. Read http://www.llvm.org/docs/CMake.html for learning how to build LLVM on the configuration you wish. Then, start anew. Watch the output of nmake to see if those libraries are skipped. That said, those libraries are new and not present on the last official LLVM release. So, unless you are using a svn checkout, it is normal that they are absent. [snip]
On Sun, Jan 31, 2010 at 8:29 PM, Óscar Fuentes <ofv at wanadoo.es> wrote:> That said, those libraries are new and not present on the last official > LLVM release. So, unless you are using a svn checkout, it is normal that > they are absent.Ah! I'm using the 2.6 release, so that explains that. I'll look for them in 2.7 when that comes out. And rereading the documentation on the cmake build process, yes, that's where you set the release build; so I tried that just now, and it works! toy.exe runs fine, it even fixes the crash on exit. Thanks for the help! I'll probably be back with more questions once I start getting my front-end code linked in :-)