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 setTuneCPU(mlir::ModuleOp mod, llvm::StringRef cpu);
64
66llvm::StringRef getTuneCPU(mlir::ModuleOp mod);
67
69void setTargetFeatures(mlir::ModuleOp mod, llvm::StringRef features);
70
72mlir::LLVM::TargetFeaturesAttr getTargetFeatures(mlir::ModuleOp mod);
73
75void setIdent(mlir::ModuleOp mod, llvm::StringRef ident);
76
78llvm::StringRef getIdent(mlir::ModuleOp mod);
79
81void setCommandline(mlir::ModuleOp mod, llvm::StringRef cmdLine);
82
84llvm::StringRef getCommandline(mlir::ModuleOp mod);
85
92std::string determineTargetTriple(llvm::StringRef triple);
93
94} // namespace fir
95
96#endif // FORTRAN_OPTIMIZER_SUPPORT_FIRCONTEXT_H
Definition: AbstractConverter.h:31
llvm::StringRef getTuneCPU(mlir::ModuleOp mod)
Get the tune CPU string from the Module or return a null reference.
Definition: FIRContext.cpp:91
llvm::StringRef getIdent(mlir::ModuleOp mod)
Get the compiler identifier from the Module.
Definition: FIRContext.cpp:126
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:109
void setIdent(mlir::ModuleOp mod, llvm::StringRef ident)
Set the compiler identifier for the module.
Definition: FIRContext.cpp:117
llvm::StringRef getCommandline(mlir::ModuleOp mod)
Get the command line used in this invocation.
Definition: FIRContext.cpp:142
void setKindMapping(mlir::ModuleOp mod, KindMapping &kindMap)
Definition: FIRContext.cpp:36
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:149
void setCommandline(mlir::ModuleOp mod, llvm::StringRef cmdLine)
Set the command line used in this invocation.
Definition: FIRContext.cpp:133
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
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:100
Definition: AbstractConverter.h:27