[llvm] [SDPatternMatch][NFC] Use empty SDNodeFlags instead of std::optional (PR #178483)
Min-Yih Hsu via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 28 10:57:55 PST 2026
https://github.com/mshockwave created https://github.com/llvm/llvm-project/pull/178483
I think we can avoid using std::optional for SDNodeFlags in UnaryOpc_match.
NFC.
>From 0fa26ef6c7a81467c513ad3acd066e64513ac4d1 Mon Sep 17 00:00:00 2001
From: Min-Yih Hsu <min.hsu at sifive.com>
Date: Wed, 28 Jan 2026 10:55:12 -0800
Subject: [PATCH] [SDPatternMatch][NFC] Use empty SDFlags instead of
std::optional
---
llvm/include/llvm/CodeGen/SDPatternMatch.h | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/llvm/include/llvm/CodeGen/SDPatternMatch.h b/llvm/include/llvm/CodeGen/SDPatternMatch.h
index ba8471ab4f947..04f73c6a9a36b 100644
--- a/llvm/include/llvm/CodeGen/SDPatternMatch.h
+++ b/llvm/include/llvm/CodeGen/SDPatternMatch.h
@@ -992,9 +992,9 @@ inline BinaryOpc_match<LHS, RHS> m_ExtractSubvector(const LHS &Vec,
template <typename Opnd_P, bool ExcludeChain = false> struct UnaryOpc_match {
unsigned Opcode;
Opnd_P Opnd;
- std::optional<SDNodeFlags> Flags;
+ SDNodeFlags Flags;
UnaryOpc_match(unsigned Opc, const Opnd_P &Op,
- std::optional<SDNodeFlags> Flgs = std::nullopt)
+ SDNodeFlags Flgs = SDNodeFlags())
: Opcode(Opc), Opnd(Op), Flags(Flgs) {}
template <typename MatchContext>
@@ -1004,10 +1004,8 @@ template <typename Opnd_P, bool ExcludeChain = false> struct UnaryOpc_match {
assert(EO.Size == 1);
if (!Opnd.match(Ctx, N->getOperand(EO.FirstIndex)))
return false;
- if (!Flags.has_value())
- return true;
- return (*Flags & N->getFlags()) == *Flags;
+ return (Flags & N->getFlags()) == Flags;
}
return false;
More information about the llvm-commits
mailing list