These are internal developer options and so just use report_fatal_error
if an invalid pass pipeline is specified.
This is heavily derived from the code in LLD, but there are a couple
tiny differences that make it hard to share.
We can rip this out once we integrate the new PM into the main
compilation path of course.
I have been using this to build test-suite with the new PM using D21921.
I can successfully build and run test-suite with e.g. the following pipeline:
CMAKE_C_FLAGS:STRING=-Xclang "-middle-end-passes=module(function(sroa,instcombine,simplify-cfg),globaldce,globalopt,deadargelim,function(sroa,instcombine,simplify-cfg),require<profile-summary>,require<targetlibinfo>,cgscc(prune-eh,inline,function-attrs,argpromotion,function(instcombine,simplify-cfg,instcombine,jump-threading,simplify-cfg)))" -Xclang -middle-end-aa-pipeline=basic-aa,scoped-noalias-aa,type-based-aa,globals-aa
I encourage others to try out the new PM and report any bugs!
I've already been bitten by https://llvm.org/bugs/show_bug.cgi?id=28400 in a couple ways!
Why not removing 'new' ? Eventually newpm will become pm anyway.