Max Wash d19e8626da mie: stop using movable memory for mie_name instances.
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.
2026-01-12 10:40:57 +00:00
2026-01-11 14:51:49 +00:00
2025-11-16 20:48:54 +00:00
2025-11-16 20:48:54 +00:00

License


Logo

Mie

The Metacompute Instruction Engine
Explore the docs »

Report Bug · Request Feature

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
The Metacompute Instruction Engine
Readme BSD-3-Clause 824 KiB
Languages
C 97.2%
CMake 1.8%
Vim Script 1%