37 static auto From(const ::mlir::Type &type,
const std::shared_ptr<::mlir::ModuleOp> &module) -> std::shared_ptr<CIRType>;
47 std::string
store(
Tree &symbols)
const override;
60 size_t &
width() {
return _width; }
61 size_t width()
const {
return _width; }
65 std::string
store(
Tree &symbols)
const override;
77 size_t &
width() {
return _width; }
78 size_t width()
const {
return _width; }
80 std::string
store(
Tree &symbols)
const override;
87 std::shared_ptr<CIRType> _pointee;
90 explicit CIRPointerType(
const std::shared_ptr<CIRType> &type) : _pointee(type) {}
92 std::shared_ptr<CIRType> &
pointee() {
return _pointee; }
93 const std::shared_ptr<CIRType> &
pointee()
const {
return _pointee; }
95 std::string
store(
Tree &symbols)
const override;
102 std::deque<std::string> _path;
109 std::deque<std::string> &
path() {
return _path; }
110 const std::deque<std::string> &
path()
const {
return _path; }
111 size_t size() {
return _size; }
112 size_t size()
const {
return _size; }
114 size_t align()
const {
return _align; }
116 std::string
store(
Tree &symbols)
const override;
A tree struct for symbol tree. It's just a simple wrapper for root node.
A wrapper class of mlir::Type that serializes it into simple-and-plain text.
std::string store(Tree &symbols) const override
Stores this type into symbol tree if necessary and Returns reference string for this type.
CIRFloatType(const size_t width)
std::string store(Tree &symbols) const override
Stores this type into symbol tree if necessary and Returns reference string for this type.
std::string store(Tree &symbols) const override
Stores this type into symbol tree if necessary and Returns reference string for this type.
CIRIntegerType(size_t width, bool _signed)
std::string store(Tree &symbols) const override
Stores this type into symbol tree if necessary and Returns reference string for this type.
const std::shared_ptr< CIRType > & pointee() const
std::shared_ptr< CIRType > & pointee()
CIRPointerType(const std::shared_ptr< CIRType > &type)
std::string store(Tree &symbols) const override
Stores this type into symbol tree if necessary and Returns reference string for this type.
const std::deque< std::string > & path() const
CIRStructType(const std::deque< std::string > &path, const size_t size, const size_t align)
std::deque< std::string > & path()
static auto From(const ::mlir::Type &type, const std::shared_ptr<::mlir::ModuleOp > &module) -> std::shared_ptr< CIRType >
constexpr std::string Type