Split the libbcc pass manager into two phases.

This is to prevent unintended interactions between passes as the
ordering of side effects is different when running inside of a pass
manager when compared to running passes one by one. For example, the
LLVM object file writer pass outputs some parts of the debug information
to the target file on pass initialization. If a pass that
is scheduled before the object file writer pass modifies the debug
info metadata in the pass run phase, the alterations will be
reflected in the resultant LLVM module but NOT in the output file.

Change-Id: I4dba6a5acb5535205f1208f94de7211db50644e4
1 file changed