|
virtual mlir::Value | getSymbolAddress (SymbolRef sym)=0 |
| Get the mlir instance of a symbol.
|
|
virtual fir::ExtendedValue | symBoxToExtendedValue (const Fortran::lower::SymbolBox &symBox)=0 |
|
virtual fir::ExtendedValue | getSymbolExtendedValue (const Fortran::semantics::Symbol &sym, Fortran::lower::SymMap *symMap=nullptr)=0 |
|
virtual mlir::Value | impliedDoBinding (llvm::StringRef name)=0 |
| Get the binding of an implied do variable by name.
|
|
virtual void | copySymbolBinding (SymbolRef src, SymbolRef target)=0 |
| Copy the binding of src to target symbol.
|
|
virtual void | bindSymbol (SymbolRef sym, const fir::ExtendedValue &exval)=0 |
|
virtual void | overrideExprValues (const ExprToValueMap *)=0 |
|
void | resetExprOverrides () |
|
virtual const ExprToValueMap * | getExprOverrides ()=0 |
|
virtual bool | lookupLabelSet (SymbolRef sym, pft::LabelSet &labelSet)=0 |
| Get the label set associated with a symbol.
|
|
virtual pft::Evaluation * | lookupLabel (pft::Label label)=0 |
| Get the code defined by a label.
|
|
virtual bool | createHostAssociateVarClone (const Fortran::semantics::Symbol &sym, bool skipDefaultInit)=0 |
|
virtual void | createHostAssociateVarCloneDealloc (const Fortran::semantics::Symbol &sym)=0 |
|
virtual void | copyHostAssociateVar (const Fortran::semantics::Symbol &sym, mlir::OpBuilder::InsertPoint *copyAssignIP=nullptr, bool hostIsSource=true)=0 |
|
virtual void | copyVar (mlir::Location loc, mlir::Value dst, mlir::Value src, fir::FortranVariableFlagsEnum attrs)=0 |
|
virtual bool | isPresentShallowLookup (const Fortran::semantics::Symbol &sym)=0 |
|
virtual void | collectSymbolSet (pft::Evaluation &eval, llvm::SetVector< const Fortran::semantics::Symbol * > &symbolSet, Fortran::semantics::Symbol::Flag flag, bool collectSymbols=true, bool collectHostAssociatedSymbols=false)=0 |
|
virtual llvm::StringRef | getUniqueLitName (mlir::Location loc, std::unique_ptr< Fortran::lower::SomeExpr > expression, mlir::Type eleTy)=0 |
|
virtual fir::ExtendedValue | genExprAddr (const SomeExpr &expr, StatementContext &context, mlir::Location *locPtr=nullptr)=0 |
|
fir::ExtendedValue | genExprAddr (mlir::Location loc, const SomeExpr *expr, StatementContext &stmtCtx) |
| Generate the address of the location holding the expression, expr .
|
|
fir::ExtendedValue | genExprAddr (mlir::Location loc, const SomeExpr &expr, StatementContext &stmtCtx) |
|
virtual fir::ExtendedValue | genExprValue (const SomeExpr &expr, StatementContext &context, mlir::Location *locPtr=nullptr)=0 |
| Generate the computations of the expression to produce a value.
|
|
fir::ExtendedValue | genExprValue (mlir::Location loc, const SomeExpr *expr, StatementContext &stmtCtx) |
| Generate the computations of the expression, expr , to produce a value.
|
|
fir::ExtendedValue | genExprValue (mlir::Location loc, const SomeExpr &expr, StatementContext &stmtCtx) |
|
virtual fir::ExtendedValue | genExprBox (mlir::Location loc, const SomeExpr &expr, StatementContext &stmtCtx)=0 |
|
virtual fir::MutableBoxValue | genExprMutableBox (mlir::Location loc, const SomeExpr &expr)=0 |
|
virtual Fortran::evaluate::FoldingContext & | getFoldingContext ()=0 |
|
virtual mlir::Value | hostAssocTupleValue ()=0 |
|
virtual void | bindHostAssocTuple (mlir::Value val)=0 |
|
virtual mlir::Value | dummyArgsScopeValue () const =0 |
|
virtual bool | isRegisteredDummySymbol (Fortran::semantics::SymbolRef symRef) const =0 |
|
virtual const Fortran::lower::pft::FunctionLikeUnit * | getCurrentFunctionUnit () const =0 |
| Returns the FunctionLikeUnit being lowered, if any.
|
|
virtual mlir::Type | genType (const SomeExpr &)=0 |
| Generate the type of an Expr.
|
|
virtual mlir::Type | genType (SymbolRef)=0 |
| Generate the type of a Symbol.
|
|
virtual mlir::Type | genType (Fortran::common::TypeCategory tc)=0 |
| Generate the type from a category.
|
|
virtual mlir::Type | genType (Fortran::common::TypeCategory tc, int kind, llvm::ArrayRef< std::int64_t > lenParameters=std::nullopt)=0 |
| Generate the type from a category and kind and length parameters.
|
|
virtual mlir::Type | genType (const Fortran::semantics::DerivedTypeSpec &)=0 |
| Generate the type from a DerivedTypeSpec.
|
|
virtual mlir::Type | genType (const pft::Variable &)=0 |
| Generate the type from a Variable.
|
|
virtual void | registerTypeInfo (mlir::Location loc, SymbolRef typeInfoSym, const Fortran::semantics::DerivedTypeSpec &typeSpec, fir::RecordType type)=0 |
|
virtual TypeConstructionStack & | getTypeConstructionStack ()=0 |
|
virtual mlir::Location | getCurrentLocation ()=0 |
| Get the converter's current location.
|
|
virtual mlir::Location | genUnknownLocation ()=0 |
| Generate a dummy location.
|
|
virtual mlir::Location | genLocation (const Fortran::parser::CharBlock &)=0 |
| Generate the location as converted from a CharBlock.
|
|
virtual const Fortran::semantics::Scope & | getCurrentScope ()=0 |
| Get the converter's current scope.
|
|
virtual fir::FirOpBuilder & | getFirOpBuilder ()=0 |
| Get the OpBuilder.
|
|
virtual mlir::ModuleOp | getModuleOp ()=0 |
| Get the ModuleOp.
|
|
virtual mlir::MLIRContext & | getMLIRContext ()=0 |
| Get the MLIRContext.
|
|
virtual std::string | mangleName (const Fortran::semantics::Symbol &)=0 |
| Unique a symbol (add a containing scope specific prefix)
|
|
virtual std::string | mangleName (const Fortran::semantics::DerivedTypeSpec &)=0 |
| Unique a derived type (add a containing scope specific prefix)
|
|
virtual std::string | mangleName (std::string &)=0 |
| Unique a compiler generated name (add a containing scope specific prefix)
|
|
virtual std::string | getRecordTypeFieldName (const Fortran::semantics::Symbol &component)=0 |
|
virtual const fir::KindMapping & | getKindMap ()=0 |
| Get the KindMap.
|
|
virtual Fortran::lower::StatementContext & | getFctCtx ()=0 |
|
| AbstractConverter (const Fortran::lower::LoweringOptions &loweringOptions) |
|
virtual void | genEval (pft::Evaluation &eval, bool unstructuredContext=true)=0 |
| Generate IR for Evaluation eval .
|
|
const Fortran::lower::LoweringOptions & | getLoweringOptions () const |
| Return options controlling lowering behavior.
|
|
virtual Fortran::lower::SymbolBox | lookupOneLevelUpSymbol (const Fortran::semantics::Symbol &sym)=0 |
|
virtual mlir::SymbolTable * | getMLIRSymbolTable ()=0 |
|
The abstract interface for converter implementations to lower Fortran front-end fragments such as expressions, types, etc. to the FIR dialect of MLIR.