FLANG
FIRContext.h
1//===-- Optimizer/Support/FIRContext.h --------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// Coding style: https://mlir.llvm.org/getting_started/DeveloperGuide/
10//
11//===----------------------------------------------------------------------===//
15//===----------------------------------------------------------------------===//
16
17#ifndef FORTRAN_OPTIMIZER_SUPPORT_FIRCONTEXT_H
18#define FORTRAN_OPTIMIZER_SUPPORT_FIRCONTEXT_H
19
20#include "mlir/Dialect/LLVMIR/LLVMAttrs.h"
21#include "llvm/ADT/StringRef.h"
22#include "llvm/TargetParser/Triple.h"
23
24namespace mlir {
25class ModuleOp;
26class Operation;
27} // namespace mlir
28
29namespace fir {
30class KindMapping;
31struct NameUniquer;
32
35void setTargetTriple(mlir::ModuleOp mod, llvm::StringRef triple);
36
38llvm::Triple getTargetTriple(mlir::ModuleOp mod);
39
42void setKindMapping(mlir::ModuleOp mod, KindMapping &kindMap);
43
46KindMapping getKindMapping(mlir::ModuleOp mod);
47
52KindMapping getKindMapping(mlir::Operation *op);
53
56void setTargetCPU(mlir::ModuleOp mod, llvm::StringRef cpu);
57
59llvm::StringRef getTargetCPU(mlir::ModuleOp mod);
60
63void setAtomicIgnoreDenormalMode(mlir::ModuleOp mod, bool value);
66bool getAtomicIgnoreDenormalMode(mlir::ModuleOp mod);
69void setAtomicFineGrainedMemory(mlir::ModuleOp mod, bool value);
72bool getAtomicFineGrainedMemory(mlir::ModuleOp mod);
75void setAtomicRemoteMemory(mlir::ModuleOp mod, bool value);
78bool getAtomicRemoteMemory(mlir::ModuleOp mod);
79
82void setTuneCPU(mlir::ModuleOp mod, llvm::StringRef cpu);
83
85llvm::StringRef getTuneCPU(mlir::ModuleOp mod);
86
88void setTargetFeatures(mlir::ModuleOp mod, llvm::StringRef features);
89
91mlir::LLVM::TargetFeaturesAttr getTargetFeatures(mlir::ModuleOp mod);
92
94void setIdent(mlir::ModuleOp mod, llvm::StringRef ident);
95
97llvm::StringRef getIdent(mlir::ModuleOp mod);
98
100void setCommandline(mlir::ModuleOp mod, llvm::StringRef cmdLine);
101
103llvm::StringRef getCommandline(mlir::ModuleOp mod);
104
111std::string determineTargetTriple(llvm::StringRef triple);
112
113} // namespace fir
114
115#endif // FORTRAN_OPTIMIZER_SUPPORT_FIRCONTEXT_H
Definition KindMapping.h:48
Definition AbstractConverter.h:34
llvm::StringRef getTuneCPU(mlir::ModuleOp mod)
Get the tune CPU string from the Module or return a null reference.
Definition FIRContext.cpp:142
llvm::StringRef getIdent(mlir::ModuleOp mod)
Get the compiler identifier from the Module.
Definition FIRContext.cpp:177
KindMapping getKindMapping(mlir::ModuleOp mod)
Definition FIRContext.cpp:43
mlir::LLVM::TargetFeaturesAttr getTargetFeatures(mlir::ModuleOp mod)
Get the target features from the Module.
Definition FIRContext.cpp:160
void setIdent(mlir::ModuleOp mod, llvm::StringRef ident)
Set the compiler identifier for the module.
Definition FIRContext.cpp:168
llvm::StringRef getCommandline(mlir::ModuleOp mod)
Get the command line used in this invocation.
Definition FIRContext.cpp:193
void setKindMapping(mlir::ModuleOp mod, KindMapping &kindMap)
Definition FIRContext.cpp:36
void setAtomicRemoteMemory(mlir::ModuleOp mod, bool value)
Definition FIRContext.cpp:128
bool getAtomicIgnoreDenormalMode(mlir::ModuleOp mod)
Definition FIRContext.cpp:104
bool getAtomicRemoteMemory(mlir::ModuleOp mod)
Definition FIRContext.cpp:138
void setTargetCPU(mlir::ModuleOp mod, llvm::StringRef cpu)
Definition FIRContext.cpp:65
void setTuneCPU(mlir::ModuleOp mod, llvm::StringRef cpu)
Definition FIRContext.cpp:82
std::string determineTargetTriple(llvm::StringRef triple)
Definition FIRContext.cpp:200
bool getAtomicFineGrainedMemory(mlir::ModuleOp mod)
Definition FIRContext.cpp:121
void setCommandline(mlir::ModuleOp mod, llvm::StringRef cmdLine)
Set the command line used in this invocation.
Definition FIRContext.cpp:184
void setAtomicIgnoreDenormalMode(mlir::ModuleOp mod, bool value)
Definition FIRContext.cpp:94
void setTargetTriple(mlir::ModuleOp mod, llvm::StringRef triple)
Definition FIRContext.cpp:20
llvm::StringRef getTargetCPU(mlir::ModuleOp mod)
Get the target CPU string from the Module or return a null reference.
Definition FIRContext.cpp:73
void setAtomicFineGrainedMemory(mlir::ModuleOp mod, bool value)
Definition FIRContext.cpp:111
llvm::Triple getTargetTriple(mlir::ModuleOp mod)
Get the Triple instance from the Module or return the default Triple.
Definition FIRContext.cpp:26
void setTargetFeatures(mlir::ModuleOp mod, llvm::StringRef features)
Set the target features for the module.
Definition FIRContext.cpp:151
Definition AbstractConverter.h:29
Definition InternalNames.h:45