[llvm] [NFC][RootSignature] Use `llvm::EnumEntry` for serialization of Root Signature Elements (PR #144106)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 13 13:37:37 PDT 2025
================
@@ -15,119 +15,117 @@
#include "llvm/ADT/bit.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Metadata.h"
+#include "llvm/Support/ScopedPrinter.h"
namespace llvm {
namespace hlsl {
namespace rootsig {
-static raw_ostream &operator<<(raw_ostream &OS, const Register &Reg) {
- switch (Reg.ViewType) {
- case RegisterType::BReg:
- OS << "b";
- break;
- case RegisterType::TReg:
- OS << "t";
- break;
- case RegisterType::UReg:
- OS << "u";
- break;
- case RegisterType::SReg:
- OS << "s";
- break;
- }
- OS << Reg.Number;
- return OS;
+template <typename T>
+static StringRef getEnumName(const T Value, ArrayRef<EnumEntry<T>> Enums) {
+ for (const auto &EnumItem : Enums)
+ if (EnumItem.Value == Value)
+ return EnumItem.Name;
+ return "";
----------------
joaosaffran wrote:
Maybe using `std::optional` can improve dealing with not found Enum values. IMHO, returning an empty string might lead to weird/annoying to debug issues.
https://github.com/llvm/llvm-project/pull/144106
More information about the llvm-commits
mailing list