mini-llvm 0.1.0
Loading...
Searching...
No Matches
ImmediateOperand.h
Go to the documentation of this file.
1// SPDX-License-Identifier: MIT
2
3#pragma once
4
5#include <memory>
6#include <utility>
7
9
10namespace mini_llvm::mir {
11
13public:
14 explicit ImmediateOperand(std::unique_ptr<Immediate> imm) : imm_(std::move(imm)) {}
15
16 const Immediate &operator*() const {
17 return *imm_;
18 }
19
20 const Immediate *operator->() const {
21 return &*imm_;
22 }
23
24 void set(std::unique_ptr<Immediate> imm) {
25 imm_ = std::move(imm);
26 }
27
28private:
29 std::unique_ptr<Immediate> imm_;
30};
31
32} // namespace mini_llvm::mir
void set(std::unique_ptr< Immediate > imm)
Definition ImmediateOperand.h:24
const Immediate & operator*() const
Definition ImmediateOperand.h:16
ImmediateOperand(std::unique_ptr< Immediate > imm)
Definition ImmediateOperand.h:14
const Immediate * operator->() const
Definition ImmediateOperand.h:20
Definition Immediate.h:15
Definition BasicBlock.h:22