[Flint] adding IR lowering and printer
Mirror Gitea refs to GitHub / mirror (push) Successful in 18s
Test / build_and_test (push) Successful in 6m17s
Build / build (push) Successful in 7m51s

[IR] switching from "passes" to "transformers" for clarity
This commit is contained in:
2026-07-29 15:39:41 +02:00
parent 045497b264
commit 948e8b86a3
27 changed files with 3453 additions and 1816 deletions
+4 -4
View File
@@ -19,8 +19,8 @@ const DominanceUseContext = struct {
pub fn validate(module: *const module_ir.Module, function_id: ids.FunctionId) Error!void {
var analysis = cfg.init(module.backingAllocator(), module, function_id) catch |err| switch (err) {
error.OutOfMemory => return error.OutOfMemory,
else => return error.InvalidBlock,
std.mem.Allocator.Error.OutOfMemory => return Error.OutOfMemory,
else => return Error.InvalidBlock,
};
defer analysis.deinit();
@@ -41,7 +41,7 @@ pub fn validate(module: *const module_ir.Module, function_id: ids.FunctionId) Er
instruction.operation.visitValueUses(&context, checkDominanceUse);
if (!context.valid)
return error.DefinitionDoesNotDominateUse;
return Error.DefinitionDoesNotDominateUse;
}
var context: DominanceUseContext = .{
@@ -55,7 +55,7 @@ pub fn validate(module: *const module_ir.Module, function_id: ids.FunctionId) Er
module_ir.visitTerminatorValueUses(block.terminator.?, &context, checkDominanceUse);
if (!context.valid)
return error.DefinitionDoesNotDominateUse;
return Error.DefinitionDoesNotDominateUse;
}
}