From fa21654dc6eedbd4e277f3eee68bcde4a3bd5527 Mon Sep 17 00:00:00 2001 From: Alex Maclean Date: Thu, 6 Mar 2025 22:07:50 +0000 Subject: [PATCH] [NVPTX] Make GlobalUniqueCallSite a member of NVPTXISelLowering --- llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp | 6 ++---- llvm/lib/Target/NVPTX/NVPTXISelLowering.h | 2 ++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp b/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp index 3e755c25fd91a..b62c15ddb97d3 100644 --- a/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp +++ b/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp @@ -73,8 +73,6 @@ using namespace llvm; -static std::atomic GlobalUniqueCallSite; - static cl::opt sched4reg( "nvptx-sched4reg", cl::desc("NVPTX Specific: schedule for register pressue"), cl::init(false)); @@ -500,7 +498,7 @@ static SDValue MaybeBitcast(SelectionDAG &DAG, SDLoc DL, EVT VT, // NVPTXTargetLowering Constructor. NVPTXTargetLowering::NVPTXTargetLowering(const NVPTXTargetMachine &TM, const NVPTXSubtarget &STI) - : TargetLowering(TM), nvTM(&TM), STI(STI) { + : TargetLowering(TM), nvTM(&TM), STI(STI), GlobalUniqueCallSite(0) { // always lower memset, memcpy, and memmove intrinsics to load/store // instructions, rather // then generating calls to memset, mempcy or memmove. @@ -1474,7 +1472,7 @@ SDValue NVPTXTargetLowering::LowerCall(TargetLowering::CallLoweringInfo &CLI, unsigned FirstVAArg = CLI.NumFixedArgs; // position of the first variadic unsigned VAOffset = 0; // current offset in the param array - unsigned UniqueCallSite = GlobalUniqueCallSite.fetch_add(1); + const unsigned UniqueCallSite = GlobalUniqueCallSite++; SDValue TempChain = Chain; Chain = DAG.getCALLSEQ_START(Chain, UniqueCallSite, 0, dl); SDValue InGlue = Chain.getValue(1); diff --git a/llvm/lib/Target/NVPTX/NVPTXISelLowering.h b/llvm/lib/Target/NVPTX/NVPTXISelLowering.h index f41c569a65544..ff0241886223b 100644 --- a/llvm/lib/Target/NVPTX/NVPTXISelLowering.h +++ b/llvm/lib/Target/NVPTX/NVPTXISelLowering.h @@ -273,6 +273,8 @@ class NVPTXTargetLowering : public TargetLowering { private: const NVPTXSubtarget &STI; // cache the subtarget here + mutable unsigned GlobalUniqueCallSite; + SDValue getParamSymbol(SelectionDAG &DAG, int idx, EVT) const; SDValue LowerADDRSPACECAST(SDValue Op, SelectionDAG &DAG) const;