d19e8626da21c0290712aaeeeb80289dd6701c73
any struct that contains a mie_name cannot be stored in movable memory (i.e. any memory that may be re-allocated using realloc(), or whose contents may be moved to a different buffer). mie_names form part of a bst when they are added to a mie_name_map, and moving them after this happens will result in the bst pointers being invalidated. this causes some obscure and hard-to-debug memory errors. all structs that contain a mie_name (including named IR objects like mie_register and mie_block) are no longer stored directly in vectors. rather, vectors of pointers are used instead.
Table of Contents
About The Project
Mie is an extensible intermediate representation framework inspired by LLVM and MLIR. It is designed to accept high-level program representation from a compiler front-end, lower and optimise it into a flat stream of low-level instructions, and then convert it into a target-specific implementation.
(The name Mie is pronounced like "me", "bee", or "sea", and (despite the logo) is not pronounced like "my", "bye", or "pie")
License
Distributed under the BSD 3-Clause License. See LICENSE for more information.
Description
Languages
C
97.2%
CMake
1.8%
Vim Script
1%