9#ifndef FORTRAN_OPTIMIZER_BUILDER_RUNTIME_CHARACTER_H
10#define FORTRAN_OPTIMIZER_BUILDER_RUNTIME_CHARACTER_H
12#include "mlir/Dialect/Arith/IR/Arith.h"
13#include "mlir/Dialect/Func/IR/FuncOps.h"
20namespace fir::runtime {
30void genAdjustL(fir::FirOpBuilder &builder, mlir::Location loc,
31 mlir::Value resultBox, mlir::Value stringBox);
41void genAdjustR(fir::FirOpBuilder &builder, mlir::Location loc,
42 mlir::Value resultBox, mlir::Value stringBox);
46mlir::Value genCharCompare(fir::FirOpBuilder &builder, mlir::Location loc,
47 mlir::arith::CmpIPredicate cmp,
48 const fir::ExtendedValue &lhs,
49 const fir::ExtendedValue &rhs);
55mlir::Value genCharCompare(fir::FirOpBuilder &builder, mlir::Location loc,
56 mlir::arith::CmpIPredicate cmp, mlir::Value lhsBuff,
57 mlir::Value lhsLen, mlir::Value rhsBuff,
70void genFCString(fir::FirOpBuilder &builder, mlir::Location loc,
71 mlir::Value resultBox, mlir::Value stringBox,
77mlir::Value genIndex(fir::FirOpBuilder &builder, mlir::Location loc,
int kind,
78 mlir::Value stringBase, mlir::Value stringLen,
79 mlir::Value substringBase, mlir::Value substringLen,
86mlir::Value genIndex(fir::FirOpBuilder &builder, mlir::Location loc,
87 const fir::ExtendedValue &str,
88 const fir::ExtendedValue &substr, mlir::Value back);
93void genIndexDescriptor(fir::FirOpBuilder &builder, mlir::Location loc,
94 mlir::Value resultBox, mlir::Value stringBox,
95 mlir::Value substringBox, mlir::Value backOpt,
103void genRepeat(fir::FirOpBuilder &builder, mlir::Location loc,
104 mlir::Value resultBox, mlir::Value stringBox,
105 mlir::Value ncopies);
111void genTrim(fir::FirOpBuilder &builder, mlir::Location loc,
112 mlir::Value resultBox, mlir::Value stringBox);
117void genScanDescriptor(fir::FirOpBuilder &builder, mlir::Location loc,
118 mlir::Value resultBox, mlir::Value stringBox,
119 mlir::Value setBox, mlir::Value backBox,
125mlir::Value genScan(fir::FirOpBuilder &builder, mlir::Location loc,
int kind,
126 mlir::Value stringBase, mlir::Value stringLen,
127 mlir::Value setBase, mlir::Value setLen, mlir::Value back);
132void genVerifyDescriptor(fir::FirOpBuilder &builder, mlir::Location loc,
133 mlir::Value resultBox, mlir::Value stringBox,
134 mlir::Value setBox, mlir::Value backBox,
140mlir::Value genVerify(fir::FirOpBuilder &builder, mlir::Location loc,
int kind,
141 mlir::Value stringBase, mlir::Value stringLen,
142 mlir::Value setBase, mlir::Value setLen,
149void genTokenize(fir::FirOpBuilder &builder, mlir::Location loc,
150 mlir::Value tokensBox, mlir::Value separatorBox,
151 mlir::Value stringBox, mlir::Value setBox);
157void genTokenizePositions(fir::FirOpBuilder &builder, mlir::Location loc,
158 mlir::Value firstBox, mlir::Value lastBox,
159 mlir::Value stringBox, mlir::Value setBox);
Definition BoxValue.h:478
Definition FIRBuilder.h:56
Definition AbstractConverter.h:37