* remove the -Ddump-zir thing. that's handled through --verbose-ir * rework Fn to have an is_inline flag without requiring any more memory on the heap per function. * implement a rough first version of dumping typed zir (tzir) which is a lot more helpful for debugging than what we had before. We don't have a way to parse it though. * keep track of whether the inline-ness of a function changes because if it does we have to go update callsites. * add compile error for inline and export used together. inline function calls and comptime function calls are implemented the same way. A block instruction is set up to capture the result, and then a scope is set up that has a flag for is_comptime and some state if the scope is being inlined. when analyzing `ret` instructions, zig looks for inlining state in the scope, and if found, treats `ret` as a `break` instruction instead, with the target block being the one set up at the inline callsite. Follow-up items: * Complete out the debug TZIR dumping code. * Don't redundantly generate ZIR for each inline/comptime function call. Instead we should add a new state enum tag to Fn. * comptime and inlining branch quotas. * Add more test cases.
8 lines
305 B
Zig
8 lines
305 B
Zig
pub const have_llvm = true;
|
|
pub const version: [:0]const u8 = "@ZIG_VERSION@";
|
|
pub const semver = try @import("std").SemanticVersion.parse(version);
|
|
pub const log_scopes: []const []const u8 = &[_][]const u8{};
|
|
pub const enable_tracy = false;
|
|
pub const is_stage1 = true;
|
|
pub const skip_non_native = false;
|