9#ifndef FORTRAN_OPTIMIZER_BUILDER_RUNTIME_CHARACTER_H
10#define FORTRAN_OPTIMIZER_BUILDER_RUNTIME_CHARACTER_H
12#include "mlir/Dialect/Arith/IR/Arith.h"
19namespace fir::runtime {
29void genAdjustL(fir::FirOpBuilder &builder, mlir::Location loc,
30 mlir::Value resultBox, mlir::Value stringBox);
40void genAdjustR(fir::FirOpBuilder &builder, mlir::Location loc,
41 mlir::Value resultBox, mlir::Value stringBox);
45mlir::Value genCharCompare(fir::FirOpBuilder &builder, mlir::Location loc,
46 mlir::arith::CmpIPredicate cmp,
47 const fir::ExtendedValue &lhs,
48 const fir::ExtendedValue &rhs);
54mlir::Value genCharCompare(fir::FirOpBuilder &builder, mlir::Location loc,
55 mlir::arith::CmpIPredicate cmp, mlir::Value lhsBuff,
56 mlir::Value lhsLen, mlir::Value rhsBuff,
69void genFCString(fir::FirOpBuilder &builder, mlir::Location loc,
70 mlir::Value resultBox, mlir::Value stringBox,
76mlir::Value genIndex(fir::FirOpBuilder &builder, mlir::Location loc,
int kind,
77 mlir::Value stringBase, mlir::Value stringLen,
78 mlir::Value substringBase, mlir::Value substringLen,
85mlir::Value genIndex(fir::FirOpBuilder &builder, mlir::Location loc,
86 const fir::ExtendedValue &str,
87 const fir::ExtendedValue &substr, mlir::Value back);
92void genIndexDescriptor(fir::FirOpBuilder &builder, mlir::Location loc,
93 mlir::Value resultBox, mlir::Value stringBox,
94 mlir::Value substringBox, mlir::Value backOpt,
102void genRepeat(fir::FirOpBuilder &builder, mlir::Location loc,
103 mlir::Value resultBox, mlir::Value stringBox,
104 mlir::Value ncopies);
110void genTrim(fir::FirOpBuilder &builder, mlir::Location loc,
111 mlir::Value resultBox, mlir::Value stringBox);
116void genScanDescriptor(fir::FirOpBuilder &builder, mlir::Location loc,
117 mlir::Value resultBox, mlir::Value stringBox,
118 mlir::Value setBox, mlir::Value backBox,
124mlir::Value genScan(fir::FirOpBuilder &builder, mlir::Location loc,
int kind,
125 mlir::Value stringBase, mlir::Value stringLen,
126 mlir::Value setBase, mlir::Value setLen, mlir::Value back);
131void genVerifyDescriptor(fir::FirOpBuilder &builder, mlir::Location loc,
132 mlir::Value resultBox, mlir::Value stringBox,
133 mlir::Value setBox, mlir::Value backBox,
139mlir::Value genVerify(fir::FirOpBuilder &builder, mlir::Location loc,
int kind,
140 mlir::Value stringBase, mlir::Value stringLen,
141 mlir::Value setBase, mlir::Value setLen,
148mlir::Value genSplit(fir::FirOpBuilder &builder, mlir::Location loc,
int kind,
149 mlir::Value stringBase, mlir::Value stringLen,
150 mlir::Value setBase, mlir::Value setLen, mlir::Value pos,
157void genTokenize(fir::FirOpBuilder &builder, mlir::Location loc,
158 mlir::Value tokensBox, mlir::Value separatorBox,
159 mlir::Value stringBox, mlir::Value setBox);
165void genTokenizePositions(fir::FirOpBuilder &builder, mlir::Location loc,
166 mlir::Value firstBox, mlir::Value lastBox,
167 mlir::Value stringBox, mlir::Value setBox);
Definition BoxValue.h:480
Definition FIRBuilder.h:59
Definition AbstractConverter.h:37