@@ -63,17 +63,18 @@ inline OneNonDBGUse_match<SubPat> m_OneNonDBGUse(const SubPat &SP) {
6363}
6464
6565template <typename ConstT>
66- inline Optional<ConstT> matchConstant (Register, const MachineRegisterInfo &);
66+ inline std::optional<ConstT> matchConstant (Register,
67+ const MachineRegisterInfo &);
6768
6869template <>
69- inline Optional <APInt> matchConstant (Register Reg,
70- const MachineRegisterInfo &MRI) {
70+ inline std::optional <APInt> matchConstant (Register Reg,
71+ const MachineRegisterInfo &MRI) {
7172 return getIConstantVRegVal (Reg, MRI);
7273}
7374
7475template <>
75- inline Optional <int64_t > matchConstant (Register Reg,
76- const MachineRegisterInfo &MRI) {
76+ inline std::optional <int64_t > matchConstant (Register Reg,
77+ const MachineRegisterInfo &MRI) {
7778 return getIConstantVRegSExtVal (Reg, MRI);
7879}
7980
@@ -97,18 +98,18 @@ inline ConstantMatch<int64_t> m_ICst(int64_t &Cst) {
9798}
9899
99100template <typename ConstT>
100- inline Optional <ConstT> matchConstantSplat (Register,
101- const MachineRegisterInfo &);
101+ inline std::optional <ConstT> matchConstantSplat (Register,
102+ const MachineRegisterInfo &);
102103
103104template <>
104- inline Optional <APInt> matchConstantSplat (Register Reg,
105- const MachineRegisterInfo &MRI) {
105+ inline std::optional <APInt> matchConstantSplat (Register Reg,
106+ const MachineRegisterInfo &MRI) {
106107 return getIConstantSplatVal (Reg, MRI);
107108}
108109
109110template <>
110- inline Optional <int64_t > matchConstantSplat (Register Reg,
111- const MachineRegisterInfo &MRI) {
111+ inline std::optional <int64_t >
112+ matchConstantSplat (Register Reg, const MachineRegisterInfo &MRI) {
112113 return getIConstantSplatSExtVal (Reg, MRI);
113114}
114115
@@ -139,34 +140,35 @@ inline ICstOrSplatMatch<int64_t> m_ICstOrSplat(int64_t &Cst) {
139140}
140141
141142struct GCstAndRegMatch {
142- Optional <ValueAndVReg> &ValReg;
143- GCstAndRegMatch (Optional <ValueAndVReg> &ValReg) : ValReg(ValReg) {}
143+ std::optional <ValueAndVReg> &ValReg;
144+ GCstAndRegMatch (std::optional <ValueAndVReg> &ValReg) : ValReg(ValReg) {}
144145 bool match (const MachineRegisterInfo &MRI, Register Reg) {
145146 ValReg = getIConstantVRegValWithLookThrough (Reg, MRI);
146147 return ValReg ? true : false ;
147148 }
148149};
149150
150- inline GCstAndRegMatch m_GCst (Optional <ValueAndVReg> &ValReg) {
151+ inline GCstAndRegMatch m_GCst (std::optional <ValueAndVReg> &ValReg) {
151152 return GCstAndRegMatch (ValReg);
152153}
153154
154155struct GFCstAndRegMatch {
155- Optional<FPValueAndVReg> &FPValReg;
156- GFCstAndRegMatch (Optional<FPValueAndVReg> &FPValReg) : FPValReg(FPValReg) {}
156+ std::optional<FPValueAndVReg> &FPValReg;
157+ GFCstAndRegMatch (std::optional<FPValueAndVReg> &FPValReg)
158+ : FPValReg(FPValReg) {}
157159 bool match (const MachineRegisterInfo &MRI, Register Reg) {
158160 FPValReg = getFConstantVRegValWithLookThrough (Reg, MRI);
159161 return FPValReg ? true : false ;
160162 }
161163};
162164
163- inline GFCstAndRegMatch m_GFCst (Optional <FPValueAndVReg> &FPValReg) {
165+ inline GFCstAndRegMatch m_GFCst (std::optional <FPValueAndVReg> &FPValReg) {
164166 return GFCstAndRegMatch (FPValReg);
165167}
166168
167169struct GFCstOrSplatGFCstMatch {
168- Optional <FPValueAndVReg> &FPValReg;
169- GFCstOrSplatGFCstMatch (Optional <FPValueAndVReg> &FPValReg)
170+ std::optional <FPValueAndVReg> &FPValReg;
171+ GFCstOrSplatGFCstMatch (std::optional <FPValueAndVReg> &FPValReg)
170172 : FPValReg(FPValReg) {}
171173 bool match (const MachineRegisterInfo &MRI, Register Reg) {
172174 return (FPValReg = getFConstantSplat (Reg, MRI)) ||
@@ -175,7 +177,7 @@ struct GFCstOrSplatGFCstMatch {
175177};
176178
177179inline GFCstOrSplatGFCstMatch
178- m_GFCstOrSplat (Optional <FPValueAndVReg> &FPValReg) {
180+ m_GFCstOrSplat (std::optional <FPValueAndVReg> &FPValReg) {
179181 return GFCstOrSplatGFCstMatch (FPValReg);
180182}
181183
0 commit comments