11#include "llvm/ADT/STLExtras.h"
12#include "llvm/ADT/StringRef.h"
13#include "llvm/Support/Allocator.h"
14#include "llvm/Support/ErrorHandling.h"
25 void *Mem = Alloc.Allocate(
sizeof(Formula) +
26 Operands.size() *
sizeof(Operands.front()),
28 Formula *
Result =
new (Mem) Formula();
34 llvm::copy(Operands,
reinterpret_cast<const Formula **
>(
Result + 1));
54 llvm_unreachable(
"unhandled formula kind");
59 if (
auto It = Names->find(
getAtom()); It != Names->end()) {
71 OS << (
literal() ?
"true" :
"false");
74 llvm_unreachable(
"unhandled formula kind");
89 llvm_unreachable(
"unhandled formula arity");
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.
Dataflow Directional Tag Classes.
static llvm::StringLiteral sigil(Formula::Kind K)
@ Result
The result type of a method or function.