mini-llvm 0.1.0
Loading...
Searching...
No Matches
Condition.h
Go to the documentation of this file.
1// SPDX-License-Identifier: MIT
2
3#pragma once
4
5#include <cstdlib>
6
7namespace mini_llvm::mir {
8
9enum class Condition {
10#define X(name, specifier, inverted) k##name,
11#include "mini-llvm/mir/Condition.def"
12#undef X
13};
14
15inline constexpr const char *specifier(Condition cond) {
16 switch (cond) {
17#define X(name, specifier, inverted) case Condition::k##name: return specifier;
18#include "mini-llvm/mir/Condition.def"
19#undef X
20 default:
21 abort();
22 }
23}
24
25inline constexpr Condition inverted(Condition cond) {
26 switch (cond) {
27#define X(name, specifier, inverted) case Condition::k##name: return Condition::k##inverted;
28#include "mini-llvm/mir/Condition.def"
29#undef X
30 default:
31 abort();
32 }
33}
34
35} // namespace mini_llvm::mir
Definition BasicBlock.h:22
constexpr const char * specifier(Condition cond)
Definition Condition.h:15
Condition
Definition Condition.h:9
constexpr Condition inverted(Condition cond)
Definition Condition.h:25