1 //==- XtensaMachineFunctionInfo.h - Xtensa machine function info --*- C++ -*-=//
3 // The LLVM Compiler Infrastructure
5 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
6 // See https://llvm.org/LICENSE.txt for license information.
7 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
9 //===----------------------------------------------------------------------===//
11 // This file declares Xtensa-specific per-machine-function information.
13 //===----------------------------------------------------------------------===//
15 #ifndef LLVM_LIB_TARGET_XTENSA_XTENSAMACHINEFUNCTIONINFO_H
16 #define LLVM_LIB_TARGET_XTENSA_XTENSAMACHINEFUNCTIONINFO_H
18 #include "llvm/CodeGen/MachineFrameInfo.h"
19 #include "llvm/CodeGen/MachineFunction.h"
20 #include "llvm/Target/TargetMachine.h"
24 class XtensaMachineFunctionInfo
: public MachineFunctionInfo
{
25 /// FrameIndex of the spill slot for the scratch register in BranchRelaxation.
26 int BranchRelaxationScratchFrameIndex
= -1;
27 unsigned VarArgsFirstGPR
;
28 int VarArgsOnStackFrameIndex
;
29 int VarArgsInRegsFrameIndex
;
32 explicit XtensaMachineFunctionInfo(const Function
&F
,
33 const TargetSubtargetInfo
*STI
)
34 : VarArgsFirstGPR(0), VarArgsOnStackFrameIndex(0),
35 VarArgsInRegsFrameIndex(0) {}
37 int getBranchRelaxationScratchFrameIndex() const {
38 return BranchRelaxationScratchFrameIndex
;
40 void setBranchRelaxationScratchFrameIndex(int Index
) {
41 BranchRelaxationScratchFrameIndex
= Index
;
44 unsigned getVarArgsFirstGPR() const { return VarArgsFirstGPR
; }
45 void setVarArgsFirstGPR(unsigned GPR
) { VarArgsFirstGPR
= GPR
; }
47 int getVarArgsOnStackFrameIndex() const { return VarArgsOnStackFrameIndex
; }
48 void setVarArgsOnStackFrameIndex(int FI
) { VarArgsOnStackFrameIndex
= FI
; }
50 // Get and set the frame index of the first stack vararg.
51 int getVarArgsInRegsFrameIndex() const { return VarArgsInRegsFrameIndex
; }
52 void setVarArgsInRegsFrameIndex(int FI
) { VarArgsInRegsFrameIndex
= FI
; }
57 #endif /* LLVM_LIB_TARGET_XTENSA_XTENSAMACHINEFUNCTIONINFO_H */