Right now when we see -O# we add the corresponding 'default<O#>' into
the list of passes to run when translating legacy -pass-name. This has
the side effect of not using the default AA pipeline.
Instead, treat -O# as -passes='default<O#>', but don't allow any other
-passes or -pass-name. I think we can keep opt -O# as shorthand for
opt -passes='default<O#> but disallow anything more than just -O#.
Tests need to be updated to not use opt -O# -pass-name.
we run this as part of the -O2 pipeline due to -mtriple, no need to specify it again
also, it's very confusing because it actually runs after -O2, which took me a while to figure out why the test was failing with -passes=function(nvvm-reflect),default<O2>, since we actually need some passes to run before nvvm-reflect for some reason