Thanks to visit codestin.com
Credit goes to llvm.org

LLVM 22.0.0git
MipsCCState.h
Go to the documentation of this file.
1//===---- MipsCCState.h - CCState with Mips specific extensions -----------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef MIPSCCSTATE_H
10#define MIPSCCSTATE_H
11
12#include "MipsISelLowering.h"
15
16namespace llvm {
17class SDNode;
18class MipsSubtarget;
19
20class MipsCCState : public CCState {
21public:
23
24 /// Determine the SpecialCallingConvType for the given callee
25 static SpecialCallingConvType
27 const MipsSubtarget &Subtarget);
28
29private:
30 // Used to handle MIPS16-specific calling convention tweaks.
31 // FIXME: This should probably be a fully fledged calling convention.
32 SpecialCallingConvType SpecialCallingConv;
33
34public:
38 : CCState(CC, isVarArg, MF, locs, C), SpecialCallingConv(SpecialCC) {}
39
40 SpecialCallingConvType getSpecialCallingConv() { return SpecialCallingConv; }
41};
42}
43
44#endif
This file defines the SmallVector class.
LLVM_ABI CCState(CallingConv::ID CC, bool IsVarArg, MachineFunction &MF, SmallVectorImpl< CCValAssign > &Locs, LLVMContext &Context, bool NegativeOffsets=false)
bool isVarArg() const
This is an important class for using LLVM in a threaded context.
Definition LLVMContext.h:68
SpecialCallingConvType getSpecialCallingConv()
Definition MipsCCState.h:40
static SpecialCallingConvType getSpecialCallingConvForCallee(const SDNode *Callee, const MipsSubtarget &Subtarget)
Determine the SpecialCallingConvType for the given callee.
MipsCCState(CallingConv::ID CC, bool isVarArg, MachineFunction &MF, SmallVectorImpl< CCValAssign > &locs, LLVMContext &C, SpecialCallingConvType SpecialCC=NoSpecialCallingConv)
Definition MipsCCState.h:35
Represents one node in the SelectionDAG.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
Definition CallingConv.h:24
@ C
The default llvm calling convention, compatible with C.
Definition CallingConv.h:34
This is an optimization pass for GlobalISel generic memory operations.