18 const char *
const LibCalls[] = {
19 "__addtf3",
"__divtf3",
"__eqtf2",
"__extenddftf2",
20 "__extendsftf2",
"__fixtfdi",
"__fixtfsi",
"__fixtfti",
21 "__fixunstfdi",
"__fixunstfsi",
"__fixunstfti",
"__floatditf",
22 "__floatsitf",
"__floattitf",
"__floatunditf",
"__floatunsitf",
23 "__floatuntitf",
"__getf2",
"__gttf2",
"__letf2",
24 "__lttf2",
"__multf3",
"__netf2",
"__powitf2",
25 "__subtf3",
"__trunctfdf2",
"__trunctfsf2",
"__unordtf2",
26 "ceill",
"copysignl",
"cosl",
"exp2l",
27 "expl",
"floorl",
"fmal",
"fmodl",
28 "log10l",
"log2l",
"logl",
"nearbyintl",
29 "powl",
"rintl",
"roundl",
"sinl",
33 auto Comp = [](
const char *S1,
const char *S2) {
return strcmp(S1, S2) < 0; };
50 dyn_cast_or_null<const ExternalSymbolSDNode>(CallNode);
63 dyn_cast<const GlobalAddressSDNode>(Callee)) {
65 Function *
F =
G->getGlobal()->getParent()->getFunction(Sym);
71 return SpecialCallingConv;
74 void MipsCCState::PreAnalyzeCallResultForF128(
77 for (
unsigned i = 0;
i < Ins.
size(); ++
i) {
86 void MipsCCState::PreAnalyzeReturnForF128(
89 for (
unsigned i = 0;
i < Outs.
size(); ++
i) {
99 void MipsCCState::PreAnalyzeCallOperands(
101 std::vector<TargetLowering::ArgListEntry> &FuncArgs,
103 for (
unsigned i = 0;
i < Outs.
size(); ++
i) {
107 FuncArgs[Outs[
i].OrigArgIndex].Ty->isFloatingPointTy());
108 CallOperandIsFixed.
push_back(Outs[
i].IsFixed);
114 void MipsCCState::PreAnalyzeFormalArgumentsForF128(
117 for (
unsigned i = 0;
i < Ins.
size(); ++
i) {
123 if (Ins[
i].
Flags.isSRet()) {
134 OriginalArgWasFloat.
push_back(FuncArg->getType()->isFloatingPointTy());
void push_back(const T &Elt)
const_iterator end(StringRef path)
Get end iterator over path.
const char * getSymbol() const
unsigned getStructNumElements() const
const_iterator begin(StringRef path)
Get begin iterator over path.
Type * getReturnType() const
Returns the type of the ret val.
const Function * getFunction() const
getFunction - Return the LLVM function that this machine code represents
Maximum length of the test input libFuzzer tries to guess a good value based on the corpus and reports it always prefer smaller inputs during the corpus shuffle When libFuzzer itself reports a bug this exit code will be used If indicates the maximal total time in seconds to run the fuzzer minimizes the provided crash input Use with strcmp
struct fuzzer::@269 Flags
static void advance(T &it, size_t Val)
bool inMips16HardFloat() const
MachineFunction & getMachineFunction() const
Type * getStructElementType(unsigned N) const
static SpecialCallingConvType getSpecialCallingConvForCallee(const SDNode *Callee, const MipsSubtarget &Subtarget)
Determine the SpecialCallingConvType for the given callee.
bool isFloatingPointTy() const
Return true if this is one of the six floating-point types.
static bool originalTypeIsF128(Type *Ty, const SDNode *CallNode)
This function returns true if Ty is fp128, {f128} or i128 which was originally a fp128.
static bool isF128SoftLibCall(const char *CallSym)
This function returns true if CallSym is a long double emulation routine.
SDNode * getNode() const
get the SDNode which holds the desired result
The instances of the Type class are immutable: once they are created, they are never changed...
bool isFP128Ty() const
Return true if this is 'fp128'.
This structure contains all information that is necessary for lowering calls.
Iterator for intrusive lists based on ilist_node.
Module.h This file contains the declarations for the Module class.
Represents one node in the SelectionDAG.
bool isIntegerTy() const
True if this is an instance of IntegerType.
bool isStructTy() const
True if this is an instance of StructType.
bool hasFnAttribute(Attribute::AttrKind Kind) const
Return true if the function has the attribute.
LLVM_ATTRIBUTE_ALWAYS_INLINE size_type size() const
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
StringRef - Represent a constant reference to a string, i.e.