3 #include "utils/BumpAllocator.h"
8 class ConstantNullPointer;
16 ContextPImpl(BumpAllocator& alloc,
Type*
const pointerType,
17 Type*
const voidType,
Type*
const labelType,
18 ConstantNullPointer*
const nullPointer)
19 : functionTypes(alloc),
23 pointerType(pointerType),
26 nullPointer(nullPointer) {}
29 std::pmr::vector<FunctionType*> functionTypes;
31 std::pmr::vector<IntegerType*> integerTypes;
32 std::pmr::vector<StructType*> structTypes;
33 Type*
const pointerType;
35 Type*
const labelType;
36 ConstantNullPointer*
const nullPointer;
41 Context(BumpAllocator& alloc);
42 Context(
const Context&) =
delete;
47 BumpAllocator& alloc() {
return alloc_; }
50 unsigned getNextValueID() {
return value_counter++; }
53 BumpAllocator& alloc_;
55 unsigned value_counter = 0;