aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorJan Svoboda <jan_svoboda@apple.com>2021-01-27 10:11:55 +0100
committerJan Svoboda <jan_svoboda@apple.com>2021-01-27 14:21:12 +0100
commit9ad94c126aacd7f5c54632430870fa5308830e45 (patch)
tree6d969dcb29fb1fbdccdd0aae8c2a88f5a8360c6b /clang/lib/Frontend/CompilerInvocation.cpp
parent88b8c1f2bc479de98fb48cbb38627f474e099a2d (diff)
downloadllvm-9ad94c126aacd7f5c54632430870fa5308830e45.zip
llvm-9ad94c126aacd7f5c54632430870fa5308830e45.tar.gz
llvm-9ad94c126aacd7f5c54632430870fa5308830e45.tar.bz2
[clang][cli] Port OpenMP-related LangOpts to marshalling system
Port some OpenMP-related language options to the marshalling system for automatic command line parsing and generation. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D95348
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r--clang/lib/Frontend/CompilerInvocation.cpp22
1 files changed, 6 insertions, 16 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index 4853a70..d61c3bd 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -477,6 +477,12 @@ static void FixupInvocation(CompilerInvocation &Invocation,
<< A->getSpelling() << T.getTriple();
}
+ // Report if OpenMP host file does not exist.
+ if (!LangOpts.OMPHostIRFile.empty() &&
+ !llvm::sys::fs::exists(LangOpts.OMPHostIRFile))
+ Diags.Report(diag::err_drv_omp_host_ir_file_not_found)
+ << LangOpts.OMPHostIRFile;
+
if (!CodeGenOpts.ProfileRemappingFile.empty() && CodeGenOpts.LegacyPassManager)
Diags.Report(diag::err_drv_argument_only_allowed_with)
<< Args.getLastArg(OPT_fprofile_remapping_file_EQ)->getAsString(Args)
@@ -2382,13 +2388,6 @@ void CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args,
bool IsSimdSpecified =
Args.hasFlag(options::OPT_fopenmp_simd, options::OPT_fno_openmp_simd,
/*Default=*/false);
- Opts.OpenMPSimd = !Opts.OpenMP && IsSimdSpecified;
- Opts.OpenMPUseTLS =
- Opts.OpenMP && !Args.hasArg(options::OPT_fnoopenmp_use_tls);
- Opts.OpenMPIsDevice =
- Opts.OpenMP && Args.hasArg(options::OPT_fopenmp_is_device);
- Opts.OpenMPIRBuilder =
- Opts.OpenMP && Args.hasArg(options::OPT_fopenmp_enable_irbuilder);
bool IsTargetSpecified =
Opts.OpenMPIsDevice || Args.hasArg(options::OPT_fopenmp_targets_EQ);
@@ -2462,15 +2461,6 @@ void CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args,
}
}
- // Get OpenMP host file path if any and report if a non existent file is
- // found
- if (Arg *A = Args.getLastArg(options::OPT_fopenmp_host_ir_file_path)) {
- Opts.OMPHostIRFile = A->getValue();
- if (!llvm::sys::fs::exists(Opts.OMPHostIRFile))
- Diags.Report(diag::err_drv_omp_host_ir_file_not_found)
- << Opts.OMPHostIRFile;
- }
-
// Set CUDA mode for OpenMP target NVPTX/AMDGCN if specified in options
Opts.OpenMPCUDAMode = Opts.OpenMPIsDevice && (T.isNVPTX() || T.isAMDGCN()) &&
Args.hasArg(options::OPT_fopenmp_cuda_mode);