FLANG
Public Member Functions | List of all members
fir::PPCIntrinsicLibrary Struct Reference
Inheritance diagram for fir::PPCIntrinsicLibrary:
fir::IntrinsicLibrary

Public Member Functions

 PPCIntrinsicLibrary (fir::FirOpBuilder &builder, mlir::Location loc)
 
 PPCIntrinsicLibrary (const PPCIntrinsicLibrary &)=delete
 
bool isBEVecElemOrderOnLE ()
 
bool isNativeVecElemOrderOnLE ()
 
bool changeVecElemOrder ()
 
template<MMAOp IntrId, MMAHandlerOp HandlerOp>
void genMmaIntr (llvm::ArrayRef< fir::ExtendedValue >)
 
template<bool isImm>
void genMtfsf (llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genVecAbs (mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 
template<VecOp >
fir::ExtendedValue genVecAddAndMulSubXor (mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 
template<VecOp >
fir::ExtendedValue genVecCmp (mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 
template<VecOp >
fir::ExtendedValue genVecConvert (mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 
template<VecOp >
fir::ExtendedValue genVecAnyCompare (mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 
fir::ExtendedValue genVecExtract (mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 
fir::ExtendedValue genVecInsert (mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 
template<VecOp >
fir::ExtendedValue genVecMerge (mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 
template<VecOp >
fir::ExtendedValue genVecPerm (mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 
fir::ExtendedValue genVecXlGrp (mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 
template<VecOp >
fir::ExtendedValue genVecLdCallGrp (mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 
template<VecOp >
fir::ExtendedValue genVecLdNoCallGrp (mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 
template<VecOp >
fir::ExtendedValue genVecLvsGrp (mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 
template<VecOp >
fir::ExtendedValue genVecNmaddMsub (mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 
template<VecOp >
fir::ExtendedValue genVecShift (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genVecSel (mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 
template<VecOp >
void genVecStore (llvm::ArrayRef< fir::ExtendedValue >)
 
template<VecOp >
void genVecXStore (llvm::ArrayRef< fir::ExtendedValue >)
 
template<VecOp vop>
fir::ExtendedValue genVecSplat (mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 
fir::ExtendedValue genVecXlds (mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 
- Public Member Functions inherited from fir::IntrinsicLibrary
 IntrinsicLibrary (fir::FirOpBuilder &builder, mlir::Location loc, Fortran::lower::AbstractConverter *converter=nullptr)
 
 IntrinsicLibrary (const IntrinsicLibrary &)=delete
 
std::pair< fir::ExtendedValue, bool > genIntrinsicCall (llvm::StringRef name, std::optional< mlir::Type > resultType, llvm::ArrayRef< fir::ExtendedValue > arg)
 
mlir::Value genRuntimeCall (llvm::StringRef name, mlir::Type, llvm::ArrayRef< mlir::Value >)
 
RuntimeCallGenerator getRuntimeCallGenerator (llvm::StringRef name, mlir::FunctionType soughtFuncType)
 
void genAbort (llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genAbs (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genAcosd (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
template<void(*)(fir::FirOpBuilder &, mlir::Location loc, mlir::Value, mlir::Value) CallRuntime>
fir::ExtendedValue genAdjustRtCall (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genAimag (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genAint (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genAll (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genAllocated (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genAnint (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genAny (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genAtanpi (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genCommandArgumentCount (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genAsind (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genAssociated (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genAtand (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genBesselJn (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genBesselYn (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
template<mlir::arith::CmpIPredicate pred>
mlir::Value genBitwiseCompare (mlir::Type resultType, llvm::ArrayRef< mlir::Value > args)
 
mlir::Value genBtest (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genCeiling (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genChar (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
template<mlir::arith::CmpIPredicate pred>
fir::ExtendedValue genCharacterCompare (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genCmplx (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genConjg (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genCount (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
void genCpuTime (llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genCshift (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genCAssociatedCFunPtr (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 C_ASSOCIATED (C_FUNPTR [, C_FUNPTR])
 
fir::ExtendedValue genCAssociatedCPtr (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 C_ASSOCIATED (C_PTR [, C_PTR])
 
fir::ExtendedValue genCDevLoc (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genErfcScaled (mlir::Type resultType, llvm::ArrayRef< mlir::Value > args)
 
void genCFPointer (llvm::ArrayRef< fir::ExtendedValue >)
 
void genCFProcPointer (llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genCFunLoc (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genCLoc (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
template<mlir::arith::CmpIPredicate pred>
fir::ExtendedValue genCPtrCompare (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genCosd (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
void genDateAndTime (llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genDim (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genDotProduct (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genDprod (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genDshiftl (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genDshiftr (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genEoshift (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
void genExit (llvm::ArrayRef< fir::ExtendedValue >)
 
void genExecuteCommandLine (mlir::ArrayRef< fir::ExtendedValue > args)
 
fir::ExtendedValue genEtime (std::optional< mlir::Type >, mlir::ArrayRef< fir::ExtendedValue > args)
 
mlir::Value genExponent (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genExtendsTypeOf (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
template<Extremum , ExtremumBehavior >
mlir::Value genExtremum (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genFloor (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genFraction (mlir::Type resultType, mlir::ArrayRef< mlir::Value > args)
 
void genFree (mlir::ArrayRef< fir::ExtendedValue > args)
 
fir::ExtendedValue genGetCwd (std::optional< mlir::Type > resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 
void genGetCommand (mlir::ArrayRef< fir::ExtendedValue > args)
 
mlir::Value genGetPID (mlir::Type resultType, llvm::ArrayRef< mlir::Value > args)
 
void genGetCommandArgument (mlir::ArrayRef< fir::ExtendedValue > args)
 
void genGetEnvironmentVariable (llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genGetGID (mlir::Type resultType, llvm::ArrayRef< mlir::Value > args)
 
mlir::Value genGetUID (mlir::Type resultType, llvm::ArrayRef< mlir::Value > args)
 
fir::ExtendedValue genIall (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genIand (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genIany (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genIbclr (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genIbits (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genIbset (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genIchar (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genFindloc (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genIeeeClass (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genIeeeCopySign (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
void genIeeeGetFlag (llvm::ArrayRef< fir::ExtendedValue >)
 
void genIeeeGetHaltingMode (llvm::ArrayRef< fir::ExtendedValue >)
 
template<bool isGet, bool isModes>
void genIeeeGetOrSetModesOrStatus (llvm::ArrayRef< fir::ExtendedValue >)
 
void genIeeeGetRoundingMode (llvm::ArrayRef< fir::ExtendedValue >)
 
void genIeeeGetUnderflowMode (llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genIeeeInt (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genIeeeIsFinite (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genIeeeIsNan (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genIeeeIsNegative (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genIeeeIsNormal (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genIeeeLogb (mlir::Type, mlir::ArrayRef< mlir::Value >)
 
template<bool isMax, bool isNum, bool isMag>
mlir::Value genIeeeMaxMin (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
template<mlir::arith::CmpFPredicate pred>
mlir::Value genIeeeQuietCompare (mlir::Type resultType, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genIeeeReal (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genIeeeRem (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genIeeeRint (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
template<bool isFlag>
void genIeeeSetFlagOrHaltingMode (llvm::ArrayRef< fir::ExtendedValue >)
 
void genIeeeSetRoundingMode (llvm::ArrayRef< fir::ExtendedValue >)
 
void genIeeeSetUnderflowMode (llvm::ArrayRef< fir::ExtendedValue >)
 
template<mlir::arith::CmpFPredicate pred>
mlir::Value genIeeeSignalingCompare (mlir::Type resultType, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genIeeeSignbit (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genIeeeSupportFlag (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genIeeeSupportHalting (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genIeeeSupportRounding (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
template<mlir::arith::CmpIPredicate pred>
mlir::Value genIeeeTypeCompare (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genIeeeUnordered (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genIeeeValue (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genIeor (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genIndex (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genIor (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genIparity (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genIsContiguous (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
template<Fortran::runtime::io::Iostat value>
mlir::Value genIsIostatValue (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genIsFPClass (mlir::Type, llvm::ArrayRef< mlir::Value >, int fpclass)
 
mlir::Value genIshft (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genIshftc (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genLbound (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genLeadz (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genLen (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genLenTrim (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genLoc (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genMalloc (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
template<typename Shift >
mlir::Value genMask (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genMatmul (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genMatmulTranspose (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genMaxloc (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genMaxval (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genMerge (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genMergeBits (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genMinloc (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genMinval (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genMod (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genModulo (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
void genMoveAlloc (llvm::ArrayRef< fir::ExtendedValue >)
 
void genMvbits (llvm::ArrayRef< fir::ExtendedValue >)
 
template<NearestProc >
mlir::Value genNearest (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genNint (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genNorm2 (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genNot (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genNull (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genPack (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genParity (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genPopcnt (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genPoppar (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genPresent (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genProduct (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
void genRandomInit (llvm::ArrayRef< fir::ExtendedValue >)
 
void genRandomNumber (llvm::ArrayRef< fir::ExtendedValue >)
 
void genRandomSeed (llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genReduce (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genReduceDim (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genRename (std::optional< mlir::Type >, mlir::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genRepeat (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genReshape (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genRRSpacing (mlir::Type resultType, llvm::ArrayRef< mlir::Value > args)
 
fir::ExtendedValue genSameTypeAs (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genScale (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genScan (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genSecond (std::optional< mlir::Type >, mlir::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genSelectedCharKind (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genSelectedIntKind (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genSelectedLogicalKind (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genSelectedRealKind (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genSetExponent (mlir::Type resultType, llvm::ArrayRef< mlir::Value > args)
 
fir::ExtendedValue genShape (mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue >)
 
template<typename Shift >
mlir::Value genShift (mlir::Type resultType, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genShiftA (mlir::Type resultType, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genSign (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genSind (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genSize (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genSizeOf (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genSpacing (mlir::Type resultType, llvm::ArrayRef< mlir::Value > args)
 
fir::ExtendedValue genSpread (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genStorageSize (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genSum (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
void genSignalSubroutine (llvm::ArrayRef< fir::ExtendedValue >)
 
void genSleep (llvm::ArrayRef< fir::ExtendedValue >)
 
void genSyncThreads (llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genSyncThreadsAnd (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genSyncThreadsCount (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genSyncThreadsOr (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genSystem (std::optional< mlir::Type >, mlir::ArrayRef< fir::ExtendedValue > args)
 
void genSystemClock (llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genTand (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
mlir::Value genTrailz (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
fir::ExtendedValue genTransfer (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genTranspose (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
void genThreadFence (llvm::ArrayRef< fir::ExtendedValue >)
 
void genThreadFenceBlock (llvm::ArrayRef< fir::ExtendedValue >)
 
void genThreadFenceSystem (llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genTrim (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genUbound (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genUnpack (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
fir::ExtendedValue genVerify (mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 
mlir::Value genConversion (mlir::Type, llvm::ArrayRef< mlir::Value >)
 
template<typename FN , typename FD >
fir::ExtendedValue genExtremumloc (FN func, FD funcDim, llvm::StringRef errMsg, mlir::Type, llvm::ArrayRef< fir::ExtendedValue >)
 Process calls to Minloc, Maxloc intrinsic functions.
 
template<typename FN , typename FD , typename FC >
fir::ExtendedValue genExtremumVal (FN func, FD funcDim, FC funcChar, llvm::StringRef errMsg, mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 Helper for MinVal/MaxVal.
 
template<typename FN , typename FD >
fir::ExtendedValue genReduction (FN func, FD funcDim, llvm::StringRef errMsg, mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 Process calls to Product, Sum, IAll, IAny, IParity intrinsic functions.
 
void genRaiseExcept (int excepts, mlir::Value cond={})
 
mlir::Value genQNan (mlir::Type resultType)
 Generate a quiet NaN of a given floating point type.
 
template<typename GeneratorType >
mlir::Value outlineInWrapper (GeneratorType, llvm::StringRef name, mlir::Type resultType, llvm::ArrayRef< mlir::Value > args)
 
template<typename GeneratorType >
fir::ExtendedValue outlineInExtendedWrapper (GeneratorType, llvm::StringRef name, std::optional< mlir::Type > resultType, llvm::ArrayRef< fir::ExtendedValue > args)
 
template<typename GeneratorType >
mlir::func::FuncOp getWrapper (GeneratorType, llvm::StringRef name, mlir::FunctionType, bool loadRefArguments=false)
 
template<typename GeneratorType >
fir::ExtendedValue genElementalCall (GeneratorType, llvm::StringRef name, mlir::Type resultType, llvm::ArrayRef< fir::ExtendedValue > args, bool outline)
 Generate calls to ElementalGenerator, handling the elemental aspects.
 
mlir::Value invokeGenerator (ElementalGenerator generator, mlir::Type resultType, llvm::ArrayRef< mlir::Value > args)
 Helper to invoke code generator for the intrinsics given arguments.
 
mlir::Value invokeGenerator (RuntimeCallGenerator generator, mlir::Type resultType, llvm::ArrayRef< mlir::Value > args)
 
mlir::Value invokeGenerator (ExtendedGenerator generator, mlir::Type resultType, llvm::ArrayRef< mlir::Value > args)
 
mlir::Value invokeGenerator (SubroutineGenerator generator, llvm::ArrayRef< mlir::Value > args)
 
mlir::Value invokeGenerator (DualGenerator generator, llvm::ArrayRef< mlir::Value > args)
 
mlir::Value invokeGenerator (DualGenerator generator, mlir::Type resultType, llvm::ArrayRef< mlir::Value > args)
 
mlir::SymbolRefAttr getUnrestrictedIntrinsicSymbolRefAttr (llvm::StringRef name, mlir::FunctionType signature)
 
fir::ExtendedValue readAndAddCleanUp (fir::MutableBoxValue resultMutableBox, mlir::Type resultType, llvm::StringRef errMsg)
 Helper function for generating code clean-up for result descriptors.
 
void setResultMustBeFreed ()
 

Additional Inherited Members

- Public Types inherited from fir::IntrinsicLibrary
enum class  NearestProc { Nearest , NextAfter , NextDown , NextUp }
 
using RuntimeCallGenerator = std::function< mlir::Value(fir::FirOpBuilder &, mlir::Location, llvm::ArrayRef< mlir::Value >)>
 
using ElementalGenerator = decltype(&IntrinsicLibrary::genAbs)
 
using ExtendedGenerator = decltype(&IntrinsicLibrary::genLenTrim)
 
using SubroutineGenerator = decltype(&IntrinsicLibrary::genDateAndTime)
 
using DualGenerator = decltype(&IntrinsicLibrary::genEtime)
 The generator for intrinsic that has both function and subroutine form.
 
using Generator = std::variant< ElementalGenerator, ExtendedGenerator, SubroutineGenerator, DualGenerator >
 
- Public Attributes inherited from fir::IntrinsicLibrary
fir::FirOpBuilderbuilder
 
mlir::Location loc
 
bool resultMustBeFreed = false
 
Fortran::lower::AbstractConverterconverter = nullptr
 

The documentation for this struct was generated from the following files: