Customizing Passes

For a particular target I would like to replace some of the "standard"
passes with customized versions.

What would be the cleanest way to do this?

At the moment I cannot see a good way of removing an existing pass from
within the target library.

If you need a massively customized pipeline, you can create one from
scratch. The C backend does this, for example; take a look at