         addJob(job)
         for input in job.outputs.filter({ $0.type == .llvmBitcode }) {
           let job = try backendJob(input: input, addJobOutputs: addJobOutputs)
-          addBackendJob(job)
+          addJob(job)
         }
       } else {
         let job = try compileJob(primaryInputs: primaryInputs,


    func addJob(_ j: Job) { jobs.append(j) }
    func addJobs(_ js: [Job]) { jobs.append(contentsOf: js) }
    func addBackendJob(_ j: Job) { backendJobs.append(j) }
    func addLinkerInput(_ li: TypedVirtualPath) { linkerInputs.append(li) }
    func addModuleInput(_ mi: TypedVirtualPath) { moduleInputs.append(mi) }
    func addModuleInputFromJobOutputs(_ mis: TypedVirtualPath) {


  private mutating func addSingleCompileJobs(
    addJob: (Job) -> Void,
    addJobOutputs: ([TypedVirtualPath]) -> Void
  ) throws {
    guard case .singleCompile = compilerMode
