Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
flang/lib/Optimizer/Builder/Runtime/Command.cpp
Show All 26 Lines | |||||
mlir::Value fir::runtime::genCommandArgumentCount(fir::FirOpBuilder &builder, | mlir::Value fir::runtime::genCommandArgumentCount(fir::FirOpBuilder &builder, | ||||
mlir::Location loc) { | mlir::Location loc) { | ||||
auto argumentCountFunc = | auto argumentCountFunc = | ||||
fir::runtime::getRuntimeFunc<mkRTKey(ArgumentCount)>(loc, builder); | fir::runtime::getRuntimeFunc<mkRTKey(ArgumentCount)>(loc, builder); | ||||
return builder.create<fir::CallOp>(loc, argumentCountFunc).getResult(0); | return builder.create<fir::CallOp>(loc, argumentCountFunc).getResult(0); | ||||
} | } | ||||
mlir::Value fir::runtime::genArgumentValue(fir::FirOpBuilder &builder, | mlir::Value fir::runtime::genGetCommandArgument( | ||||
mlir::Location loc, | fir::FirOpBuilder &builder, mlir::Location loc, mlir::Value number, | ||||
mlir::Value number, | mlir::Value value, mlir::Value length, mlir::Value errmsg) { | ||||
mlir::Value value, | auto runtimeFunc = | ||||
mlir::Value errmsg) { | fir::runtime::getRuntimeFunc<mkRTKey(GetCommandArgument)>(loc, builder); | ||||
auto argumentValueFunc = | mlir::FunctionType runtimeFuncTy = runtimeFunc.getFunctionType(); | ||||
fir::runtime::getRuntimeFunc<mkRTKey(ArgumentValue)>(loc, builder); | mlir::Value sourceFile = fir::factory::locationToFilename(builder, loc); | ||||
llvm::SmallVector<mlir::Value> args = fir::runtime::createArguments( | mlir::Value sourceLine = | ||||
builder, loc, argumentValueFunc.getFunctionType(), number, value, errmsg); | fir::factory::locationToLineNo(builder, loc, runtimeFuncTy.getInput(5)); | ||||
return builder.create<fir::CallOp>(loc, argumentValueFunc, args).getResult(0); | llvm::SmallVector<mlir::Value> args = | ||||
} | fir::runtime::createArguments(builder, loc, runtimeFuncTy, number, value, | ||||
length, errmsg, sourceFile, sourceLine); | |||||
mlir::Value fir::runtime::genArgumentLength(fir::FirOpBuilder &builder, | return builder.create<fir::CallOp>(loc, runtimeFunc, args).getResult(0); | ||||
mlir::Location loc, | |||||
mlir::Value number) { | |||||
auto argumentLengthFunc = | |||||
fir::runtime::getRuntimeFunc<mkRTKey(ArgumentLength)>(loc, builder); | |||||
llvm::SmallVector<mlir::Value> args = fir::runtime::createArguments( | |||||
builder, loc, argumentLengthFunc.getFunctionType(), number); | |||||
return builder.create<fir::CallOp>(loc, argumentLengthFunc, args) | |||||
.getResult(0); | |||||
} | } | ||||
mlir::Value fir::runtime::genEnvVariableValue( | mlir::Value fir::runtime::genEnvVariableValue( | ||||
fir::FirOpBuilder &builder, mlir::Location loc, mlir::Value name, | fir::FirOpBuilder &builder, mlir::Location loc, mlir::Value name, | ||||
mlir::Value value, mlir::Value trimName, mlir::Value errmsg) { | mlir::Value value, mlir::Value trimName, mlir::Value errmsg) { | ||||
auto valueFunc = | auto valueFunc = | ||||
fir::runtime::getRuntimeFunc<mkRTKey(EnvVariableValue)>(loc, builder); | fir::runtime::getRuntimeFunc<mkRTKey(EnvVariableValue)>(loc, builder); | ||||
mlir::FunctionType valueFuncTy = valueFunc.getFunctionType(); | mlir::FunctionType valueFuncTy = valueFunc.getFunctionType(); | ||||
Show All 23 Lines |