[clang] [llvm] [AMDGPU] Convert AMDGPUResourceUsageAnalysis pass from Module to MF pass (PR #102913)
Scott Linder via cfe-commits
cfe-commits at lists.llvm.org
Tue Sep 17 10:59:48 PDT 2024
================
@@ -0,0 +1,220 @@
+//===- AMDGPUMCResourceInfo.cpp --- MC Resource Info ----------------------===//
+//
+// 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 "AMDGPUMCResourceInfo.h"
+#include "Utils/AMDGPUBaseInfo.h"
+#include "llvm/ADT/SmallSet.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/MC/MCContext.h"
+#include "llvm/MC/MCSymbol.h"
+
+using namespace llvm;
+
+MCSymbol *MCResourceInfo::getSymbol(StringRef FuncName, ResourceInfoKind RIK) {
+ switch (RIK) {
+ case RIK_NumVGPR:
+ return OutContext.getOrCreateSymbol(FuncName + Twine(".num_vgpr"));
----------------
slinder1 wrote:
The names seem fine to me, but we should write down which symbols are "reserved" or "well known" or however we want to define it relative to how they are intended to be used. Can you document them in AMDGPUUsage maybe?
My original question was more around how a user could technically contrive a conflict with an `__asm__(("foo.num_vgpr"))` definition, which is outlandish and easy enough for us to say "don't do that". I just want to make sure we write down the spirit of "don't do that", in a similar way to how C/C++ (I believe?) define symbols starting with "__" as reserved for implementation use.
https://github.com/llvm/llvm-project/pull/102913
More information about the cfe-commits
mailing list