The IRTranslator depends on the branch probability info pass when the optimization level is different than None and it depends all the time on the StackProtector pass.
We have to explicitly call out pass dependencies otherwise the pass manager may not be able to schedule the IRTranslator.
Right now we are lucky because previous passes depend on the branch probability info pass (like the Global Variable Optimization) and the stack protector pass is initialized in initializeCodeGen.
However, if the target has a custom pipeline without any passes like Global Variable Optimization, the pipeline creation will fail, at least because of the branch probability info pass dependency (it is unlikely that initializeCodeGen is not called).
Note: We can alternatively fix this problem by calling initializeBranchProbabilityInfoWrapperPassPass inside the constructor of IRTranslator if we don't like the static dependency from the INITIALIZE_PASS_DEPENDENCY macro.
Note2: We have in theory the same problem for all the dependencies added by getSelectionDAGFallbackAnalysisUsage. Right now this is not a problem because that function does not actually pull any dependendency.