From 3ccdc8773d08ce9257600f0c1ad114ab067b9fba Mon Sep 17 00:00:00 2001
From: Blaise Tine <tinebp@yahoo.com>
Date: Sun, 19 May 2024 15:13:21 -0700
Subject: [PATCH] TODO

---
 clang/include/clang/Basic/Attr.td                |  8 --------
 clang/lib/AST/ASTContext.cpp                     |  2 --
 clang/lib/CodeGen/CGDecl.cpp                     | 16 ----------------
 clang/lib/Sema/SemaDeclAttr.cpp                  |  7 -------
 llvm/lib/Target/RISCV/VortexBranchDivergence.cpp |  4 ++--
 5 files changed, 2 insertions(+), 35 deletions(-)

diff --git a/clang/include/clang/Basic/Attr.td b/clang/include/clang/Basic/Attr.td
index 113f77661d97..46d0a66d59c3 100644
--- a/clang/include/clang/Basic/Attr.td
+++ b/clang/include/clang/Basic/Attr.td
@@ -2050,14 +2050,6 @@ def Convergent : InheritableAttr {
   let SimpleHandler = 1;
 }
 
-// Vortex attributes for marking variables as uniform
-def VortexUniform : InheritableAttr {
-  let Spellings = [GNU<"uniform">, Declspec<"__uniform__">];
-  let Subjects = SubjectList<[Var]>;
-  let LangOpts = [CPlusPlus];
-  let Documentation = [Undocumented];
-}
-
 def NoInline : DeclOrStmtAttr {
   let Spellings = [CustomKeyword<"__noinline__">, GCC<"noinline">,
                    CXX11<"clang", "noinline">, C23<"clang", "noinline">,
diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp
index 5ec7fe42e09b..1064507f3461 100644
--- a/clang/lib/AST/ASTContext.cpp
+++ b/clang/lib/AST/ASTContext.cpp
@@ -12316,8 +12316,6 @@ bool ASTContext::DeclMustBeEmitted(const Decl *D) {
     if (VD->getDescribedVarTemplate() ||
         isa<VarTemplatePartialSpecializationDecl>(VD))
       return false;
-    if (VD->hasAttr<VortexUniformAttr>())
-      return false;
   } else if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
     // We never need to emit an uninstantiated function template.
     if (FD->getTemplatedKind() == FunctionDecl::TK_FunctionTemplate)
diff --git a/clang/lib/CodeGen/CGDecl.cpp b/clang/lib/CodeGen/CGDecl.cpp
index 9ce8c13bd958..c3251bb5ab56 100644
--- a/clang/lib/CodeGen/CGDecl.cpp
+++ b/clang/lib/CodeGen/CGDecl.cpp
@@ -1684,14 +1684,6 @@ CodeGenFunction::EmitAutoVarAlloca(const VarDecl &D) {
   if (D.hasAttr<AnnotateAttr>() && HaveInsertPoint())
     EmitVarAnnotations(&D, address.emitRawPointer(*this));
 
-  if (D.hasAttr<VortexUniformAttr>() && HaveInsertPoint()) {
-    if (auto I = dyn_cast<llvm::Instruction>(address.getPointer())) {
-      auto &Context = I->getContext();
-      auto MD = llvm::MDNode::get(Context, llvm::MDString::get(Context, "Uniform Variable"));
-      I->setMetadata("vortex.uniform", MD);
-    }
-  }
-
   // Make sure we call @llvm.lifetime.end.
   if (emission.useLifetimeMarkers())
     EHStack.pushCleanup<CallLifetimeEnd>(NormalEHLifetimeMarker,
@@ -2764,14 +2756,6 @@ void CodeGenFunction::EmitParmDecl(const VarDecl &D, ParamValue Arg,
   if (D.hasAttr<AnnotateAttr>())
     EmitVarAnnotations(&D, DeclPtr.emitRawPointer(*this));
 
-  if (D.hasAttr<VortexUniformAttr>()) {
-    if (auto I = dyn_cast<llvm::Instruction>(DeclPtr.getPointer())) {
-      auto &Context = I->getContext();
-      auto MD = llvm::MDNode::get(Context, llvm::MDString::get(Context, "Uniform Variable"));
-      I->setMetadata("vortex.uniform", MD);
-    }
-  }
-
   // We can only check return value nullability if all arguments to the
   // function satisfy their nullability preconditions. This makes it necessary
   // to emit null checks for args in the function body itself.
diff --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp
index d41fee8e3498..e2eada24f9fc 100644
--- a/clang/lib/Sema/SemaDeclAttr.cpp
+++ b/clang/lib/Sema/SemaDeclAttr.cpp
@@ -4563,10 +4563,6 @@ static void handleConstantAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
   D->addAttr(::new (S.Context) CUDAConstantAttr(S.Context, AL));
 }
 
-static void handleVortexUniformAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
-  handleSimpleAttribute<VortexUniformAttr>(S, D, AL);
-}
-
 static void handleSharedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
   const auto *VD = cast<VarDecl>(D);
   // extern __shared__ is only allowed on arrays with no length (e.g.
@@ -6473,9 +6469,6 @@ ProcessDeclAttribute(Sema &S, Scope *scope, Decl *D, const ParsedAttr &AL,
   case ParsedAttr::AT_CUDAConstant:
     handleConstantAttr(S, D, AL);
     break;
-  case ParsedAttr::AT_VortexUniform:
-    handleVortexUniformAttr(S, D, AL);
-    break;
   case ParsedAttr::AT_PassObjectSize:
     handlePassObjectSizeAttr(S, D, AL);
     break;
diff --git a/llvm/lib/Target/RISCV/VortexBranchDivergence.cpp b/llvm/lib/Target/RISCV/VortexBranchDivergence.cpp
index 95dddd477998..7763dae3c9aa 100644
--- a/llvm/lib/Target/RISCV/VortexBranchDivergence.cpp
+++ b/llvm/lib/Target/RISCV/VortexBranchDivergence.cpp
@@ -984,11 +984,11 @@ void DivergenceTracker::initialize() {
             auto var = II->getOperand(0);
             if (auto AI = dyn_cast<AllocaInst>(var)) {
               var_src = AI;
-              LLVM_DEBUG(dbgs() << "*** uniform annotation: " << AI->getName() << ".src(" << var_src << "\n");
+              LLVM_DEBUG(dbgs() << "*** divergent annotation: " << AI->getName() << ".src(" << var_src << "\n");
             } else
             if (auto CI = dyn_cast<CastInst>(var)) {
               var_src = CI->getOperand(0);
-              LLVM_DEBUG(dbgs() << "*** uniform annotation: " << CI->getName() << ".src(" << var_src << "\n");
+              LLVM_DEBUG(dbgs() << "*** divergent annotation: " << CI->getName() << ".src(" << var_src << "\n");
             }
             dv_annotations.insert(var_src);
             dv_nodes_.insert(var_src);
-- 
GitLab