@@ -5191,20 +5191,32 @@ Action *Driver::ConstructPhaseAction(
51915191 Args.hasArg (options::OPT_S) ? types::TY_LTO_IR : types::TY_LTO_BC;
51925192 return C.MakeAction <BackendJobAction>(Input, Output);
51935193 }
5194- if (Args.hasArg (options::OPT_emit_llvm) ||
5195- TargetDeviceOffloadKind == Action::OFK_SYCL ||
5196- (((Input->getOffloadingToolChain () &&
5197- Input->getOffloadingToolChain ()->getTriple ().isAMDGPU ()) ||
5198- TargetDeviceOffloadKind == Action::OFK_HIP) &&
5199- ((Args.hasFlag (options::OPT_fgpu_rdc, options::OPT_fno_gpu_rdc,
5200- false ) ||
5201- (Args.hasFlag (options::OPT_offload_new_driver,
5202- options::OPT_no_offload_new_driver, false ) &&
5203- (!offloadDeviceOnly () ||
5204- (Input->getOffloadingToolChain () &&
5205- TargetDeviceOffloadKind == Action::OFK_HIP &&
5206- Input->getOffloadingToolChain ()->getTriple ().isSPIRV ())))) ||
5207- TargetDeviceOffloadKind == Action::OFK_OpenMP))) {
5194+
5195+ bool IsEmitLLVM = Args.hasArg (options::OPT_emit_llvm);
5196+ bool IsSYCL = TargetDeviceOffloadKind == Action::OFK_SYCL;
5197+
5198+ bool IsAMDGPU = Input->getOffloadingToolChain () &&
5199+ Input->getOffloadingToolChain ()->getTriple ().isAMDGPU ();
5200+ bool IsRDC =
5201+ Args.hasFlag (options::OPT_fgpu_rdc, options::OPT_fno_gpu_rdc, false );
5202+ bool HasNewOffloadDriver =
5203+ Args.hasFlag (options::OPT_offload_new_driver,
5204+ options::OPT_no_offload_new_driver, false );
5205+ bool IsHIP = TargetDeviceOffloadKind == Action::OFK_HIP;
5206+ bool IsSPIRV = Input->getOffloadingToolChain () &&
5207+ Input->getOffloadingToolChain ()->getTriple ().isSPIRV ();
5208+ bool IsAMDGPUOrHIP = IsAMDGPU || IsHIP;
5209+ bool IsHIPToSPIRV = IsHIP && IsSPIRV;
5210+ bool IsOpenMP = TargetDeviceOffloadKind == Action::OFK_OpenMP;
5211+
5212+ bool IsLLVMBitcodeOutput =
5213+ IsEmitLLVM || IsSYCL ||
5214+ (IsAMDGPUOrHIP &&
5215+ ((IsRDC ||
5216+ (HasNewOffloadDriver && (!offloadDeviceOnly () || IsHIPToSPIRV))) ||
5217+ IsOpenMP));
5218+
5219+ if (IsLLVMBitcodeOutput) {
52085220 types::ID Output =
52095221 Args.hasArg (options::OPT_S) &&
52105222 (TargetDeviceOffloadKind == Action::OFK_None ||
0 commit comments