Fixes for PatmosDelaySlotFiller

* no loads in delay slot for return
* respect side-effecting instructions
Added MachineModulePass that preserves MachineFunctions through MachineFunctionAnalysis
Using new MachineModulePass infrastructure to implement backend module passes
Fixed X86 block placement label checks, due to BranchFolding bugfix in 4da7bf8775b432638d6ae584ea13b884ee084ae3
Partially reverted commit 1aa73cc05a81f592c376a9f7c0ff2543079b22ca to prevent bugpoint from using wrong opt program
Applied patch from Bug #14970 to fix memory allocation errors in tests on some machines
Revert "Partially reverted commit 1aa73cc05a81f592c376a9f7c0ff2543079b22ca to prevent bugpoint from using wrong opt program"

This reverts commit cf26c5e6b547a6a18bd22dfa8591afb4f61dc9ef.

Reverting in order to make a nicer patch.
Prefer opt from same path as bugpoint.

This fixes problems with wrong versions of opt when the tests are run from a
build directory that is not in the path. Partially reverts commit 1aa73cc05.
PReg spilling with byte addressing
Revert "Use RegScavenging for large FI offset computation"

This reverts commit 49c47870efd6d124ee2ef712368220f7d09cd81a.

This change is more involved than expected,
continued on a separate branch.
platin: record origin of constraints to exclude "boring" transformed flow facts
platin: more useful output for analyze-trace
platin: analyze-trace also works with trace files, and prints useful summary on the console if no output file is specified
DelaySlotFiller fix: check flag instead of opcode
Merge branch 'master' of ssh+git://github.com/t-crest/patmos-llvm
fix 7493261d0a91b74a3dc9870193ae0bf98da20ed3
Revert "Revert "Use RegScavenging for large FI offset computation""

This reverts commit 016d1471860779eb6ebd70df1e405b9135a1dc6c.
Merge branch 'framelower'
Fixed super calls
Reuse existing immutable passes in function pass managers