Accept the bopt/nobopt assembly directives as a nop. Warn for .set bopt as it is not supported.
Add a test for bopt/nobopt assembly directives.
Fix some printf things.  Printf strings with no format specifiers are still broken…
Teach simplify libcalls that it shouldn’t assume that it can turn a printf() call that takes a capability argument into a puts() call that takes a pointer.
Fix a load more things where SimplifyLibCalls will insert standard library calls with parameters in the wrong address space.

Note that many of these fixes are in code paths that are never reached because other code avoids the optimisation if the address spaces don’t match.
Add a new PTRADD SelectionDAG node.  This is used for all pointer addition and is now matched in CHERI for CIncOffset.
Mapping from > and >= operations to < and <= instructions was back to front for capability compares.
Remove accidentally committed debug code.
Add the alloca address space to DataLayout.

This allows us to dump and reload LLVM IR for modules that use a non-0 address space for the stack, which should make debugging easier.  To generate CHERI asm from LLVM IR, pass -mattr=sandbox to llc.
The operand order of CToPtr was reversed in the LLVM back end.
Add a little hack that prevents CodeGenPrepare from turning our nice typesafe GEPs into ptrtoint / inttoptr pairs and ending up round-tripping our capabilities through pointers.

Fixes #72, #73
Fix a case where CodeGenPrepare decides to create bitcasts between address spaces.

Fixes #74
Fix the third place where CodeGenPrepare does BitCast when it sometimes means AddrSpaceCast.

Fixes #75
The $ct is the base register in ctoptr, so swap around their uses in LLVM to conform to the odd interpretation everywhere else.
Augment the ugly hack for va_args so that it should work even if the va_start intrinsic ends up in a different basic block to the AS cast.

Fixes #76
Fix a case where global optimisation was attempting to bitcast between address spaces (and would have undone the careful work to do dynamic initialisation for cases where this is needed in the CHERI sandbox ABI).

Fixes #78
Fix another pointer add case in SelectionDAG.

Fixes #79
Fix memset lowering to use i64 not a capabilities.
Return the sret pointer in the correct register on CHERI.

Fixes #51
Prevent SROA from generating integer values that are larger than the largest legal integer type.

This may be relevant to non-CHERI platforms, for example if there are any where f64 is valid but i32 is the largest integer size.

Fixes #77