================ @@ -0,0 +1,94 @@ +//===- AMDGPUMCResourceInfo.h ----- MC Resource Info --------------*- C++ -*-=// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +/// \file +/// \brief MC infrastructure to propagate the function level resource usage +/// info. +/// +//===----------------------------------------------------------------------===// + +#include "AMDGPUResourceUsageAnalysis.h" +#include "MCTargetDesc/AMDGPUMCExpr.h" + +namespace llvm { + +class MCContext; +class MCSymbol; +class StringRef; +class MachineFunction; + +class MCResourceInfo { +public: + enum ResourceInfoKind { + RIK_NumVGPR, + RIK_NumAGPR, + RIK_NumSGPR, + RIK_PrivateSegSize, + RIK_UsesVCC, + RIK_UsesFlatScratch, + RIK_HasDynSizedStack, + RIK_HasRecursion, + RIK_HasIndirectCall + }; + +private: + int32_t MaxVGPR; + int32_t MaxAGPR; + int32_t MaxSGPR; + + MCContext &OutContext; + bool finalized; + + void assignResourceInfoExpr(int64_t localValue, ResourceInfoKind RIK, + AMDGPUMCExpr::VariantKind Kind, + const MachineFunction &MF, + const SmallVectorImpl<const Function *> &Callees); + + // Assigns expression for Max S/V/A-GPRs to the referenced symbols. + void assignMaxRegs(); + +public: + MCResourceInfo(MCContext &OutContext) + : MaxVGPR(0), MaxAGPR(0), MaxSGPR(0), OutContext(OutContext), ---------------- arsenm wrote:
Move the 0 initializers to the member declaration https://github.com/llvm/llvm-project/pull/102913 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits