Skip to content

Commit 978bb86

Browse files
kiranchandramohanmahesh-attarde
authored andcommitted
Revert "[flang][flang-driver][mlir][OpenMP] atomic control support" (llvm#150504)
Reverts llvm#143441 Reverting due to CI failure https://lab.llvm.org/buildbot/#/builders/53/builds/18055.
1 parent e51ac74 commit 978bb86

File tree

11 files changed

+16
-174
lines changed

11 files changed

+16
-174
lines changed

clang/include/clang/Driver/Options.td

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2320,21 +2320,21 @@ def fsymbol_partition_EQ : Joined<["-"], "fsymbol-partition=">, Group<f_Group>,
23202320

23212321
defm atomic_remote_memory : BoolFOption<"atomic-remote-memory",
23222322
LangOpts<"AtomicRemoteMemory">, DefaultFalse,
2323-
PosFlag<SetTrue, [], [ClangOption, CC1Option, FlangOption, FC1Option], "May have">,
2324-
NegFlag<SetFalse, [], [ClangOption, FlangOption], "Assume no">,
2325-
BothFlags<[], [ClangOption, FlangOption], " atomic operations on remote memory">>;
2323+
PosFlag<SetTrue, [], [ClangOption, CC1Option], "May have">,
2324+
NegFlag<SetFalse, [], [ClangOption], "Assume no">,
2325+
BothFlags<[], [ClangOption], " atomic operations on remote memory">>;
23262326

23272327
defm atomic_fine_grained_memory : BoolFOption<"atomic-fine-grained-memory",
23282328
LangOpts<"AtomicFineGrainedMemory">, DefaultFalse,
2329-
PosFlag<SetTrue, [], [ClangOption, CC1Option, FlangOption, FC1Option], "May have">,
2330-
NegFlag<SetFalse, [], [ClangOption, FlangOption], "Assume no">,
2331-
BothFlags<[], [ClangOption, FlangOption], " atomic operations on fine-grained memory">>;
2329+
PosFlag<SetTrue, [], [ClangOption, CC1Option], "May have">,
2330+
NegFlag<SetFalse, [], [ClangOption], "Assume no">,
2331+
BothFlags<[], [ClangOption], " atomic operations on fine-grained memory">>;
23322332

23332333
defm atomic_ignore_denormal_mode : BoolFOption<"atomic-ignore-denormal-mode",
23342334
LangOpts<"AtomicIgnoreDenormalMode">, DefaultFalse,
2335-
PosFlag<SetTrue, [], [ClangOption, CC1Option, FlangOption, FC1Option], "Allow">,
2336-
NegFlag<SetFalse, [], [ClangOption, FlangOption], "Disallow">,
2337-
BothFlags<[], [ClangOption, FlangOption], " atomic operations to ignore denormal mode">>;
2335+
PosFlag<SetTrue, [], [ClangOption, CC1Option], "Allow">,
2336+
NegFlag<SetFalse, [], [ClangOption], "Disallow">,
2337+
BothFlags<[], [ClangOption], " atomic operations to ignore denormal mode">>;
23382338

23392339
defm memory_profile : OptInCC1FFlag<"memory-profile", "Enable", "Disable", " heap memory profiling">;
23402340
def fmemory_profile_EQ : Joined<["-"], "fmemory-profile=">,
@@ -5360,9 +5360,9 @@ defm amdgpu_precise_memory_op
53605360
" precise memory mode (AMDGPU only)">;
53615361

53625362
def munsafe_fp_atomics : Flag<["-"], "munsafe-fp-atomics">,
5363-
Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>, Alias<fatomic_ignore_denormal_mode>;
5363+
Visibility<[ClangOption, CC1Option]>, Alias<fatomic_ignore_denormal_mode>;
53645364
def mno_unsafe_fp_atomics : Flag<["-"], "mno-unsafe-fp-atomics">,
5365-
Visibility<[ClangOption, FlangOption]>, Alias<fno_atomic_ignore_denormal_mode>;
5365+
Visibility<[ClangOption]>, Alias<fno_atomic_ignore_denormal_mode>;
53665366

53675367
def faltivec : Flag<["-"], "faltivec">, Group<f_Group>;
53685368
def fno_altivec : Flag<["-"], "fno-altivec">, Group<f_Group>;

flang/include/flang/Frontend/TargetOptions.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,6 @@ class TargetOptions {
5353

5454
/// Print verbose assembly
5555
bool asmVerbose = false;
56-
57-
/// Atomic control options
58-
bool atomicIgnoreDenormalMode = false;
59-
bool atomicRemoteMemory = false;
60-
bool atomicFineGrainedMemory = false;
6156
};
6257

6358
} // end namespace Fortran::frontend

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

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -58,25 +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-
/// Sets whether Denormal Mode can be ignored or not for lowering of floating
62-
/// point atomic operations.
63-
void setAtomicIgnoreDenormalMode(mlir::ModuleOp mod, bool value);
64-
/// Gets whether Denormal Mode can be ignored or not for lowering of floating
65-
/// point atomic operations.
66-
bool getAtomicIgnoreDenormalMode(mlir::ModuleOp mod);
67-
/// Sets whether fine grained memory can be used or not for lowering of atomic
68-
/// operations.
69-
void setAtomicFineGrainedMemory(mlir::ModuleOp mod, bool value);
70-
/// Gets whether fine grained memory can be used or not for lowering of atomic
71-
/// operations.
72-
bool getAtomicFineGrainedMemory(mlir::ModuleOp mod);
73-
/// Sets whether remote memory can be used or not for lowering of atomic
74-
/// operations.
75-
void setAtomicRemoteMemory(mlir::ModuleOp mod, bool value);
76-
/// Gets whether remote memory can be used or not for lowering of atomic
77-
/// operations.
78-
bool getAtomicRemoteMemory(mlir::ModuleOp mod);
79-
8061
/// Set the tune CPU for the module. `cpu` must not be deallocated while
8162
/// module `mod` is still live.
8263
void setTuneCPU(mlir::ModuleOp mod, llvm::StringRef cpu);

flang/lib/Frontend/CompilerInvocation.cpp

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -512,16 +512,6 @@ static void parseTargetArgs(TargetOptions &opts, llvm::opt::ArgList &args) {
512512
args.getLastArg(clang::driver::options::OPT_triple))
513513
opts.triple = a->getValue();
514514

515-
opts.atomicIgnoreDenormalMode = args.hasFlag(
516-
clang::driver::options::OPT_fatomic_ignore_denormal_mode,
517-
clang::driver::options::OPT_fno_atomic_ignore_denormal_mode, false);
518-
opts.atomicFineGrainedMemory = args.hasFlag(
519-
clang::driver::options::OPT_fatomic_fine_grained_memory,
520-
clang::driver::options::OPT_fno_atomic_fine_grained_memory, false);
521-
opts.atomicRemoteMemory =
522-
args.hasFlag(clang::driver::options::OPT_fatomic_remote_memory,
523-
clang::driver::options::OPT_fno_atomic_remote_memory, false);
524-
525515
if (const llvm::opt::Arg *a =
526516
args.getLastArg(clang::driver::options::OPT_target_cpu))
527517
opts.cpu = a->getValue();

flang/lib/Lower/Bridge.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6733,10 +6733,6 @@ Fortran::lower::LoweringBridge::LoweringBridge(
67336733
fir::setKindMapping(*module, kindMap);
67346734
fir::setTargetCPU(*module, targetMachine.getTargetCPU());
67356735
fir::setTuneCPU(*module, targetOpts.cpuToTuneFor);
6736-
fir::setAtomicIgnoreDenormalMode(*module,
6737-
targetOpts.atomicIgnoreDenormalMode);
6738-
fir::setAtomicFineGrainedMemory(*module, targetOpts.atomicFineGrainedMemory);
6739-
fir::setAtomicRemoteMemory(*module, targetOpts.atomicRemoteMemory);
67406736
fir::setTargetFeatures(*module, targetMachine.getTargetFeatureString());
67416737
fir::support::setMLIRDataLayout(*module, targetMachine.createDataLayout());
67426738
fir::setIdent(*module, Fortran::common::getFlangFullVersion());

flang/lib/Lower/OpenMP/Atomic.cpp

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -635,16 +635,9 @@ genAtomicUpdate(lower::AbstractConverter &converter,
635635
}
636636
}
637637

638-
mlir::ModuleOp module = builder.getModule();
639-
mlir::omp::AtomicControlAttr atomicControlAttr =
640-
mlir::omp::AtomicControlAttr::get(
641-
builder.getContext(), fir::getAtomicIgnoreDenormalMode(module),
642-
fir::getAtomicFineGrainedMemory(module),
643-
fir::getAtomicRemoteMemory(module));
644638
builder.restoreInsertionPoint(atomicAt);
645639
auto updateOp = mlir::omp::AtomicUpdateOp::create(
646-
builder, loc, atomAddr, atomicControlAttr, hint,
647-
makeMemOrderAttr(converter, memOrder));
640+
builder, loc, atomAddr, hint, makeMemOrderAttr(converter, memOrder));
648641

649642
mlir::Region &region = updateOp->getRegion(0);
650643
mlir::Block *block = builder.createBlock(&region, {}, {atomType}, {loc});

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

Lines changed: 0 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -88,57 +88,6 @@ void fir::setTuneCPU(mlir::ModuleOp mod, llvm::StringRef cpu) {
8888
mod->setAttr(tuneCpuName, mlir::StringAttr::get(ctx, cpu));
8989
}
9090

91-
static constexpr const char *atomicIgnoreDenormalModeName =
92-
"fir.atomic_ignore_denormal_mode";
93-
94-
void fir::setAtomicIgnoreDenormalMode(mlir::ModuleOp mod, bool value) {
95-
if (value) {
96-
auto *ctx = mod.getContext();
97-
mod->setAttr(atomicIgnoreDenormalModeName, mlir::UnitAttr::get(ctx));
98-
} else {
99-
if (mod->hasAttr(atomicIgnoreDenormalModeName))
100-
mod->removeAttr(atomicIgnoreDenormalModeName);
101-
}
102-
}
103-
104-
bool fir::getAtomicIgnoreDenormalMode(mlir::ModuleOp mod) {
105-
return mod->hasAttr(atomicIgnoreDenormalModeName);
106-
}
107-
108-
static constexpr const char *atomicFineGrainedMemoryName =
109-
"fir.atomic_fine_grained_memory";
110-
111-
void fir::setAtomicFineGrainedMemory(mlir::ModuleOp mod, bool value) {
112-
if (value) {
113-
auto *ctx = mod.getContext();
114-
mod->setAttr(atomicFineGrainedMemoryName, mlir::UnitAttr::get(ctx));
115-
} else {
116-
if (mod->hasAttr(atomicFineGrainedMemoryName))
117-
mod->removeAttr(atomicFineGrainedMemoryName);
118-
}
119-
}
120-
121-
bool fir::getAtomicFineGrainedMemory(mlir::ModuleOp mod) {
122-
return mod->hasAttr(atomicFineGrainedMemoryName);
123-
}
124-
125-
static constexpr const char *atomicRemoteMemoryName =
126-
"fir.atomic_remote_memory";
127-
128-
void fir::setAtomicRemoteMemory(mlir::ModuleOp mod, bool value) {
129-
if (value) {
130-
auto *ctx = mod.getContext();
131-
mod->setAttr(atomicRemoteMemoryName, mlir::UnitAttr::get(ctx));
132-
} else {
133-
if (mod->hasAttr(atomicRemoteMemoryName))
134-
mod->removeAttr(atomicRemoteMemoryName);
135-
}
136-
}
137-
138-
bool fir::getAtomicRemoteMemory(mlir::ModuleOp mod) {
139-
return mod->hasAttr(atomicRemoteMemoryName);
140-
}
141-
14291
llvm::StringRef fir::getTuneCPU(mlir::ModuleOp mod) {
14392
if (auto attr = mod->getAttrOfType<mlir::StringAttr>(tuneCpuName))
14493
return attr.getValue();

flang/test/Lower/OpenMP/atomic-control-options.f90

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

mlir/include/mlir/Dialect/OpenMP/OpenMPAttrDefs.td

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,6 @@ class OpenMP_Attr<string name, string attrMnemonic, list<Trait> traits = [],
2222
let mnemonic = attrMnemonic;
2323
}
2424

25-
//===----------------------------------------------------------------------===//
26-
// AtomicControlAttr
27-
//===----------------------------------------------------------------------===//
28-
29-
// Atomic control attributes hold information about architectural
30-
// characteristics which are required for lowering atomic operations.
31-
def AtomicControlAttr : OpenMP_Attr<"AtomicControl", "atomic_control"> {
32-
let parameters =
33-
(ins DefaultValuedParameter<"bool", "false">:$ignore_denormal_mode,
34-
DefaultValuedParameter<"bool", "false">:$fine_grained_memory,
35-
DefaultValuedParameter<"bool", "false">:$remote_memory);
36-
37-
let assemblyFormat = "`<` struct(params) `>`";
38-
}
39-
4025
//===----------------------------------------------------------------------===//
4126
// DeclareTargetAttr
4227
//===----------------------------------------------------------------------===//

mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1750,11 +1750,9 @@ def AtomicUpdateOp : OpenMP_Op<"atomic.update", traits = [
17501750
operations.
17511751
}] # clausesDescription;
17521752

1753-
let arguments = !con(
1754-
(ins Arg<OpenMP_PointerLikeType,
1755-
"Address of variable to be updated", [MemRead, MemWrite]>:$x,
1756-
OptionalAttr<AtomicControlAttr>:$atomic_control),
1757-
clausesArgs);
1753+
let arguments = !con((ins Arg<OpenMP_PointerLikeType,
1754+
"Address of variable to be updated",
1755+
[MemRead, MemWrite]>:$x), clausesArgs);
17581756

17591757
// Override region definition.
17601758
let regions = (region SizedRegion<1>:$region);

0 commit comments

Comments
 (0)