Fixes so that code compiles.
Merge branch 'master' of git://github.com/CTSRD-TESLA/TESLA

Conflicts:
	tesla/instrumenter/Instrumentation.h
	tesla/instrumenter/callee.cpp
Refactor out some string constants.
Obviate all "tesla hacks" but one.

Instead of hand-coding instrumentation event receivers, generate them with LLVM.

We still don't connect these receivers to automata, but we're one TODO closer to a completely-integrated TESLA.

Also, along the way, change the ordering of instrumentation arguments: put the return value last rather than first. This is just a little more convenient for generated code, whereas the former setup was a little more readable for hand-written code.
Clearer description of command-line option.

Spotted-By: davidchisnall
Remove redundant forward declaration.

We include llvm/Pass.h, which does this for us.

Spotted-By: davidchisnall
Whitespace.

Spotted-By: davidchisnall
std::map<string,T> -> llvm::StringMap<T>.

This is a special case which is optimised in various ways:
http://llvm.org/docs/ProgrammersManual.html#dss_stringmap

Spotted-By: davidchisnall
Use SmallVector for function arguments.

Spotted-By: davidchisnall
Post-refactoring simplification.

Now that instrumentation function names are declared elsewhere, there's no need to re-declare a declaration.

This also makes a comment more meaningful.

Spotted-By: davidchisnall
Actually, a TESLA assertion can't be an invoke.

Since __tesla_inline_assertion never throws exceptions, it should only ever be a CallInst.

Spotted-By: davidchisnall
Cleaner initialisation.

Spotted-By: davidchisnall
Lift ArgVector to Instrumentation.h.

We want to be able to use it in other places, too.

Spotted-By: davidchisnall
Add TypeVector, too.

This eliminates all but one use of std::vector, which should make davidchisnall happy.

Spotted-By: davidchisnall
Normalise filenames according to LLVM conventions.

That is, use upper-case filenames.
Lift CallPrintf to a common header.

This will go away at some point, but in the meantime, I want to use CallPrintf in Assertion.cpp as well in order to completely kill strawman's tesla-hack.c.
Merge branch 'master' of git://github.com/CTSRD-TESLA/TESLA
Ok, use "&&" rather than "||" here.

As *everyone* points out, "&&" is much more meaningful here than "||". I was using the "||" in order to give the TESLA analyser something to get wrong, which is a useful test case, so I'll add a "|| something" in the second, lower-level assertion.
Properly unroll when looking for function events.
Reduce stub ugliness a little bit.