A "heads up": if you build LLVM on cygwin, the mmap problem discussed here: http://www.cygwin.com/ml/cygwin/2009-01/msg00501.html can crash llc: $ dd bs=1080K count=1 if=/dev/random of=x.bc 1+0 records in 1+0 records out 1105920 bytes (1.1 MB) copied, 0.167 s, 6.6 MB/s $ llc x.bc 17418 [main] llc 3596 _cygtls::handle_exceptions: Error while dumping state (probably corrupted stack) Segmentation fault (core dumped) The problem is that MemoryBuffer::getFile() uses getpagesize() to determine whether it's OK to mmap() a file, but on cygwin mmap() doesn't really obey the page size returned by getpagesize(). In my local LLVM tree I've worked around this in sys::Process::getPageSize(), returning a hard-coded value of 4096 instead of calling getpagesize(). (Maybe it would be better to work around it in MemoryBuffer::getFile() instead; I'm not sure.) Jay.