In an upcoming patch we would like to check if a regular base opcode has a corresponding VP opcode, so this changes the signature to return std::nullopt instead of LLVM_UNREACHABLE.
Where we previously relied on it to be unreachable, we just manually assert has_value() instead.
Details
Details
- Reviewers
fakepaper56 craig.topper frasercrmck reames
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Unit Tests
Event Timeline
| llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp | ||
|---|---|---|
| 936–937 | I think we're supposed to use operator* instead of value(). There were commits like this in December [lldb] llvm::Optional::value() && => operator*/operator->
std::optional::value() has undesired exception checking semantics and is
unavailable in older Xcode (see _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS). The
call sites block std::optional migration. | |
| llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp | ||
|---|---|---|
| 936–937 | Good shout. Hopefully we can still use has_value(), I've changed it to just manually assert it. | |
I think we're supposed to use operator* instead of value().
There were commits like this in December
[lldb] llvm::Optional::value() && => operator*/operator-> std::optional::value() has undesired exception checking semantics and is unavailable in older Xcode (see _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS). The call sites block std::optional migration.