Patch by Daniel Lupei, fixing a performance bug with the
counterexample cache.  (This is an old patch, reported at
http://llvm.org/bugs/show_bug.cgi?id=11435, on KLEE's old bug tracking
system.)
Merge pull request #80 from MartinNowack/fix_multiple_buildmodes

Allow different build modes for LLVM coexist (this issue can be avoided entirely if out of source builds are used and each build is its own directory)
Re-add support for running individual tests when built with LLVM3.3

It seems that the LLVM configure script no longer
looks for tclsh which was used to execute individual tests. E.g.

$ cd test
$ make TESTONE=Runtime/POSIX/DirConsistency.c check-one VERBOSE=1

This prevented the above from working. This commit fixes this by
having our configure script look for tclsh instead. The path_tclsh.m4
macro is taken from the projects/sample/autoconf/m4/ in LLVM3.3
Merge pull request #79 from delcypher/fix_llvm33_single_test

Re-add support for running individual tests when built with LLVM3.3
Merge pull request #76 from srg-imperial/master

Patch by Daniel Lupei, fixing a performance bug with the counterexample cache.  (This is an old patch, reported at http://llvm.org/bugs/show_bug.cgi?id=11435, on KLEE's old bug tracking system.)
Simplify acquisition of debug informtion for instruction info with newer LLVM versions

With newer LLVM versions (starting with LLVM 2.7) debug information are directly associated
as meta data with each instruction.
Therefore, debug information can be acquired directly from each instruction.
Allow to specify KLEE-internal functions

KLEE provides runtime library functions to do detection of bugs (e.g. overflow).
This runtime functions are not the location of the bugs but it is
the next non-runtime library function from the stack.
Use the caller inside that function to indicate where the bug is.
Replicate debug information from checked instructions to checker call.
Optimize inlineChecks function

* Just iterate over the instructions which use the function to be inlined
* Handle each callsite (e.g. CallInst and InvokeInst)
Remove old algorithm for acquiring debug info. Since LLVM 2.7,
debug information is attached directly to most instructions so
the simpler algorithm added in  5ecfd6e2fd5becc10be355b3a20d014e76e40518
can be used.

Since support for LLVM version < 2.9 has been removed the old algorithm
should be removed.

This has been tested with LLVM 2.9 and LLVM 3.3
Only record debug info into InstructionInfoTable if debug information
is actually available.

In addition if doing a DEBUG build then the command line flag

-debug-only=klee_missing_debug

shows the instructions missing debug information

and

-debug-only=klee_obtained_debug

show the instructions with debug information.
If error location information is missing be explicit about it. This
is more helpful because often the next message is "Now ignoring error
at this location". Which is slightly confusing when no location
is shown.
When writing stack traces for bugs write the location in the assembly.ll
file as well.
Added a few comments to Executor::getLastNonKleeInternalInstruction()
emphasising that the function cannot be returned from early.