================ @@ -708,6 +712,34 @@ void amdgpu::getAMDGPUTargetFeatures(const Driver &D, options::OPT_m_amdgpu_Features_Group); } +static unsigned GetFullLTOPartitions(const Driver &D, const ArgList &Args) { + const Arg *A = Args.getLastArg(options::OPT_flto_partitions_EQ); + // In the absence of an option, use the number of available threads with a cap + // at 16 partitions. More than 16 partitions rarely benefits code splitting + // and can lead to more empty/small modules each with their own overhead. + if (!A) + return std::min(16u, llvm::hardware_concurrency().compute_thread_count()); + int Value; + if (StringRef(A->getValue()).getAsInteger(10, Value) || (Value < 1)) { + D.Diag(diag::err_drv_invalid_int_value) + << A->getAsString(Args) << A->getValue(); + return 1; + } + + return Value; +} + +void amdgpu::addFullLTOPartitionOption(const Driver &D, + const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) { + // TODO: restrict to gpu-rdc only? ---------------- shiltian wrote:
Do we support no-gpu-rdc and full LTO? I thought gpu-rdc turns on LTO. https://github.com/llvm/llvm-project/pull/128509 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits