https://github.com/mgcarrasco created https://github.com/llvm/llvm-project/pull/164994
None >From ed03d9ddbbf84be1f01f6db145d17d8e981725c2 Mon Sep 17 00:00:00 2001 From: Manuel Carrasco <[email protected]> Date: Fri, 24 Oct 2025 10:06:54 -0500 Subject: [PATCH] [NFC][clang][driver] Improve readability of long and complex if statement. --- clang/lib/Driver/Driver.cpp | 40 ++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 40ea513e85427..3b9d3ab23a952 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -5191,20 +5191,32 @@ Action *Driver::ConstructPhaseAction( Args.hasArg(options::OPT_S) ? types::TY_LTO_IR : types::TY_LTO_BC; return C.MakeAction<BackendJobAction>(Input, Output); } - if (Args.hasArg(options::OPT_emit_llvm) || - TargetDeviceOffloadKind == Action::OFK_SYCL || - (((Input->getOffloadingToolChain() && - Input->getOffloadingToolChain()->getTriple().isAMDGPU()) || - TargetDeviceOffloadKind == Action::OFK_HIP) && - ((Args.hasFlag(options::OPT_fgpu_rdc, options::OPT_fno_gpu_rdc, - false) || - (Args.hasFlag(options::OPT_offload_new_driver, - options::OPT_no_offload_new_driver, false) && - (!offloadDeviceOnly() || - (Input->getOffloadingToolChain() && - TargetDeviceOffloadKind == Action::OFK_HIP && - Input->getOffloadingToolChain()->getTriple().isSPIRV())))) || - TargetDeviceOffloadKind == Action::OFK_OpenMP))) { + + bool IsEmitLLVM = Args.hasArg(options::OPT_emit_llvm); + bool IsSYCL = TargetDeviceOffloadKind == Action::OFK_SYCL; + + bool IsAMDGPU = Input->getOffloadingToolChain() && + Input->getOffloadingToolChain()->getTriple().isAMDGPU(); + bool IsRDC = + Args.hasFlag(options::OPT_fgpu_rdc, options::OPT_fno_gpu_rdc, false); + bool HasNewOffloadDriver = + Args.hasFlag(options::OPT_offload_new_driver, + options::OPT_no_offload_new_driver, false); + bool IsHIP = TargetDeviceOffloadKind == Action::OFK_HIP; + bool IsSPIRV = Input->getOffloadingToolChain() && + Input->getOffloadingToolChain()->getTriple().isSPIRV(); + bool IsAMDGPUOrHIP = IsAMDGPU || IsHIP; + bool IsHIPToSPIRV = IsHIP && IsSPIRV; + bool IsOpenMP = TargetDeviceOffloadKind == Action::OFK_OpenMP; + + bool IsLLVMBitcodeOutput = + IsEmitLLVM || IsSYCL || + (IsAMDGPUOrHIP && + ((IsRDC || + (HasNewOffloadDriver && (!offloadDeviceOnly() || IsHIPToSPIRV))) || + IsOpenMP)); + + if (IsLLVMBitcodeOutput) { types::ID Output = Args.hasArg(options::OPT_S) && (TargetDeviceOffloadKind == Action::OFK_None || _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
