Path: blob/main/contrib/llvm-project/llvm/lib/Target/Xtensa/XtensaMachineFunctionInfo.h
213799 views
//==- XtensaMachineFunctionInfo.h - Xtensa machine function info --*- C++ -*-=//1//2// The LLVM Compiler Infrastructure3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9//10// This file declares Xtensa-specific per-machine-function information.11//12//===----------------------------------------------------------------------===//1314#ifndef LLVM_LIB_TARGET_XTENSA_XTENSAMACHINEFUNCTIONINFO_H15#define LLVM_LIB_TARGET_XTENSA_XTENSAMACHINEFUNCTIONINFO_H1617#include "llvm/CodeGen/MachineFrameInfo.h"18#include "llvm/CodeGen/MachineFunction.h"19#include "llvm/Target/TargetMachine.h"2021namespace llvm {2223class XtensaMachineFunctionInfo : public MachineFunctionInfo {24/// FrameIndex of the spill slot for the scratch register in BranchRelaxation.25int BranchRelaxationScratchFrameIndex = -1;26unsigned VarArgsFirstGPR;27int VarArgsOnStackFrameIndex;28int VarArgsInRegsFrameIndex;29bool SaveFrameRegister = false;30unsigned CPLabelId = 0;3132public:33explicit XtensaMachineFunctionInfo(const Function &F,34const TargetSubtargetInfo *STI)35: VarArgsFirstGPR(0), VarArgsOnStackFrameIndex(0),36VarArgsInRegsFrameIndex(0) {}3738int getBranchRelaxationScratchFrameIndex() const {39return BranchRelaxationScratchFrameIndex;40}41void setBranchRelaxationScratchFrameIndex(int Index) {42BranchRelaxationScratchFrameIndex = Index;43}4445unsigned getVarArgsFirstGPR() const { return VarArgsFirstGPR; }46void setVarArgsFirstGPR(unsigned GPR) { VarArgsFirstGPR = GPR; }4748int getVarArgsOnStackFrameIndex() const { return VarArgsOnStackFrameIndex; }49void setVarArgsOnStackFrameIndex(int FI) { VarArgsOnStackFrameIndex = FI; }5051// Get and set the frame index of the first stack vararg.52int getVarArgsInRegsFrameIndex() const { return VarArgsInRegsFrameIndex; }53void setVarArgsInRegsFrameIndex(int FI) { VarArgsInRegsFrameIndex = FI; }5455bool isSaveFrameRegister() const { return SaveFrameRegister; }56void setSaveFrameRegister() { SaveFrameRegister = true; }5758unsigned createCPLabelId() { return CPLabelId++; }59};6061} // namespace llvm6263#endif /* LLVM_LIB_TARGET_XTENSA_XTENSAMACHINEFUNCTIONINFO_H */646566