Skip to content

Commit b07dae1

Browse files
authored
Revert "[flang] Add basic -mtune support (#95043)"
This reverts commit a790279.
1 parent aec735c commit b07dae1

File tree

26 files changed

+14
-160
lines changed

26 files changed

+14
-160
lines changed

clang/include/clang/Driver/Options.td

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5421,7 +5421,6 @@ def module_file_info : Flag<["-"], "module-file-info">, Flags<[]>,
54215421
HelpText<"Provide information about a particular module file">;
54225422
def mthumb : Flag<["-"], "mthumb">, Group<m_Group>;
54235423
def mtune_EQ : Joined<["-"], "mtune=">, Group<m_Group>,
5424-
Visibility<[ClangOption, FlangOption]>,
54255424
HelpText<"Only supported on AArch64, PowerPC, RISC-V, SPARC, SystemZ, and X86">;
54265425
def multi__module : Flag<["-"], "multi_module">;
54275426
def multiply__defined__unused : Separate<["-"], "multiply_defined_unused">;
@@ -6738,6 +6737,9 @@ def emit_hlfir : Flag<["-"], "emit-hlfir">, Group<Action_Group>,
67386737

67396738
let Visibility = [CC1Option, CC1AsOption] in {
67406739

6740+
def tune_cpu : Separate<["-"], "tune-cpu">,
6741+
HelpText<"Tune for a specific cpu type">,
6742+
MarshallingInfoString<TargetOpts<"TuneCPU">>;
67416743
def target_abi : Separate<["-"], "target-abi">,
67426744
HelpText<"Target a particular ABI type">,
67436745
MarshallingInfoString<TargetOpts<"ABI">>;
@@ -6764,9 +6766,6 @@ def darwin_target_variant_triple : Separate<["-"], "darwin-target-variant-triple
67646766

67656767
let Visibility = [CC1Option, CC1AsOption, FC1Option] in {
67666768

6767-
def tune_cpu : Separate<["-"], "tune-cpu">,
6768-
HelpText<"Tune for a specific cpu type">,
6769-
MarshallingInfoString<TargetOpts<"TuneCPU">>;
67706769
def target_cpu : Separate<["-"], "target-cpu">,
67716770
HelpText<"Target a specific cpu type">,
67726771
MarshallingInfoString<TargetOpts<"CPU">>;

clang/lib/Driver/ToolChains/Flang.cpp

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
#include "llvm/Frontend/Debug/Options.h"
1616
#include "llvm/Support/FileSystem.h"
1717
#include "llvm/Support/Path.h"
18-
#include "llvm/TargetParser/Host.h"
1918
#include "llvm/TargetParser/RISCVISAInfo.h"
2019
#include "llvm/TargetParser/RISCVTargetParser.h"
2120

@@ -412,13 +411,6 @@ void Flang::addTargetOptions(const ArgList &Args,
412411
}
413412

414413
// TODO: Add target specific flags, ABI, mtune option etc.
415-
if (const Arg *A = Args.getLastArg(options::OPT_mtune_EQ)) {
416-
CmdArgs.push_back("-tune-cpu");
417-
if (A->getValue() == StringRef{"native"})
418-
CmdArgs.push_back(Args.MakeArgString(llvm::sys::getHostCPUName()));
419-
else
420-
CmdArgs.push_back(A->getValue());
421-
}
422414
}
423415

424416
void Flang::addOffloadOptions(Compilation &C, const InputInfoList &Inputs,
@@ -810,7 +802,7 @@ void Flang::ConstructJob(Compilation &C, const JobAction &JA,
810802
case CodeGenOptions::FramePointerKind::None:
811803
FPKeepKindStr = "-mframe-pointer=none";
812804
break;
813-
case CodeGenOptions::FramePointerKind::Reserved:
805+
case CodeGenOptions::FramePointerKind::Reserved:
814806
FPKeepKindStr = "-mframe-pointer=reserved";
815807
break;
816808
case CodeGenOptions::FramePointerKind::NonLeaf:

flang/include/flang/Frontend/TargetOptions.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,6 @@ class TargetOptions {
3232
/// If given, the name of the target CPU to generate code for.
3333
std::string cpu;
3434

35-
/// If given, the name of the target CPU to tune code for.
36-
std::string cpuToTuneFor;
37-
3835
/// The list of target specific features to enable or disable, as written on
3936
/// the command line.
4037
std::vector<std::string> featuresAsWritten;

flang/include/flang/Lower/Bridge.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,11 @@ class LoweringBridge {
6565
const Fortran::lower::LoweringOptions &loweringOptions,
6666
const std::vector<Fortran::lower::EnvironmentDefault> &envDefaults,
6767
const Fortran::common::LanguageFeatureControl &languageFeatures,
68-
const llvm::TargetMachine &targetMachine, llvm::StringRef tuneCPU) {
68+
const llvm::TargetMachine &targetMachine) {
6969
return LoweringBridge(ctx, semanticsContext, defaultKinds, intrinsics,
7070
targetCharacteristics, allCooked, triple, kindMap,
7171
loweringOptions, envDefaults, languageFeatures,
72-
targetMachine, tuneCPU);
72+
targetMachine);
7373
}
7474

7575
//===--------------------------------------------------------------------===//
@@ -148,7 +148,7 @@ class LoweringBridge {
148148
const Fortran::lower::LoweringOptions &loweringOptions,
149149
const std::vector<Fortran::lower::EnvironmentDefault> &envDefaults,
150150
const Fortran::common::LanguageFeatureControl &languageFeatures,
151-
const llvm::TargetMachine &targetMachine, const llvm::StringRef tuneCPU);
151+
const llvm::TargetMachine &targetMachine);
152152
LoweringBridge() = delete;
153153
LoweringBridge(const LoweringBridge &) = delete;
154154

flang/include/flang/Optimizer/CodeGen/CGPasses.td

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ def FIRToLLVMLowering : Pass<"fir-to-llvm-ir", "mlir::ModuleOp"> {
3131
"Override module's data layout.">,
3232
Option<"forcedTargetCPU", "target-cpu", "std::string", /*default=*/"",
3333
"Override module's target CPU.">,
34-
Option<"forcedTuneCPU", "tune-cpu", "std::string", /*default=*/"",
35-
"Override module's tune CPU.">,
3634
Option<"forcedTargetFeatures", "target-features", "std::string",
3735
/*default=*/"", "Override module's target features.">,
3836
Option<"applyTBAA", "apply-tbaa", "bool", /*default=*/"false",
@@ -70,8 +68,6 @@ def TargetRewritePass : Pass<"target-rewrite", "mlir::ModuleOp"> {
7068
"Override module's target triple.">,
7169
Option<"forcedTargetCPU", "target-cpu", "std::string", /*default=*/"",
7270
"Override module's target CPU.">,
73-
Option<"forcedTuneCPU", "tune-cpu", "std::string", /*default=*/"",
74-
"Override module's tune CPU.">,
7571
Option<"forcedTargetFeatures", "target-features", "std::string",
7672
/*default=*/"", "Override module's target features.">,
7773
Option<"noCharacterConversion", "no-character-conversion",

flang/include/flang/Optimizer/CodeGen/Target.h

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -76,29 +76,14 @@ class CodeGenSpecifics {
7676
llvm::StringRef targetCPU, mlir::LLVM::TargetFeaturesAttr targetFeatures,
7777
const mlir::DataLayout &dl);
7878

79-
static std::unique_ptr<CodeGenSpecifics>
80-
get(mlir::MLIRContext *ctx, llvm::Triple &&trp, KindMapping &&kindMap,
81-
llvm::StringRef targetCPU, mlir::LLVM::TargetFeaturesAttr targetFeatures,
82-
const mlir::DataLayout &dl, llvm::StringRef tuneCPU);
83-
8479
static TypeAndAttr getTypeAndAttr(mlir::Type t) { return TypeAndAttr{t, {}}; }
8580

8681
CodeGenSpecifics(mlir::MLIRContext *ctx, llvm::Triple &&trp,
8782
KindMapping &&kindMap, llvm::StringRef targetCPU,
8883
mlir::LLVM::TargetFeaturesAttr targetFeatures,
8984
const mlir::DataLayout &dl)
9085
: context{*ctx}, triple{std::move(trp)}, kindMap{std::move(kindMap)},
91-
targetCPU{targetCPU}, targetFeatures{targetFeatures}, dataLayout{&dl},
92-
tuneCPU{""} {}
93-
94-
CodeGenSpecifics(mlir::MLIRContext *ctx, llvm::Triple &&trp,
95-
KindMapping &&kindMap, llvm::StringRef targetCPU,
96-
mlir::LLVM::TargetFeaturesAttr targetFeatures,
97-
const mlir::DataLayout &dl, llvm::StringRef tuneCPU)
98-
: context{*ctx}, triple{std::move(trp)}, kindMap{std::move(kindMap)},
99-
targetCPU{targetCPU}, targetFeatures{targetFeatures}, dataLayout{&dl},
100-
tuneCPU{tuneCPU} {}
101-
86+
targetCPU{targetCPU}, targetFeatures{targetFeatures}, dataLayout{&dl} {}
10287
CodeGenSpecifics() = delete;
10388
virtual ~CodeGenSpecifics() {}
10489

@@ -180,7 +165,6 @@ class CodeGenSpecifics {
180165
virtual unsigned char getCIntTypeWidth() const = 0;
181166

182167
llvm::StringRef getTargetCPU() const { return targetCPU; }
183-
llvm::StringRef getTuneCPU() const { return tuneCPU; }
184168

185169
mlir::LLVM::TargetFeaturesAttr getTargetFeatures() const {
186170
return targetFeatures;
@@ -198,7 +182,6 @@ class CodeGenSpecifics {
198182
llvm::StringRef targetCPU;
199183
mlir::LLVM::TargetFeaturesAttr targetFeatures;
200184
const mlir::DataLayout *dataLayout = nullptr;
201-
llvm::StringRef tuneCPU;
202185
};
203186

204187
} // namespace fir

flang/include/flang/Optimizer/Dialect/Support/FIRContext.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,6 @@ void setTargetCPU(mlir::ModuleOp mod, llvm::StringRef cpu);
5858
/// Get the target CPU string from the Module or return a null reference.
5959
llvm::StringRef getTargetCPU(mlir::ModuleOp mod);
6060

61-
/// Set the tune CPU for the module. `cpu` must not be deallocated while
62-
/// module `mod` is still live.
63-
void setTuneCPU(mlir::ModuleOp mod, llvm::StringRef cpu);
64-
65-
/// Get the tune CPU string from the Module or return a null reference.
66-
llvm::StringRef getTuneCPU(mlir::ModuleOp mod);
67-
6861
/// Set the target features for the module.
6962
void setTargetFeatures(mlir::ModuleOp mod, llvm::StringRef features);
7063

flang/include/flang/Optimizer/Transforms/Passes.td

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -411,9 +411,6 @@ def FunctionAttr : Pass<"function-attr", "mlir::func::FuncOp"> {
411411
Option<"unsafeFPMath", "unsafe-fp-math",
412412
"bool", /*default=*/"false",
413413
"Set the unsafe-fp-math attribute on functions in the module.">,
414-
Option<"tuneCPU", "tune-cpu",
415-
"llvm::StringRef", /*default=*/"llvm::StringRef{}",
416-
"Set the tune-cpu attribute on functions in the module.">,
417414
];
418415
}
419416

flang/lib/Frontend/CompilerInvocation.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -407,10 +407,6 @@ static void parseTargetArgs(TargetOptions &opts, llvm::opt::ArgList &args) {
407407
args.getLastArg(clang::driver::options::OPT_target_cpu))
408408
opts.cpu = a->getValue();
409409

410-
if (const llvm::opt::Arg *a =
411-
args.getLastArg(clang::driver::options::OPT_tune_cpu))
412-
opts.cpuToTuneFor = a->getValue();
413-
414410
for (const llvm::opt::Arg *currentArg :
415411
args.filtered(clang::driver::options::OPT_target_feature))
416412
opts.featuresAsWritten.emplace_back(currentArg->getValue());

flang/lib/Frontend/FrontendActions.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -297,8 +297,7 @@ bool CodeGenAction::beginSourceFileAction() {
297297
ci.getParsing().allCooked(), ci.getInvocation().getTargetOpts().triple,
298298
kindMap, ci.getInvocation().getLoweringOpts(),
299299
ci.getInvocation().getFrontendOpts().envDefaults,
300-
ci.getInvocation().getFrontendOpts().features, targetMachine,
301-
ci.getInvocation().getTargetOpts().cpuToTuneFor);
300+
ci.getInvocation().getFrontendOpts().features, targetMachine);
302301

303302
// Fetch module from lb, so we can set
304303
mlirModule = std::make_unique<mlir::ModuleOp>(lb.getModule());

flang/lib/Lower/Bridge.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5929,7 +5929,7 @@ Fortran::lower::LoweringBridge::LoweringBridge(
59295929
const Fortran::lower::LoweringOptions &loweringOptions,
59305930
const std::vector<Fortran::lower::EnvironmentDefault> &envDefaults,
59315931
const Fortran::common::LanguageFeatureControl &languageFeatures,
5932-
const llvm::TargetMachine &targetMachine, const llvm::StringRef tuneCPU)
5932+
const llvm::TargetMachine &targetMachine)
59335933
: semanticsContext{semanticsContext}, defaultKinds{defaultKinds},
59345934
intrinsics{intrinsics}, targetCharacteristics{targetCharacteristics},
59355935
cooked{&cooked}, context{context}, kindMap{kindMap},
@@ -5986,7 +5986,6 @@ Fortran::lower::LoweringBridge::LoweringBridge(
59865986
fir::setTargetTriple(*module.get(), triple);
59875987
fir::setKindMapping(*module.get(), kindMap);
59885988
fir::setTargetCPU(*module.get(), targetMachine.getTargetCPU());
5989-
fir::setTuneCPU(*module.get(), tuneCPU);
59905989
fir::setTargetFeatures(*module.get(), targetMachine.getTargetFeatureString());
59915990
fir::support::setMLIRDataLayout(*module.get(),
59925991
targetMachine.createDataLayout());

flang/lib/Optimizer/CodeGen/CodeGen.cpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3618,9 +3618,6 @@ class FIRToLLVMLowering
36183618
if (!forcedTargetCPU.empty())
36193619
fir::setTargetCPU(mod, forcedTargetCPU);
36203620

3621-
if (!forcedTuneCPU.empty())
3622-
fir::setTuneCPU(mod, forcedTuneCPU);
3623-
36243621
if (!forcedTargetFeatures.empty())
36253622
fir::setTargetFeatures(mod, forcedTargetFeatures);
36263623

@@ -3717,8 +3714,7 @@ class FIRToLLVMLowering
37173714
signalPassFailure();
37183715
}
37193716

3720-
// Run pass to add comdats to functions that have weak linkage on relevant
3721-
// platforms
3717+
// Run pass to add comdats to functions that have weak linkage on relevant platforms
37223718
if (fir::getTargetTriple(mod).supportsCOMDAT()) {
37233719
mlir::OpPassManager comdatPM("builtin.module");
37243720
comdatPM.addPass(mlir::LLVM::createLLVMAddComdats());

flang/lib/Optimizer/CodeGen/Target.cpp

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1113,14 +1113,3 @@ fir::CodeGenSpecifics::get(mlir::MLIRContext *ctx, llvm::Triple &&trp,
11131113
}
11141114
TODO(mlir::UnknownLoc::get(ctx), "target not implemented");
11151115
}
1116-
1117-
std::unique_ptr<fir::CodeGenSpecifics> fir::CodeGenSpecifics::get(
1118-
mlir::MLIRContext *ctx, llvm::Triple &&trp, KindMapping &&kindMap,
1119-
llvm::StringRef targetCPU, mlir::LLVM::TargetFeaturesAttr targetFeatures,
1120-
const mlir::DataLayout &dl, llvm::StringRef tuneCPU) {
1121-
std::unique_ptr<fir::CodeGenSpecifics> CGS = fir::CodeGenSpecifics::get(
1122-
ctx, std::move(trp), std::move(kindMap), targetCPU, targetFeatures, dl);
1123-
1124-
CGS->tuneCPU = tuneCPU;
1125-
return CGS;
1126-
}

flang/lib/Optimizer/CodeGen/TargetRewrite.cpp

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,6 @@ class TargetRewrite : public fir::impl::TargetRewritePassBase<TargetRewrite> {
8989
if (!forcedTargetCPU.empty())
9090
fir::setTargetCPU(mod, forcedTargetCPU);
9191

92-
if (!forcedTuneCPU.empty())
93-
fir::setTuneCPU(mod, forcedTuneCPU);
94-
9592
if (!forcedTargetFeatures.empty())
9693
fir::setTargetFeatures(mod, forcedTargetFeatures);
9794

@@ -109,8 +106,7 @@ class TargetRewrite : public fir::impl::TargetRewritePassBase<TargetRewrite> {
109106

110107
auto specifics = fir::CodeGenSpecifics::get(
111108
mod.getContext(), fir::getTargetTriple(mod), fir::getKindMapping(mod),
112-
fir::getTargetCPU(mod), fir::getTargetFeatures(mod), *dl,
113-
fir::getTuneCPU(mod));
109+
fir::getTargetCPU(mod), fir::getTargetFeatures(mod), *dl);
114110

115111
setMembers(specifics.get(), &rewriter, &*dl);
116112

@@ -676,18 +672,12 @@ class TargetRewrite : public fir::impl::TargetRewritePassBase<TargetRewrite> {
676672
auto targetCPU = specifics->getTargetCPU();
677673
mlir::StringAttr targetCPUAttr =
678674
targetCPU.empty() ? nullptr : mlir::StringAttr::get(ctx, targetCPU);
679-
auto tuneCPU = specifics->getTuneCPU();
680-
mlir::StringAttr tuneCPUAttr =
681-
tuneCPU.empty() ? nullptr : mlir::StringAttr::get(ctx, tuneCPU);
682675
auto targetFeaturesAttr = specifics->getTargetFeatures();
683676

684677
for (auto fn : mod.getOps<mlir::func::FuncOp>()) {
685678
if (targetCPUAttr)
686679
fn->setAttr("target_cpu", targetCPUAttr);
687680

688-
if (tuneCPUAttr)
689-
fn->setAttr("tune_cpu", tuneCPUAttr);
690-
691681
if (targetFeaturesAttr)
692682
fn->setAttr("target_features", targetFeaturesAttr);
693683

flang/lib/Optimizer/CodeGen/TypeConverter.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,7 @@ LLVMTypeConverter::LLVMTypeConverter(mlir::ModuleOp module, bool applyTBAA,
3535
kindMapping(getKindMapping(module)),
3636
specifics(CodeGenSpecifics::get(
3737
module.getContext(), getTargetTriple(module), getKindMapping(module),
38-
getTargetCPU(module), getTargetFeatures(module), dl,
39-
getTuneCPU(module))),
38+
getTargetCPU(module), getTargetFeatures(module), dl)),
4039
tbaaBuilder(std::make_unique<TBAABuilder>(module->getContext(), applyTBAA,
4140
forceUnifiedTBAATree)),
4241
dataLayout{&dl} {

flang/lib/Optimizer/Dialect/Support/FIRContext.cpp

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -77,24 +77,6 @@ llvm::StringRef fir::getTargetCPU(mlir::ModuleOp mod) {
7777
return {};
7878
}
7979

80-
static constexpr const char *tuneCpuName = "fir.tune_cpu";
81-
82-
void fir::setTuneCPU(mlir::ModuleOp mod, llvm::StringRef cpu) {
83-
if (cpu.empty())
84-
return;
85-
86-
auto *ctx = mod.getContext();
87-
88-
mod->setAttr(tuneCpuName, mlir::StringAttr::get(ctx, cpu));
89-
}
90-
91-
llvm::StringRef fir::getTuneCPU(mlir::ModuleOp mod) {
92-
if (auto attr = mod->getAttrOfType<mlir::StringAttr>(tuneCpuName))
93-
return attr.getValue();
94-
95-
return {};
96-
}
97-
9880
static constexpr const char *targetFeaturesName = "fir.target_features";
9981

10082
void fir::setTargetFeatures(mlir::ModuleOp mod, llvm::StringRef features) {

flang/test/Driver/tune-cpu-fir.f90

Lines changed: 0 additions & 14 deletions
This file was deleted.

flang/test/Lower/tune-cpu-llvm.f90

Lines changed: 0 additions & 6 deletions
This file was deleted.

flang/tools/bbc/bbc.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -367,12 +367,11 @@ static mlir::LogicalResult convertFortranSourceToMLIR(
367367
loweringOptions.setLowerToHighLevelFIR(useHLFIR || emitHLFIR);
368368
loweringOptions.setNSWOnLoopVarInc(setNSW);
369369
std::vector<Fortran::lower::EnvironmentDefault> envDefaults = {};
370-
constexpr const char *tuneCPU = "";
371370
auto burnside = Fortran::lower::LoweringBridge::create(
372371
ctx, semanticsContext, defKinds, semanticsContext.intrinsics(),
373372
semanticsContext.targetCharacteristics(), parsing.allCooked(),
374373
targetTriple, kindMap, loweringOptions, envDefaults,
375-
semanticsContext.languageFeatures(), targetMachine, tuneCPU);
374+
semanticsContext.languageFeatures(), targetMachine);
376375
mlir::ModuleOp mlirModule = burnside.getModule();
377376
if (enableOpenMP) {
378377
if (enableOpenMPGPU && !enableOpenMPDevice) {

flang/tools/tco/tco.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,6 @@ static cl::opt<std::string> targetTriple("target",
5858
static cl::opt<std::string>
5959
targetCPU("target-cpu", cl::desc("specify a target CPU"), cl::init(""));
6060

61-
static cl::opt<std::string> tuneCPU("tune-cpu", cl::desc("specify a tune CPU"),
62-
cl::init(""));
63-
6461
static cl::opt<std::string>
6562
targetFeatures("target-features", cl::desc("specify the target features"),
6663
cl::init(""));
@@ -116,7 +113,6 @@ compileFIR(const mlir::PassPipelineCLParser &passPipeline) {
116113
fir::setTargetTriple(*owningRef, targetTriple);
117114
fir::setKindMapping(*owningRef, kindMap);
118115
fir::setTargetCPU(*owningRef, targetCPU);
119-
fir::setTuneCPU(*owningRef, tuneCPU);
120116
fir::setTargetFeatures(*owningRef, targetFeatures);
121117
// tco is a testing tool, so it will happily use the target independent
122118
// data layout if none is on the module.

0 commit comments

Comments
 (0)