https://github.com/tarunprabhu created https://github.com/llvm/llvm-project/pull/96678
Reverts llvm/llvm-project#95043 >From b07dae1f1b758e9f55667dac4db38c78bd609656 Mon Sep 17 00:00:00 2001 From: Tarun Prabhu <tarunpra...@gmail.com> Date: Tue, 25 Jun 2024 12:56:50 -0600 Subject: [PATCH] Revert "[flang] Add basic -mtune support (#95043)" This reverts commit a790279bf2a8be2f9c42bf80f55a63933e398d0e. --- clang/include/clang/Driver/Options.td | 7 +++---- clang/lib/Driver/ToolChains/Flang.cpp | 10 +--------- flang/include/flang/Frontend/TargetOptions.h | 3 --- flang/include/flang/Lower/Bridge.h | 6 +++--- .../flang/Optimizer/CodeGen/CGPasses.td | 4 ---- .../include/flang/Optimizer/CodeGen/Target.h | 19 +------------------ .../Optimizer/Dialect/Support/FIRContext.h | 7 ------- .../flang/Optimizer/Transforms/Passes.td | 3 --- flang/lib/Frontend/CompilerInvocation.cpp | 4 ---- flang/lib/Frontend/FrontendActions.cpp | 3 +-- flang/lib/Lower/Bridge.cpp | 3 +-- flang/lib/Optimizer/CodeGen/CodeGen.cpp | 6 +----- flang/lib/Optimizer/CodeGen/Target.cpp | 11 ----------- flang/lib/Optimizer/CodeGen/TargetRewrite.cpp | 12 +----------- flang/lib/Optimizer/CodeGen/TypeConverter.cpp | 3 +-- .../Optimizer/Dialect/Support/FIRContext.cpp | 18 ------------------ flang/test/Driver/tune-cpu-fir.f90 | 14 -------------- flang/test/Lower/tune-cpu-llvm.f90 | 6 ------ flang/tools/bbc/bbc.cpp | 3 +-- flang/tools/tco/tco.cpp | 4 ---- flang/unittests/Optimizer/FIRContextTest.cpp | 3 --- mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td | 1 - mlir/lib/Target/LLVMIR/ModuleImport.cpp | 5 ----- mlir/lib/Target/LLVMIR/ModuleTranslation.cpp | 3 --- mlir/test/Target/LLVMIR/Import/tune-cpu.ll | 9 --------- mlir/test/Target/LLVMIR/tune-cpu.mlir | 7 ------- 26 files changed, 14 insertions(+), 160 deletions(-) delete mode 100644 flang/test/Driver/tune-cpu-fir.f90 delete mode 100644 flang/test/Lower/tune-cpu-llvm.f90 delete mode 100644 mlir/test/Target/LLVMIR/Import/tune-cpu.ll delete mode 100644 mlir/test/Target/LLVMIR/tune-cpu.mlir diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index b85daa3fccc46..dd55838dcf384 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -5421,7 +5421,6 @@ def module_file_info : Flag<["-"], "module-file-info">, Flags<[]>, HelpText<"Provide information about a particular module file">; def mthumb : Flag<["-"], "mthumb">, Group<m_Group>; def mtune_EQ : Joined<["-"], "mtune=">, Group<m_Group>, - Visibility<[ClangOption, FlangOption]>, HelpText<"Only supported on AArch64, PowerPC, RISC-V, SPARC, SystemZ, and X86">; def multi__module : Flag<["-"], "multi_module">; def multiply__defined__unused : Separate<["-"], "multiply_defined_unused">; @@ -6738,6 +6737,9 @@ def emit_hlfir : Flag<["-"], "emit-hlfir">, Group<Action_Group>, let Visibility = [CC1Option, CC1AsOption] in { +def tune_cpu : Separate<["-"], "tune-cpu">, + HelpText<"Tune for a specific cpu type">, + MarshallingInfoString<TargetOpts<"TuneCPU">>; def target_abi : Separate<["-"], "target-abi">, HelpText<"Target a particular ABI type">, MarshallingInfoString<TargetOpts<"ABI">>; @@ -6764,9 +6766,6 @@ def darwin_target_variant_triple : Separate<["-"], "darwin-target-variant-triple let Visibility = [CC1Option, CC1AsOption, FC1Option] in { -def tune_cpu : Separate<["-"], "tune-cpu">, - HelpText<"Tune for a specific cpu type">, - MarshallingInfoString<TargetOpts<"TuneCPU">>; def target_cpu : Separate<["-"], "target-cpu">, HelpText<"Target a specific cpu type">, MarshallingInfoString<TargetOpts<"CPU">>; diff --git a/clang/lib/Driver/ToolChains/Flang.cpp b/clang/lib/Driver/ToolChains/Flang.cpp index 98fe7cace058f..42b45dba2bd31 100644 --- a/clang/lib/Driver/ToolChains/Flang.cpp +++ b/clang/lib/Driver/ToolChains/Flang.cpp @@ -15,7 +15,6 @@ #include "llvm/Frontend/Debug/Options.h" #include "llvm/Support/FileSystem.h" #include "llvm/Support/Path.h" -#include "llvm/TargetParser/Host.h" #include "llvm/TargetParser/RISCVISAInfo.h" #include "llvm/TargetParser/RISCVTargetParser.h" @@ -412,13 +411,6 @@ void Flang::addTargetOptions(const ArgList &Args, } // TODO: Add target specific flags, ABI, mtune option etc. - if (const Arg *A = Args.getLastArg(options::OPT_mtune_EQ)) { - CmdArgs.push_back("-tune-cpu"); - if (A->getValue() == StringRef{"native"}) - CmdArgs.push_back(Args.MakeArgString(llvm::sys::getHostCPUName())); - else - CmdArgs.push_back(A->getValue()); - } } void Flang::addOffloadOptions(Compilation &C, const InputInfoList &Inputs, @@ -810,7 +802,7 @@ void Flang::ConstructJob(Compilation &C, const JobAction &JA, case CodeGenOptions::FramePointerKind::None: FPKeepKindStr = "-mframe-pointer=none"; break; - case CodeGenOptions::FramePointerKind::Reserved: + case CodeGenOptions::FramePointerKind::Reserved: FPKeepKindStr = "-mframe-pointer=reserved"; break; case CodeGenOptions::FramePointerKind::NonLeaf: diff --git a/flang/include/flang/Frontend/TargetOptions.h b/flang/include/flang/Frontend/TargetOptions.h index fa72c77a028a1..ef5d270a2185d 100644 --- a/flang/include/flang/Frontend/TargetOptions.h +++ b/flang/include/flang/Frontend/TargetOptions.h @@ -32,9 +32,6 @@ class TargetOptions { /// If given, the name of the target CPU to generate code for. std::string cpu; - /// If given, the name of the target CPU to tune code for. - std::string cpuToTuneFor; - /// The list of target specific features to enable or disable, as written on /// the command line. std::vector<std::string> featuresAsWritten; diff --git a/flang/include/flang/Lower/Bridge.h b/flang/include/flang/Lower/Bridge.h index 4379ed512cdf0..52110b861b680 100644 --- a/flang/include/flang/Lower/Bridge.h +++ b/flang/include/flang/Lower/Bridge.h @@ -65,11 +65,11 @@ class LoweringBridge { const Fortran::lower::LoweringOptions &loweringOptions, const std::vector<Fortran::lower::EnvironmentDefault> &envDefaults, const Fortran::common::LanguageFeatureControl &languageFeatures, - const llvm::TargetMachine &targetMachine, llvm::StringRef tuneCPU) { + const llvm::TargetMachine &targetMachine) { return LoweringBridge(ctx, semanticsContext, defaultKinds, intrinsics, targetCharacteristics, allCooked, triple, kindMap, loweringOptions, envDefaults, languageFeatures, - targetMachine, tuneCPU); + targetMachine); } //===--------------------------------------------------------------------===// @@ -148,7 +148,7 @@ class LoweringBridge { const Fortran::lower::LoweringOptions &loweringOptions, const std::vector<Fortran::lower::EnvironmentDefault> &envDefaults, const Fortran::common::LanguageFeatureControl &languageFeatures, - const llvm::TargetMachine &targetMachine, const llvm::StringRef tuneCPU); + const llvm::TargetMachine &targetMachine); LoweringBridge() = delete; LoweringBridge(const LoweringBridge &) = delete; diff --git a/flang/include/flang/Optimizer/CodeGen/CGPasses.td b/flang/include/flang/Optimizer/CodeGen/CGPasses.td index 989e3943882a1..9a4d327b33bad 100644 --- a/flang/include/flang/Optimizer/CodeGen/CGPasses.td +++ b/flang/include/flang/Optimizer/CodeGen/CGPasses.td @@ -31,8 +31,6 @@ def FIRToLLVMLowering : Pass<"fir-to-llvm-ir", "mlir::ModuleOp"> { "Override module's data layout.">, Option<"forcedTargetCPU", "target-cpu", "std::string", /*default=*/"", "Override module's target CPU.">, - Option<"forcedTuneCPU", "tune-cpu", "std::string", /*default=*/"", - "Override module's tune CPU.">, Option<"forcedTargetFeatures", "target-features", "std::string", /*default=*/"", "Override module's target features.">, Option<"applyTBAA", "apply-tbaa", "bool", /*default=*/"false", @@ -70,8 +68,6 @@ def TargetRewritePass : Pass<"target-rewrite", "mlir::ModuleOp"> { "Override module's target triple.">, Option<"forcedTargetCPU", "target-cpu", "std::string", /*default=*/"", "Override module's target CPU.">, - Option<"forcedTuneCPU", "tune-cpu", "std::string", /*default=*/"", - "Override module's tune CPU.">, Option<"forcedTargetFeatures", "target-features", "std::string", /*default=*/"", "Override module's target features.">, Option<"noCharacterConversion", "no-character-conversion", diff --git a/flang/include/flang/Optimizer/CodeGen/Target.h b/flang/include/flang/Optimizer/CodeGen/Target.h index a7161152a5c32..3cf6a74a9adb7 100644 --- a/flang/include/flang/Optimizer/CodeGen/Target.h +++ b/flang/include/flang/Optimizer/CodeGen/Target.h @@ -76,11 +76,6 @@ class CodeGenSpecifics { llvm::StringRef targetCPU, mlir::LLVM::TargetFeaturesAttr targetFeatures, const mlir::DataLayout &dl); - static std::unique_ptr<CodeGenSpecifics> - get(mlir::MLIRContext *ctx, llvm::Triple &&trp, KindMapping &&kindMap, - llvm::StringRef targetCPU, mlir::LLVM::TargetFeaturesAttr targetFeatures, - const mlir::DataLayout &dl, llvm::StringRef tuneCPU); - static TypeAndAttr getTypeAndAttr(mlir::Type t) { return TypeAndAttr{t, {}}; } CodeGenSpecifics(mlir::MLIRContext *ctx, llvm::Triple &&trp, @@ -88,17 +83,7 @@ class CodeGenSpecifics { mlir::LLVM::TargetFeaturesAttr targetFeatures, const mlir::DataLayout &dl) : context{*ctx}, triple{std::move(trp)}, kindMap{std::move(kindMap)}, - targetCPU{targetCPU}, targetFeatures{targetFeatures}, dataLayout{&dl}, - tuneCPU{""} {} - - CodeGenSpecifics(mlir::MLIRContext *ctx, llvm::Triple &&trp, - KindMapping &&kindMap, llvm::StringRef targetCPU, - mlir::LLVM::TargetFeaturesAttr targetFeatures, - const mlir::DataLayout &dl, llvm::StringRef tuneCPU) - : context{*ctx}, triple{std::move(trp)}, kindMap{std::move(kindMap)}, - targetCPU{targetCPU}, targetFeatures{targetFeatures}, dataLayout{&dl}, - tuneCPU{tuneCPU} {} - + targetCPU{targetCPU}, targetFeatures{targetFeatures}, dataLayout{&dl} {} CodeGenSpecifics() = delete; virtual ~CodeGenSpecifics() {} @@ -180,7 +165,6 @@ class CodeGenSpecifics { virtual unsigned char getCIntTypeWidth() const = 0; llvm::StringRef getTargetCPU() const { return targetCPU; } - llvm::StringRef getTuneCPU() const { return tuneCPU; } mlir::LLVM::TargetFeaturesAttr getTargetFeatures() const { return targetFeatures; @@ -198,7 +182,6 @@ class CodeGenSpecifics { llvm::StringRef targetCPU; mlir::LLVM::TargetFeaturesAttr targetFeatures; const mlir::DataLayout *dataLayout = nullptr; - llvm::StringRef tuneCPU; }; } // namespace fir diff --git a/flang/include/flang/Optimizer/Dialect/Support/FIRContext.h b/flang/include/flang/Optimizer/Dialect/Support/FIRContext.h index bd31aa0782493..059a10ce2fe51 100644 --- a/flang/include/flang/Optimizer/Dialect/Support/FIRContext.h +++ b/flang/include/flang/Optimizer/Dialect/Support/FIRContext.h @@ -58,13 +58,6 @@ void setTargetCPU(mlir::ModuleOp mod, llvm::StringRef cpu); /// Get the target CPU string from the Module or return a null reference. llvm::StringRef getTargetCPU(mlir::ModuleOp mod); -/// Set the tune CPU for the module. `cpu` must not be deallocated while -/// module `mod` is still live. -void setTuneCPU(mlir::ModuleOp mod, llvm::StringRef cpu); - -/// Get the tune CPU string from the Module or return a null reference. -llvm::StringRef getTuneCPU(mlir::ModuleOp mod); - /// Set the target features for the module. void setTargetFeatures(mlir::ModuleOp mod, llvm::StringRef features); diff --git a/flang/include/flang/Optimizer/Transforms/Passes.td b/flang/include/flang/Optimizer/Transforms/Passes.td index 8fe3b61cf6da6..b3ed9acad36df 100644 --- a/flang/include/flang/Optimizer/Transforms/Passes.td +++ b/flang/include/flang/Optimizer/Transforms/Passes.td @@ -411,9 +411,6 @@ def FunctionAttr : Pass<"function-attr", "mlir::func::FuncOp"> { Option<"unsafeFPMath", "unsafe-fp-math", "bool", /*default=*/"false", "Set the unsafe-fp-math attribute on functions in the module.">, - Option<"tuneCPU", "tune-cpu", - "llvm::StringRef", /*default=*/"llvm::StringRef{}", - "Set the tune-cpu attribute on functions in the module.">, ]; } diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp index ed19aaa1a1d34..f96d72f1ad691 100644 --- a/flang/lib/Frontend/CompilerInvocation.cpp +++ b/flang/lib/Frontend/CompilerInvocation.cpp @@ -407,10 +407,6 @@ static void parseTargetArgs(TargetOptions &opts, llvm::opt::ArgList &args) { args.getLastArg(clang::driver::options::OPT_target_cpu)) opts.cpu = a->getValue(); - if (const llvm::opt::Arg *a = - args.getLastArg(clang::driver::options::OPT_tune_cpu)) - opts.cpuToTuneFor = a->getValue(); - for (const llvm::opt::Arg *currentArg : args.filtered(clang::driver::options::OPT_target_feature)) opts.featuresAsWritten.emplace_back(currentArg->getValue()); diff --git a/flang/lib/Frontend/FrontendActions.cpp b/flang/lib/Frontend/FrontendActions.cpp index 0cc943ae5cb68..24db4df31279a 100644 --- a/flang/lib/Frontend/FrontendActions.cpp +++ b/flang/lib/Frontend/FrontendActions.cpp @@ -297,8 +297,7 @@ bool CodeGenAction::beginSourceFileAction() { ci.getParsing().allCooked(), ci.getInvocation().getTargetOpts().triple, kindMap, ci.getInvocation().getLoweringOpts(), ci.getInvocation().getFrontendOpts().envDefaults, - ci.getInvocation().getFrontendOpts().features, targetMachine, - ci.getInvocation().getTargetOpts().cpuToTuneFor); + ci.getInvocation().getFrontendOpts().features, targetMachine); // Fetch module from lb, so we can set mlirModule = std::make_unique<mlir::ModuleOp>(lb.getModule()); diff --git a/flang/lib/Lower/Bridge.cpp b/flang/lib/Lower/Bridge.cpp index e565ad86603f9..50f58843ec70b 100644 --- a/flang/lib/Lower/Bridge.cpp +++ b/flang/lib/Lower/Bridge.cpp @@ -5929,7 +5929,7 @@ Fortran::lower::LoweringBridge::LoweringBridge( const Fortran::lower::LoweringOptions &loweringOptions, const std::vector<Fortran::lower::EnvironmentDefault> &envDefaults, const Fortran::common::LanguageFeatureControl &languageFeatures, - const llvm::TargetMachine &targetMachine, const llvm::StringRef tuneCPU) + const llvm::TargetMachine &targetMachine) : semanticsContext{semanticsContext}, defaultKinds{defaultKinds}, intrinsics{intrinsics}, targetCharacteristics{targetCharacteristics}, cooked{&cooked}, context{context}, kindMap{kindMap}, @@ -5986,7 +5986,6 @@ Fortran::lower::LoweringBridge::LoweringBridge( fir::setTargetTriple(*module.get(), triple); fir::setKindMapping(*module.get(), kindMap); fir::setTargetCPU(*module.get(), targetMachine.getTargetCPU()); - fir::setTuneCPU(*module.get(), tuneCPU); fir::setTargetFeatures(*module.get(), targetMachine.getTargetFeatureString()); fir::support::setMLIRDataLayout(*module.get(), targetMachine.createDataLayout()); diff --git a/flang/lib/Optimizer/CodeGen/CodeGen.cpp b/flang/lib/Optimizer/CodeGen/CodeGen.cpp index 6014e3627fb7d..5f35825783c51 100644 --- a/flang/lib/Optimizer/CodeGen/CodeGen.cpp +++ b/flang/lib/Optimizer/CodeGen/CodeGen.cpp @@ -3618,9 +3618,6 @@ class FIRToLLVMLowering if (!forcedTargetCPU.empty()) fir::setTargetCPU(mod, forcedTargetCPU); - if (!forcedTuneCPU.empty()) - fir::setTuneCPU(mod, forcedTuneCPU); - if (!forcedTargetFeatures.empty()) fir::setTargetFeatures(mod, forcedTargetFeatures); @@ -3717,8 +3714,7 @@ class FIRToLLVMLowering signalPassFailure(); } - // Run pass to add comdats to functions that have weak linkage on relevant - // platforms + // Run pass to add comdats to functions that have weak linkage on relevant platforms if (fir::getTargetTriple(mod).supportsCOMDAT()) { mlir::OpPassManager comdatPM("builtin.module"); comdatPM.addPass(mlir::LLVM::createLLVMAddComdats()); diff --git a/flang/lib/Optimizer/CodeGen/Target.cpp b/flang/lib/Optimizer/CodeGen/Target.cpp index 25141102a8c43..652e2bddc1b89 100644 --- a/flang/lib/Optimizer/CodeGen/Target.cpp +++ b/flang/lib/Optimizer/CodeGen/Target.cpp @@ -1113,14 +1113,3 @@ fir::CodeGenSpecifics::get(mlir::MLIRContext *ctx, llvm::Triple &&trp, } TODO(mlir::UnknownLoc::get(ctx), "target not implemented"); } - -std::unique_ptr<fir::CodeGenSpecifics> fir::CodeGenSpecifics::get( - mlir::MLIRContext *ctx, llvm::Triple &&trp, KindMapping &&kindMap, - llvm::StringRef targetCPU, mlir::LLVM::TargetFeaturesAttr targetFeatures, - const mlir::DataLayout &dl, llvm::StringRef tuneCPU) { - std::unique_ptr<fir::CodeGenSpecifics> CGS = fir::CodeGenSpecifics::get( - ctx, std::move(trp), std::move(kindMap), targetCPU, targetFeatures, dl); - - CGS->tuneCPU = tuneCPU; - return CGS; -} diff --git a/flang/lib/Optimizer/CodeGen/TargetRewrite.cpp b/flang/lib/Optimizer/CodeGen/TargetRewrite.cpp index a101295ba4c13..8199c5ef7fa26 100644 --- a/flang/lib/Optimizer/CodeGen/TargetRewrite.cpp +++ b/flang/lib/Optimizer/CodeGen/TargetRewrite.cpp @@ -89,9 +89,6 @@ class TargetRewrite : public fir::impl::TargetRewritePassBase<TargetRewrite> { if (!forcedTargetCPU.empty()) fir::setTargetCPU(mod, forcedTargetCPU); - if (!forcedTuneCPU.empty()) - fir::setTuneCPU(mod, forcedTuneCPU); - if (!forcedTargetFeatures.empty()) fir::setTargetFeatures(mod, forcedTargetFeatures); @@ -109,8 +106,7 @@ class TargetRewrite : public fir::impl::TargetRewritePassBase<TargetRewrite> { auto specifics = fir::CodeGenSpecifics::get( mod.getContext(), fir::getTargetTriple(mod), fir::getKindMapping(mod), - fir::getTargetCPU(mod), fir::getTargetFeatures(mod), *dl, - fir::getTuneCPU(mod)); + fir::getTargetCPU(mod), fir::getTargetFeatures(mod), *dl); setMembers(specifics.get(), &rewriter, &*dl); @@ -676,18 +672,12 @@ class TargetRewrite : public fir::impl::TargetRewritePassBase<TargetRewrite> { auto targetCPU = specifics->getTargetCPU(); mlir::StringAttr targetCPUAttr = targetCPU.empty() ? nullptr : mlir::StringAttr::get(ctx, targetCPU); - auto tuneCPU = specifics->getTuneCPU(); - mlir::StringAttr tuneCPUAttr = - tuneCPU.empty() ? nullptr : mlir::StringAttr::get(ctx, tuneCPU); auto targetFeaturesAttr = specifics->getTargetFeatures(); for (auto fn : mod.getOps<mlir::func::FuncOp>()) { if (targetCPUAttr) fn->setAttr("target_cpu", targetCPUAttr); - if (tuneCPUAttr) - fn->setAttr("tune_cpu", tuneCPUAttr); - if (targetFeaturesAttr) fn->setAttr("target_features", targetFeaturesAttr); diff --git a/flang/lib/Optimizer/CodeGen/TypeConverter.cpp b/flang/lib/Optimizer/CodeGen/TypeConverter.cpp index dbb5c40f72dad..501a36f5b68ba 100644 --- a/flang/lib/Optimizer/CodeGen/TypeConverter.cpp +++ b/flang/lib/Optimizer/CodeGen/TypeConverter.cpp @@ -35,8 +35,7 @@ LLVMTypeConverter::LLVMTypeConverter(mlir::ModuleOp module, bool applyTBAA, kindMapping(getKindMapping(module)), specifics(CodeGenSpecifics::get( module.getContext(), getTargetTriple(module), getKindMapping(module), - getTargetCPU(module), getTargetFeatures(module), dl, - getTuneCPU(module))), + getTargetCPU(module), getTargetFeatures(module), dl)), tbaaBuilder(std::make_unique<TBAABuilder>(module->getContext(), applyTBAA, forceUnifiedTBAATree)), dataLayout{&dl} { diff --git a/flang/lib/Optimizer/Dialect/Support/FIRContext.cpp b/flang/lib/Optimizer/Dialect/Support/FIRContext.cpp index 1aa631cb39126..c4d00875c45e4 100644 --- a/flang/lib/Optimizer/Dialect/Support/FIRContext.cpp +++ b/flang/lib/Optimizer/Dialect/Support/FIRContext.cpp @@ -77,24 +77,6 @@ llvm::StringRef fir::getTargetCPU(mlir::ModuleOp mod) { return {}; } -static constexpr const char *tuneCpuName = "fir.tune_cpu"; - -void fir::setTuneCPU(mlir::ModuleOp mod, llvm::StringRef cpu) { - if (cpu.empty()) - return; - - auto *ctx = mod.getContext(); - - mod->setAttr(tuneCpuName, mlir::StringAttr::get(ctx, cpu)); -} - -llvm::StringRef fir::getTuneCPU(mlir::ModuleOp mod) { - if (auto attr = mod->getAttrOfType<mlir::StringAttr>(tuneCpuName)) - return attr.getValue(); - - return {}; -} - static constexpr const char *targetFeaturesName = "fir.target_features"; void fir::setTargetFeatures(mlir::ModuleOp mod, llvm::StringRef features) { diff --git a/flang/test/Driver/tune-cpu-fir.f90 b/flang/test/Driver/tune-cpu-fir.f90 deleted file mode 100644 index 2db1935e42a21..0000000000000 --- a/flang/test/Driver/tune-cpu-fir.f90 +++ /dev/null @@ -1,14 +0,0 @@ -! REQUIRES: x86-registered-target -! RUN: %flang_fc1 -emit-fir -triple x86_64-unknown-linux-gnu -target-cpu x86-64 %s -o - | FileCheck %s --check-prefixes=ALL,CPU -! RUN: %flang_fc1 -emit-fir -triple x86_64-unknown-linux-gnu -tune-cpu pentium4 %s -o - | FileCheck %s --check-prefixes=ALL,TUNE -! RUN: %flang_fc1 -emit-fir -triple x86_64-unknown-linux-gnu -target-cpu x86-64 -tune-cpu pentium4 %s -o - | FileCheck %s --check-prefixes=ALL,BOTH - -! ALL: module attributes { - -! CPU-SAME: fir.target_cpu = "x86-64" -! CPU-NOT: fir.tune_cpu = "pentium4" - -! TUNE-SAME: fir.tune_cpu = "pentium4" - -! BOTH-SAME: fir.target_cpu = "x86-64" -! BOTH-SAME: fir.tune_cpu = "pentium4" diff --git a/flang/test/Lower/tune-cpu-llvm.f90 b/flang/test/Lower/tune-cpu-llvm.f90 deleted file mode 100644 index aa6594bc76312..0000000000000 --- a/flang/test/Lower/tune-cpu-llvm.f90 +++ /dev/null @@ -1,6 +0,0 @@ -! RUN: %flang -mtune=pentium4 -S -emit-llvm %s -o - | FileCheck %s - -!CHECK: attributes #{{[0-9]+}} = { -!CHECK-SAME: "tune-cpu"="pentium4" -subroutine a -end subroutine a diff --git a/flang/tools/bbc/bbc.cpp b/flang/tools/bbc/bbc.cpp index 0a149be0c0597..3485c1499d3b6 100644 --- a/flang/tools/bbc/bbc.cpp +++ b/flang/tools/bbc/bbc.cpp @@ -367,12 +367,11 @@ static mlir::LogicalResult convertFortranSourceToMLIR( loweringOptions.setLowerToHighLevelFIR(useHLFIR || emitHLFIR); loweringOptions.setNSWOnLoopVarInc(setNSW); std::vector<Fortran::lower::EnvironmentDefault> envDefaults = {}; - constexpr const char *tuneCPU = ""; auto burnside = Fortran::lower::LoweringBridge::create( ctx, semanticsContext, defKinds, semanticsContext.intrinsics(), semanticsContext.targetCharacteristics(), parsing.allCooked(), targetTriple, kindMap, loweringOptions, envDefaults, - semanticsContext.languageFeatures(), targetMachine, tuneCPU); + semanticsContext.languageFeatures(), targetMachine); mlir::ModuleOp mlirModule = burnside.getModule(); if (enableOpenMP) { if (enableOpenMPGPU && !enableOpenMPDevice) { diff --git a/flang/tools/tco/tco.cpp b/flang/tools/tco/tco.cpp index c8964d46b9cea..399ea1362fda4 100644 --- a/flang/tools/tco/tco.cpp +++ b/flang/tools/tco/tco.cpp @@ -58,9 +58,6 @@ static cl::opt<std::string> targetTriple("target", static cl::opt<std::string> targetCPU("target-cpu", cl::desc("specify a target CPU"), cl::init("")); -static cl::opt<std::string> tuneCPU("tune-cpu", cl::desc("specify a tune CPU"), - cl::init("")); - static cl::opt<std::string> targetFeatures("target-features", cl::desc("specify the target features"), cl::init("")); @@ -116,7 +113,6 @@ compileFIR(const mlir::PassPipelineCLParser &passPipeline) { fir::setTargetTriple(*owningRef, targetTriple); fir::setKindMapping(*owningRef, kindMap); fir::setTargetCPU(*owningRef, targetCPU); - fir::setTuneCPU(*owningRef, tuneCPU); fir::setTargetFeatures(*owningRef, targetFeatures); // tco is a testing tool, so it will happily use the target independent // data layout if none is on the module. diff --git a/flang/unittests/Optimizer/FIRContextTest.cpp b/flang/unittests/Optimizer/FIRContextTest.cpp index 3f8b59ac94a95..49e1ebf23d8aa 100644 --- a/flang/unittests/Optimizer/FIRContextTest.cpp +++ b/flang/unittests/Optimizer/FIRContextTest.cpp @@ -34,7 +34,6 @@ struct StringAttributesTests : public testing::Test { "i10:80,l3:24,a1:8,r54:Double,r62:X86_FP80,r11:PPC_FP128"; std::string target = "powerpc64le-unknown-linux-gnu"; std::string targetCPU = "gfx90a"; - std::string tuneCPU = "generic"; std::string targetFeatures = "+gfx9-insts,+wavefrontsize64"; mlir::ModuleOp mod; }; @@ -43,7 +42,6 @@ TEST_F(StringAttributesTests, moduleStringAttrTest) { setTargetTriple(mod, target); setKindMapping(mod, *kindMap); setTargetCPU(mod, targetCPU); - setTuneCPU(mod, tuneCPU); setTargetFeatures(mod, targetFeatures); auto triple = getTargetTriple(mod); @@ -63,7 +61,6 @@ TEST_F(StringAttributesTests, moduleStringAttrTest) { EXPECT_TRUE(mapStr.find("r62:X86_FP80") != std::string::npos); EXPECT_EQ(getTargetCPU(mod), targetCPU); - EXPECT_EQ(getTuneCPU(mod), tuneCPU); auto features = getTargetFeatures(mod); auto featuresList = features.getFeatures(); diff --git a/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td b/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td index d45f1437df53a..fb3b8e77c492e 100644 --- a/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td +++ b/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td @@ -1447,7 +1447,6 @@ def LLVM_LLVMFuncOp : LLVM_Op<"func", [ OptionalAttr<LLVM_VScaleRangeAttr>:$vscale_range, OptionalAttr<FramePointerKindAttr>:$frame_pointer, OptionalAttr<StrAttr>:$target_cpu, - OptionalAttr<StrAttr>:$tune_cpu, OptionalAttr<LLVM_TargetFeaturesAttr>:$target_features, OptionalAttr<BoolAttr>:$unsafe_fp_math, OptionalAttr<BoolAttr>:$no_infs_fp_math, diff --git a/mlir/lib/Target/LLVMIR/ModuleImport.cpp b/mlir/lib/Target/LLVMIR/ModuleImport.cpp index 4b9ac4500df5e..cfcf33436a899 100644 --- a/mlir/lib/Target/LLVMIR/ModuleImport.cpp +++ b/mlir/lib/Target/LLVMIR/ModuleImport.cpp @@ -1682,7 +1682,6 @@ static constexpr std::array kExplicitAttributes{ StringLiteral("noinline"), StringLiteral("optnone"), StringLiteral("target-features"), - StringLiteral("tune-cpu"), StringLiteral("unsafe-fp-math"), StringLiteral("vscale_range"), }; @@ -1797,10 +1796,6 @@ void ModuleImport::processFunctionAttributes(llvm::Function *func, attr.isStringAttribute()) funcOp.setTargetCpuAttr(StringAttr::get(context, attr.getValueAsString())); - if (llvm::Attribute attr = func->getFnAttribute("tune-cpu"); - attr.isStringAttribute()) - funcOp.setTuneCpuAttr(StringAttr::get(context, attr.getValueAsString())); - if (llvm::Attribute attr = func->getFnAttribute("target-features"); attr.isStringAttribute()) funcOp.setTargetFeaturesAttr( diff --git a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp index 273d5faca478e..6e8b2dec75b71 100644 --- a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp +++ b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp @@ -1327,9 +1327,6 @@ LogicalResult ModuleTranslation::convertOneFunction(LLVMFuncOp func) { if (auto targetCpu = func.getTargetCpu()) llvmFunc->addFnAttr("target-cpu", *targetCpu); - if (auto tuneCpu = func.getTuneCpu()) - llvmFunc->addFnAttr("tune-cpu", *tuneCpu); - if (auto targetFeatures = func.getTargetFeatures()) llvmFunc->addFnAttr("target-features", targetFeatures->getFeaturesString()); diff --git a/mlir/test/Target/LLVMIR/Import/tune-cpu.ll b/mlir/test/Target/LLVMIR/Import/tune-cpu.ll deleted file mode 100644 index 9607da82c298a..0000000000000 --- a/mlir/test/Target/LLVMIR/Import/tune-cpu.ll +++ /dev/null @@ -1,9 +0,0 @@ -; RUN: mlir-translate -import-llvm -split-input-file %s | FileCheck %s - -; CHECK-LABEL: llvm.func @tune_cpu() -; CHECK-SAME: tune_cpu = "pentium4" -define void @tune_cpu() #0 { - ret void -} - -attributes #0 = { "tune-cpu"="pentium4" } diff --git a/mlir/test/Target/LLVMIR/tune-cpu.mlir b/mlir/test/Target/LLVMIR/tune-cpu.mlir deleted file mode 100644 index 06268022fb235..0000000000000 --- a/mlir/test/Target/LLVMIR/tune-cpu.mlir +++ /dev/null @@ -1,7 +0,0 @@ -// RUN: mlir-translate -mlir-to-llvmir %s | FileCheck %s - -// CHECK: define void @tune_cpu() #[[ATTRS:.*]] { -// CHECK: attributes #[[ATTRS]] = { "tune-cpu"="pentium4" } -llvm.func @tune_cpu() attributes {tune_cpu = "pentium4"} { - llvm.return -} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits