diff --git a/crates/mun_codegen/Cargo.toml b/crates/mun_codegen/Cargo.toml index 0b7020d76..696d1b004 100644 --- a/crates/mun_codegen/Cargo.toml +++ b/crates/mun_codegen/Cargo.toml @@ -15,6 +15,7 @@ categories = ["Game development", "Mun"] [dependencies] abi = { version = "=0.2.0", path = "../mun_abi", package = "mun_abi" } hir = { version = "=0.2.0", path = "../mun_hir", package = "mun_hir" } +itertools = "0.9.0" mun_codegen_macros = { path = "../mun_codegen_macros", package = "mun_codegen_macros" } mun_target = { version = "=0.2.0", path = "../mun_target" } mun_lld = { version = "=80.0.0", path = "../mun_lld" } diff --git a/crates/mun_codegen/src/code_gen/symbols.rs b/crates/mun_codegen/src/code_gen/symbols.rs index 2821ec8a0..14334ffc4 100644 --- a/crates/mun_codegen/src/code_gen/symbols.rs +++ b/crates/mun_codegen/src/code_gen/symbols.rs @@ -301,11 +301,11 @@ fn gen_get_info_fn<'ink>( }; // Get access to the structs internals - let symbols_addr = unsafe { builder.build_struct_gep(result_ptr, 0, "symbols") }; - let dispatch_table_addr = unsafe { builder.build_struct_gep(result_ptr, 1, "dispatch_table") }; - let dependencies_addr = unsafe { builder.build_struct_gep(result_ptr, 2, "dependencies") }; + let symbols_addr = unsafe { builder.build_struct_gep(result_ptr, 1, "symbols") }; + let dispatch_table_addr = unsafe { builder.build_struct_gep(result_ptr, 3, "dispatch_table") }; + let dependencies_addr = unsafe { builder.build_struct_gep(result_ptr, 5, "dependencies") }; let num_dependencies_addr = - unsafe { builder.build_struct_gep(result_ptr, 3, "num_dependencies") }; + unsafe { builder.build_struct_gep(result_ptr, 7, "num_dependencies") }; // Assign the struct values one by one. builder.build_store(symbols_addr, module_info.as_value(context).value); diff --git a/crates/mun_codegen/src/ir/types.rs b/crates/mun_codegen/src/ir/types.rs index 829cf23ad..324ee3ef5 100644 --- a/crates/mun_codegen/src/ir/types.rs +++ b/crates/mun_codegen/src/ir/types.rs @@ -1,4 +1,5 @@ use crate::value::{AsValue, IrValueContext, SizedValueType, TransparentValue, Value}; +use itertools::Itertools; use mun_codegen_macros::AsValue; impl<'ink> TransparentValue<'ink> for abi::Guid { diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_f32.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_f32.snap index bcfd170b7..183bb73a9 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_f32.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_f32.snap @@ -6,7 +6,7 @@ expression: "pub fn add(a: f32, b: f32) -> f32 { a + b }\npub fn subtract(a: f32 ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -45,9 +45,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::f32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"P\19b7\A8k\F2\81P\FB\83\F5P\B0\82!", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"P\19b7\A8k\F2\81P\FB\83\F5P\B0\82!", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_f64.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_f64.snap index 25c7e59be..9897f61d3 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_f64.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_f64.snap @@ -6,7 +6,7 @@ expression: "pub fn add(a: f64, b: f64) -> f64 { a + b }\npub fn subtract(a: f64 ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -45,9 +45,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::f64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"`\DBF\9C?YJ%G\AD4\9F\D5\92%A", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"`\DBF\9C?YJ%G\AD4\9F\D5\92%A", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i128.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i128.snap index 1e9ba38cd..1f9eab39e 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i128.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i128.snap @@ -6,7 +6,7 @@ expression: "pub fn add(a: i128, b: i128) -> i128 { a + b }\npub fn subtract(a: ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -45,9 +45,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::i128\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\BDkp\09RRM\EBc\02\A0\DB47\A7\E3", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 128, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\BDkp\09RRM\EBc\02\A0\DB47\A7\E3", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 128, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i16.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i16.snap index 7cd070826..3ab9ed0bd 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i16.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i16.snap @@ -6,7 +6,7 @@ expression: "pub fn add(a: i16, b: i16) -> i16 { a + b }\npub fn subtract(a: i16 ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -45,9 +45,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i16\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\05\CD|\F8Bv\D8\B1\E8\8B\8C\D8\8D\B5\89\B0", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 16, i8 2, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\05\CD|\F8Bv\D8\B1\E8\8B\8C\D8\8D\B5\89\B0", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 16, [0 x i64] zeroinitializer, i8 2, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i32.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i32.snap index b62aac7d2..8b2734967 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i32.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i32.snap @@ -6,7 +6,7 @@ expression: "pub fn add(a: i32, b: i32) -> i32 { a + b }\npub fn subtract(a: i32 ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -45,9 +45,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i64.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i64.snap index e5a3e5ae5..f970675ac 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i64.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i64.snap @@ -6,7 +6,7 @@ expression: "pub fn add(a: i64, b: i64) -> i64 { a + b }\npub fn subtract(a: i64 ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -45,9 +45,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"G\13;t\97j8\18\D7M\83`\1D\C8\19%", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"G\13;t\97j8\18\D7M\83`\1D\C8\19%", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i8.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i8.snap index e625766a8..c3336f4a2 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i8.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_i8.snap @@ -6,7 +6,7 @@ expression: "pub fn add(a: i8, b: i8) -> i8 { a + b }\npub fn subtract(a: i8, b: ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -45,9 +45,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [9 x i8] c"core::i8\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\EF\C4\B1Z\E7\12\B1\91q\F1\0B\80U\FC\A6\0F", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), i32 8, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\EF\C4\B1Z\E7\12\B1\91q\F1\0B\80U\FC\A6\0F", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 8, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u128.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u128.snap index bb5ac2d6c..7d336287e 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u128.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u128.snap @@ -6,7 +6,7 @@ expression: "pub fn add(a: u128, b: u128) -> u128 { a + b }\npub fn subtract(a: ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -45,9 +45,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::u128\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\E67\1BU\E9k\95\93d\14}\1C\96S\95\F0", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 128, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\E67\1BU\E9k\95\93d\14}\1C\96S\95\F0", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 128, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u16.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u16.snap index c47acf21e..dfac6492b 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u16.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u16.snap @@ -6,7 +6,7 @@ expression: "pub fn add(a: u16, b: u16) -> u16 { a + b }\npub fn subtract(a: u16 ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -45,9 +45,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u16\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"0\01\BC\BBK\E0\F2\7F&l\01\CD|q\F2\B3", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 16, i8 2, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"0\01\BC\BBK\E0\F2\7F&l\01\CD|q\F2\B3", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 16, [0 x i64] zeroinitializer, i8 2, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u32.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u32.snap index ab0458f2d..8645f1ea1 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u32.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u32.snap @@ -6,7 +6,7 @@ expression: "pub fn add(a: u32, b: u32) -> u32 { a + b }\npub fn subtract(a: u32 ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -45,9 +45,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"daz5d\A6\BE\88\81=&Y\A1+\C6\1D", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"daz5d\A6\BE\88\81=&Y\A1+\C6\1D", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u64.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u64.snap index ae56d4df6..a7aca9026 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u64.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u64.snap @@ -6,7 +6,7 @@ expression: "pub fn add(a: u64, b: u64) -> u64 { a + b }\npub fn subtract(a: u64 ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -45,9 +45,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\A6\E7g \D1\8B\1Aq`\1F\1E\07\BB5@q", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\A6\E7g \D1\8B\1Aq`\1F\1E\07\BB5@q", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u8.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u8.snap index 2af16b9f2..b33ced227 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u8.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__arithmetic_op_u8.snap @@ -6,7 +6,7 @@ expression: "pub fn add(a: u8, b: u8) -> u8 { a + b }\npub fn subtract(a: u8, b: ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -45,9 +45,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [9 x i8] c"core::u8\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\A0y\A7S\B6(n\F7f&H\E1\F9\AD\04>", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), i32 8, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\A0y\A7S\B6(n\F7f&H\E1\F9\AD\04>", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 8, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_bool.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_bool.snap index f605289b6..88e012c1e 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_bool.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_bool.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_bitand(a: bool, b: bool) -> bool {\n a &= b;\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -33,9 +33,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::bool\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 1, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 1, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i128.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i128.snap index 92c6605c1..e3e5a2f68 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i128.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i128.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_bitand(a: i128, b: i128) -> i128 {\n a &= b;\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -33,9 +33,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::i128\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\BDkp\09RRM\EBc\02\A0\DB47\A7\E3", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 128, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\BDkp\09RRM\EBc\02\A0\DB47\A7\E3", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 128, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i16.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i16.snap index ae10666a5..7a239de95 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i16.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i16.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_bitand(a: i16, b: i16) -> i16 {\n a &= b;\n a\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -33,9 +33,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i16\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\05\CD|\F8Bv\D8\B1\E8\8B\8C\D8\8D\B5\89\B0", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 16, i8 2, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\05\CD|\F8Bv\D8\B1\E8\8B\8C\D8\8D\B5\89\B0", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 16, [0 x i64] zeroinitializer, i8 2, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i32.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i32.snap index 015c83305..3b2d7818c 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i32.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i32.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_bitand(a: i32, b: i32) -> i32 {\n a &= b;\n a\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -33,9 +33,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i64.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i64.snap index c0d3d0300..0ae413300 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i64.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i64.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_bitand(a: i64, b: i64) -> i64 {\n a &= b;\n a\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -33,9 +33,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"G\13;t\97j8\18\D7M\83`\1D\C8\19%", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"G\13;t\97j8\18\D7M\83`\1D\C8\19%", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i8.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i8.snap index 83dfa1cd3..30bf2bf1d 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i8.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_i8.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_bitand(a: i8, b: i8) -> i8 {\n a &= b;\n a\n}\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -33,9 +33,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [9 x i8] c"core::i8\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\EF\C4\B1Z\E7\12\B1\91q\F1\0B\80U\FC\A6\0F", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), i32 8, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\EF\C4\B1Z\E7\12\B1\91q\F1\0B\80U\FC\A6\0F", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 8, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u128.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u128.snap index 6d7383fa4..7074adabf 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u128.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u128.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_bitand(a: u128, b: u128) -> u128 {\n a &= b;\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -33,9 +33,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::u128\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\E67\1BU\E9k\95\93d\14}\1C\96S\95\F0", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 128, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\E67\1BU\E9k\95\93d\14}\1C\96S\95\F0", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 128, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u16.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u16.snap index 59d497ac0..3c1c4101d 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u16.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u16.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_bitand(a: u16, b: u16) -> u16 {\n a &= b;\n a\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -33,9 +33,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u16\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"0\01\BC\BBK\E0\F2\7F&l\01\CD|q\F2\B3", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 16, i8 2, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"0\01\BC\BBK\E0\F2\7F&l\01\CD|q\F2\B3", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 16, [0 x i64] zeroinitializer, i8 2, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u32.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u32.snap index 760d576ca..1ab61bb7b 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u32.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u32.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_bitand(a: u32, b: u32) -> u32 {\n a &= b;\n a\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -33,9 +33,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"daz5d\A6\BE\88\81=&Y\A1+\C6\1D", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"daz5d\A6\BE\88\81=&Y\A1+\C6\1D", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u64.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u64.snap index af992b59b..488f1f8a6 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u64.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u64.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_bitand(a: u64, b: u64) -> u64 {\n a &= b;\n a\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -33,9 +33,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\A6\E7g \D1\8B\1Aq`\1F\1E\07\BB5@q", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\A6\E7g \D1\8B\1Aq`\1F\1E\07\BB5@q", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u8.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u8.snap index a4f794a2c..77de598c4 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u8.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_bit_op_u8.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_bitand(a: u8, b: u8) -> u8 {\n a &= b;\n a\n}\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -33,9 +33,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [9 x i8] c"core::u8\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\A0y\A7S\B6(n\F7f&H\E1\F9\AD\04>", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), i32 8, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\A0y\A7S\B6(n\F7f&H\E1\F9\AD\04>", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 8, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i128.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i128.snap index b9ed809a2..02e9869dc 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i128.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i128.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_leftshift(a: i128, b: i128) -> i128 {\n a <<= b;\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::i128\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\BDkp\09RRM\EBc\02\A0\DB47\A7\E3", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 128, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\BDkp\09RRM\EBc\02\A0\DB47\A7\E3", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 128, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i16.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i16.snap index cc91345ee..fb92f134a 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i16.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i16.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_leftshift(a: i16, b: i16) -> i16 {\n a <<= b;\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i16\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\05\CD|\F8Bv\D8\B1\E8\8B\8C\D8\8D\B5\89\B0", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 16, i8 2, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\05\CD|\F8Bv\D8\B1\E8\8B\8C\D8\8D\B5\89\B0", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 16, [0 x i64] zeroinitializer, i8 2, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i32.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i32.snap index 77e9426a6..9875dc6fd 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i32.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i32.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_leftshift(a: i32, b: i32) -> i32 {\n a <<= b;\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i64.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i64.snap index 4dc779205..f18c1a02f 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i64.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i64.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_leftshift(a: i64, b: i64) -> i64 {\n a <<= b;\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"G\13;t\97j8\18\D7M\83`\1D\C8\19%", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"G\13;t\97j8\18\D7M\83`\1D\C8\19%", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i8.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i8.snap index 5e6a64195..8296e7414 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i8.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_i8.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_leftshift(a: i8, b: i8) -> i8 {\n a <<= b;\n a\ ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [9 x i8] c"core::i8\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\EF\C4\B1Z\E7\12\B1\91q\F1\0B\80U\FC\A6\0F", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), i32 8, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\EF\C4\B1Z\E7\12\B1\91q\F1\0B\80U\FC\A6\0F", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 8, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u128.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u128.snap index 0765fc638..ea5d2e8b0 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u128.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u128.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_leftshift(a: u128, b: u128) -> u128 {\n a <<= b;\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::u128\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\E67\1BU\E9k\95\93d\14}\1C\96S\95\F0", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 128, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\E67\1BU\E9k\95\93d\14}\1C\96S\95\F0", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 128, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u16.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u16.snap index be6c4b2de..a56309c8b 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u16.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u16.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_leftshift(a: u16, b: u16) -> u16 {\n a <<= b;\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u16\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"0\01\BC\BBK\E0\F2\7F&l\01\CD|q\F2\B3", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 16, i8 2, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"0\01\BC\BBK\E0\F2\7F&l\01\CD|q\F2\B3", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 16, [0 x i64] zeroinitializer, i8 2, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u32.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u32.snap index 414638cbc..ae89f42d0 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u32.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u32.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_leftshift(a: u32, b: u32) -> u32 {\n a <<= b;\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"daz5d\A6\BE\88\81=&Y\A1+\C6\1D", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"daz5d\A6\BE\88\81=&Y\A1+\C6\1D", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u64.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u64.snap index 63a1e623e..06f3e90b1 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u64.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u64.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_leftshift(a: u64, b: u64) -> u64 {\n a <<= b;\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\A6\E7g \D1\8B\1Aq`\1F\1E\07\BB5@q", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\A6\E7g \D1\8B\1Aq`\1F\1E\07\BB5@q", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u8.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u8.snap index f3fd32152..2992fb132 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u8.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assign_shift_op_u8.snap @@ -6,7 +6,7 @@ expression: "pub fn assign_leftshift(a: u8, b: u8) -> u8 {\n a <<= b;\n a\ ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [9 x i8] c"core::u8\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\A0y\A7S\B6(n\F7f&H\E1\F9\AD\04>", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), i32 8, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\A0y\A7S\B6(n\F7f&H\E1\F9\AD\04>", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 8, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_bool.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_bool.snap index 93a0bf7b9..e7206d6d1 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_bool.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_bool.snap @@ -6,7 +6,7 @@ expression: "pub fn assign(a: bool, b: bool) -> bool {\n a = b;\n a\n}\n// ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -20,9 +20,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::bool\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 1, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 1, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_f32.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_f32.snap index 934eeaade..970ade724 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_f32.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_f32.snap @@ -6,7 +6,7 @@ expression: "pub fn assign(a: f32, b: f32) -> f32 {\n a = b;\n a\n}\npub f ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -50,9 +50,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::f32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"P\19b7\A8k\F2\81P\FB\83\F5P\B0\82!", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"P\19b7\A8k\F2\81P\FB\83\F5P\B0\82!", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_f64.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_f64.snap index abc498a44..589a06764 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_f64.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_f64.snap @@ -6,7 +6,7 @@ expression: "pub fn assign(a: f64, b: f64) -> f64 {\n a = b;\n a\n}\npub f ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -50,9 +50,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::f64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"`\DBF\9C?YJ%G\AD4\9F\D5\92%A", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"`\DBF\9C?YJ%G\AD4\9F\D5\92%A", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i128.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i128.snap index 93a3aae7e..937e7051c 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i128.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i128.snap @@ -6,7 +6,7 @@ expression: "pub fn assign(a: i128, b: i128) -> i128 {\n a = b;\n a\n}\npu ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -50,9 +50,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::i128\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\BDkp\09RRM\EBc\02\A0\DB47\A7\E3", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 128, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\BDkp\09RRM\EBc\02\A0\DB47\A7\E3", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 128, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i16.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i16.snap index dc8be9a13..076623600 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i16.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i16.snap @@ -6,7 +6,7 @@ expression: "pub fn assign(a: i16, b: i16) -> i16 {\n a = b;\n a\n}\npub f ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -50,9 +50,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i16\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\05\CD|\F8Bv\D8\B1\E8\8B\8C\D8\8D\B5\89\B0", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 16, i8 2, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\05\CD|\F8Bv\D8\B1\E8\8B\8C\D8\8D\B5\89\B0", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 16, [0 x i64] zeroinitializer, i8 2, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i32.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i32.snap index 657749a11..8d9849027 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i32.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i32.snap @@ -6,7 +6,7 @@ expression: "pub fn assign(a: i32, b: i32) -> i32 {\n a = b;\n a\n}\npub f ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -50,9 +50,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i64.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i64.snap index 57b12966f..5ccee6db2 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i64.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i64.snap @@ -6,7 +6,7 @@ expression: "pub fn assign(a: i64, b: i64) -> i64 {\n a = b;\n a\n}\npub f ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -50,9 +50,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"G\13;t\97j8\18\D7M\83`\1D\C8\19%", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"G\13;t\97j8\18\D7M\83`\1D\C8\19%", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i8.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i8.snap index 01e1bc273..279241b3d 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i8.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_i8.snap @@ -6,7 +6,7 @@ expression: "pub fn assign(a: i8, b: i8) -> i8 {\n a = b;\n a\n}\npub fn a ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -50,9 +50,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [9 x i8] c"core::i8\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\EF\C4\B1Z\E7\12\B1\91q\F1\0B\80U\FC\A6\0F", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), i32 8, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\EF\C4\B1Z\E7\12\B1\91q\F1\0B\80U\FC\A6\0F", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 8, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_struct.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_struct.snap index a2b45f5e4..c3eed05d4 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_struct.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_struct.snap @@ -7,7 +7,7 @@ expression: "struct(value) Value(i32, i32);\nstruct(gc) Heap(f64, f64);\n\npub f source_filename = "main.mun" %DispatchTable = type { i8** (i8*, i8*)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> %Value = type { i32, i32 } %Heap = type { double, double } @@ -51,34 +51,34 @@ body: source_filename = "group_name" %DispatchTable = type { i8** (i8*, i8*)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } -%"mun_codegen::ir::types::StructInfo" = type { i8**, %"mun_codegen::ir::types::TypeInfo"**, i16*, i16, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> +%"mun_codegen::ir::types::StructInfo" = type <{ [0 x i64], i8**, [0 x i64], %"mun_codegen::ir::types::TypeInfo"**, [0 x i64], i16*, [0 x i64], i16, [0 x i64], i8, [5 x i8] }> @dispatchTable = global %DispatchTable zeroinitializer @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [6 x i8] c"Value\00" @"struct_info::::field_names.0" = private unnamed_addr constant [2 x i8] c"0\00" @"struct_info::::field_names.1" = private unnamed_addr constant [2 x i8] c"1\00" @"struct_info::::field_names" = private unnamed_addr constant [2 x i8*] [i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.0", i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.1", i32 0, i32 0)] @"struct_info::::field_types" = private unnamed_addr constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::"] @"struct_info::::field_offsets" = private unnamed_addr constant [2 x i16] [i16 0, i16 4] -@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"(3\1C%q\83\13+L\A6Q\F7\1DX\A6\9B", i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 4, i8 1 }, %"mun_codegen::ir::types::StructInfo" { i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @"struct_info::::field_names", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([2 x %"mun_codegen::ir::types::TypeInfo"*], [2 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), i16* getelementptr inbounds ([2 x i16], [2 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), i16 2, i8 1 } } +@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"(3\1C%q\83\13+L\A6Q\F7\1DX\A6\9B", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 1, [1 x i16] zeroinitializer }>, %"mun_codegen::ir::types::StructInfo" <{ [0 x i64] zeroinitializer, i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @"struct_info::::field_names", i32 0, i32 0), [0 x i64] zeroinitializer, %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([2 x %"mun_codegen::ir::types::TypeInfo"*], [2 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), [0 x i64] zeroinitializer, i16* getelementptr inbounds ([2 x i16], [2 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), [0 x i64] zeroinitializer, i16 2, [0 x i64] zeroinitializer, i8 1, [5 x i8] zeroinitializer }> } @"type_info::::name" = private unnamed_addr constant [5 x i8] c"Heap\00" @"struct_info::::field_names.0" = private unnamed_addr constant [2 x i8] c"0\00" @"struct_info::::field_names.1" = private unnamed_addr constant [2 x i8] c"1\00" @"struct_info::::field_names" = private unnamed_addr constant [2 x i8*] [i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.0", i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.1", i32 0, i32 0)] @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::f64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"`\DBF\9C?YJ%G\AD4\9F\D5\92%A", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"`\DBF\9C?YJ%G\AD4\9F\D5\92%A", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"struct_info::::field_types" = private unnamed_addr constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::"] @"struct_info::::field_offsets" = private unnamed_addr constant [2 x i16] [i16 0, i16 8] -@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"1\1CC\F80{\17\AFq\94\89\FB4\AC\A8\F3", i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"type_info::::name", i32 0, i32 0), i32 128, i8 8, i8 1 }, %"mun_codegen::ir::types::StructInfo" { i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @"struct_info::::field_names", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([2 x %"mun_codegen::ir::types::TypeInfo"*], [2 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), i16* getelementptr inbounds ([2 x i16], [2 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), i16 2, i8 0 } } +@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"1\1CC\F80{\17\AFq\94\89\FB4\AC\A8\F3", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 128, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 1, [1 x i16] zeroinitializer }>, %"mun_codegen::ir::types::StructInfo" <{ [0 x i64] zeroinitializer, i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @"struct_info::::field_names", i32 0, i32 0), [0 x i64] zeroinitializer, %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([2 x %"mun_codegen::ir::types::TypeInfo"*], [2 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), [0 x i64] zeroinitializer, i16* getelementptr inbounds ([2 x i16], [2 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), [0 x i64] zeroinitializer, i16 2, [0 x i64] zeroinitializer, i8 0, [5 x i8] zeroinitializer }> } @"type_info::<*const TypeInfo>::name" = private unnamed_addr constant [16 x i8] c"*const TypeInfo\00" -@"type_info::<*const TypeInfo>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"=\A1-\1F\C2\A7\88`d\90\F4\B5\BEE}x", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*const TypeInfo>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*const TypeInfo>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"=\A1-\1F\C2\A7\88`d\90\F4\B5\BEE}x", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*const TypeInfo>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::<*const *mut core::void>::name" = private unnamed_addr constant [23 x i8] c"*const *mut core::void\00" -@"type_info::<*const *mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\C5fO\BD\84\DF\06\BFd+\B1\9Abv\CE\00", i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"type_info::<*const *mut core::void>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*const *mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\C5fO\BD\84\DF\06\BFd+\B1\9Abv\CE\00", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"type_info::<*const *mut core::void>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::<*mut core::void>::name" = private unnamed_addr constant [16 x i8] c"*mut core::void\00" -@"type_info::<*mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\F0Y\22\FC\95\9E\7F\CE\08T\B1\A2\CD\A7\FAz", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*mut core::void>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\F0Y\22\FC\95\9E\7F\CE\08T\B1\A2\CD\A7\FAz", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*mut core::void>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [7 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*const TypeInfo>", %"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*const *mut core::void>", %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*mut core::void>"] @allocatorHandle = unnamed_addr global i8* null diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u128.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u128.snap index e0ef33d09..4c6a284a5 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u128.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u128.snap @@ -6,7 +6,7 @@ expression: "pub fn assign(a: u128, b: u128) -> u128 {\n a = b;\n a\n}\npu ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -50,9 +50,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::u128\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\E67\1BU\E9k\95\93d\14}\1C\96S\95\F0", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 128, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\E67\1BU\E9k\95\93d\14}\1C\96S\95\F0", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 128, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u16.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u16.snap index 65718baa2..5d4ab1d5a 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u16.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u16.snap @@ -6,7 +6,7 @@ expression: "pub fn assign(a: u16, b: u16) -> u16 {\n a = b;\n a\n}\npub f ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -50,9 +50,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u16\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"0\01\BC\BBK\E0\F2\7F&l\01\CD|q\F2\B3", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 16, i8 2, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"0\01\BC\BBK\E0\F2\7F&l\01\CD|q\F2\B3", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 16, [0 x i64] zeroinitializer, i8 2, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u32.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u32.snap index f8ed6686b..935137d40 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u32.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u32.snap @@ -6,7 +6,7 @@ expression: "pub fn assign(a: u32, b: u32) -> u32 {\n a = b;\n a\n}\npub f ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -50,9 +50,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"daz5d\A6\BE\88\81=&Y\A1+\C6\1D", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"daz5d\A6\BE\88\81=&Y\A1+\C6\1D", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u64.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u64.snap index 31686e7bf..86273ed49 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u64.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u64.snap @@ -6,7 +6,7 @@ expression: "pub fn assign(a: u64, b: u64) -> u64 {\n a = b;\n a\n}\npub f ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -50,9 +50,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\A6\E7g \D1\8B\1Aq`\1F\1E\07\BB5@q", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\A6\E7g \D1\8B\1Aq`\1F\1E\07\BB5@q", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u8.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u8.snap index 801512206..ea6553d31 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u8.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__assignment_op_u8.snap @@ -6,7 +6,7 @@ expression: "pub fn assign(a: u8, b: u8) -> u8 {\n a = b;\n a\n}\npub fn a ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -50,9 +50,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [9 x i8] c"core::u8\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\A0y\A7S\B6(n\F7f&H\E1\F9\AD\04>", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), i32 8, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\A0y\A7S\B6(n\F7f&H\E1\F9\AD\04>", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 8, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_bool.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_bool.snap index b71ad2af9..6420d9ca1 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_bool.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_bool.snap @@ -6,7 +6,7 @@ expression: "pub fn not(a: bool) -> bool { !a }\npub fn bitand(a: bool, b: bool) ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -39,9 +39,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::bool\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 1, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 1, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i128.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i128.snap index bf25bc396..ea30b2a57 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i128.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i128.snap @@ -6,7 +6,7 @@ expression: "pub fn not(a: i128) -> i128 { !a }\npub fn bitand(a: i128, b: i128) ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -39,9 +39,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::i128\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\BDkp\09RRM\EBc\02\A0\DB47\A7\E3", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 128, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\BDkp\09RRM\EBc\02\A0\DB47\A7\E3", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 128, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i16.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i16.snap index bd2433cf6..e57fcba7d 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i16.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i16.snap @@ -6,7 +6,7 @@ expression: "pub fn not(a: i16) -> i16 { !a }\npub fn bitand(a: i16, b: i16) -> ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -39,9 +39,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i16\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\05\CD|\F8Bv\D8\B1\E8\8B\8C\D8\8D\B5\89\B0", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 16, i8 2, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\05\CD|\F8Bv\D8\B1\E8\8B\8C\D8\8D\B5\89\B0", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 16, [0 x i64] zeroinitializer, i8 2, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i32.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i32.snap index ae6d41140..70014dd3a 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i32.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i32.snap @@ -6,7 +6,7 @@ expression: "pub fn not(a: i32) -> i32 { !a }\npub fn bitand(a: i32, b: i32) -> ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -39,9 +39,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i64.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i64.snap index a98e0b22f..441ff4912 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i64.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i64.snap @@ -6,7 +6,7 @@ expression: "pub fn not(a: i64) -> i64 { !a }\npub fn bitand(a: i64, b: i64) -> ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -39,9 +39,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"G\13;t\97j8\18\D7M\83`\1D\C8\19%", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"G\13;t\97j8\18\D7M\83`\1D\C8\19%", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i8.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i8.snap index 657d961d5..49570906b 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i8.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_i8.snap @@ -6,7 +6,7 @@ expression: "pub fn not(a: i8) -> i8 { !a }\npub fn bitand(a: i8, b: i8) -> i8 { ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -39,9 +39,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [9 x i8] c"core::i8\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\EF\C4\B1Z\E7\12\B1\91q\F1\0B\80U\FC\A6\0F", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), i32 8, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\EF\C4\B1Z\E7\12\B1\91q\F1\0B\80U\FC\A6\0F", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 8, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u128.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u128.snap index 7bf46fe84..4be255ac7 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u128.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u128.snap @@ -6,7 +6,7 @@ expression: "pub fn not(a: u128) -> u128 { !a }\npub fn bitand(a: u128, b: u128) ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -39,9 +39,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::u128\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\E67\1BU\E9k\95\93d\14}\1C\96S\95\F0", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 128, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\E67\1BU\E9k\95\93d\14}\1C\96S\95\F0", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 128, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u16.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u16.snap index a99396013..ea0b54a03 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u16.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u16.snap @@ -6,7 +6,7 @@ expression: "pub fn not(a: u16) -> u16 { !a }\npub fn bitand(a: u16, b: u16) -> ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -39,9 +39,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u16\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"0\01\BC\BBK\E0\F2\7F&l\01\CD|q\F2\B3", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 16, i8 2, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"0\01\BC\BBK\E0\F2\7F&l\01\CD|q\F2\B3", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 16, [0 x i64] zeroinitializer, i8 2, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u32.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u32.snap index 5106e8111..d64db2bcf 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u32.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u32.snap @@ -6,7 +6,7 @@ expression: "pub fn not(a: u32) -> u32 { !a }\npub fn bitand(a: u32, b: u32) -> ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -39,9 +39,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"daz5d\A6\BE\88\81=&Y\A1+\C6\1D", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"daz5d\A6\BE\88\81=&Y\A1+\C6\1D", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u64.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u64.snap index d59a5e38b..bb900cb8f 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u64.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u64.snap @@ -6,7 +6,7 @@ expression: "pub fn not(a: u64) -> u64 { !a }\npub fn bitand(a: u64, b: u64) -> ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -39,9 +39,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\A6\E7g \D1\8B\1Aq`\1F\1E\07\BB5@q", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\A6\E7g \D1\8B\1Aq`\1F\1E\07\BB5@q", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u8.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u8.snap index 07df38e86..a001afa84 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u8.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__bit_op_u8.snap @@ -6,7 +6,7 @@ expression: "pub fn not(a: u8) -> u8 { !a }\npub fn bitand(a: u8, b: u8) -> u8 { ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -39,9 +39,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [9 x i8] c"core::u8\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\A0y\A7S\B6(n\F7f&H\E1\F9\AD\04>", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), i32 8, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\A0y\A7S\B6(n\F7f&H\E1\F9\AD\04>", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 8, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_bool.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_bool.snap index 709f8f910..678749a74 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_bool.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_bool.snap @@ -6,7 +6,7 @@ expression: "pub fn equals(a: bool, b: bool) -> bool { a == b }\npub fn not_equa ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -51,9 +51,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::bool\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 1, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 1, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_f32.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_f32.snap index f2e570c09..467443cc2 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_f32.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_f32.snap @@ -6,7 +6,7 @@ expression: "pub fn equals(a: f32, b: f32) -> bool { a == b }\npub fn not_equal( ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [2 x %"mun_codegen::ir::types::TypeInfo"*] @@ -51,11 +51,11 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::f32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"P\19b7\A8k\F2\81P\FB\83\F5P\B0\82!", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"P\19b7\A8k\F2\81P\FB\83\F5P\B0\82!", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::bool\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 1, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 1, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_f64.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_f64.snap index f52c4b29b..1725bc09e 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_f64.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_f64.snap @@ -6,7 +6,7 @@ expression: "pub fn equals(a: f64, b: f64) -> bool { a == b }\npub fn not_equal( ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [2 x %"mun_codegen::ir::types::TypeInfo"*] @@ -51,11 +51,11 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::f64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"`\DBF\9C?YJ%G\AD4\9F\D5\92%A", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"`\DBF\9C?YJ%G\AD4\9F\D5\92%A", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::bool\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 1, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 1, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i128.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i128.snap index 14700d513..73964fdc6 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i128.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i128.snap @@ -6,7 +6,7 @@ expression: "pub fn equals(a: i128, b: i128) -> bool { a == b }\npub fn not_equa ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [2 x %"mun_codegen::ir::types::TypeInfo"*] @@ -51,11 +51,11 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::bool\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 1, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 1, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::i128\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\BDkp\09RRM\EBc\02\A0\DB47\A7\E3", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 128, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\BDkp\09RRM\EBc\02\A0\DB47\A7\E3", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 128, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i16.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i16.snap index b6e2897a2..4b0e26d93 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i16.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i16.snap @@ -6,7 +6,7 @@ expression: "pub fn equals(a: i16, b: i16) -> bool { a == b }\npub fn not_equal( ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [2 x %"mun_codegen::ir::types::TypeInfo"*] @@ -51,11 +51,11 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i16\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\05\CD|\F8Bv\D8\B1\E8\8B\8C\D8\8D\B5\89\B0", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 16, i8 2, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\05\CD|\F8Bv\D8\B1\E8\8B\8C\D8\8D\B5\89\B0", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 16, [0 x i64] zeroinitializer, i8 2, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::bool\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 1, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 1, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i32.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i32.snap index 9a79e0cf1..5e0b7a463 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i32.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i32.snap @@ -6,7 +6,7 @@ expression: "pub fn equals(a: i32, b: i32) -> bool { a == b }\npub fn not_equal( ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [2 x %"mun_codegen::ir::types::TypeInfo"*] @@ -51,11 +51,11 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::bool\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 1, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 1, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i64.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i64.snap index f52b6ec42..527f86e02 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i64.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i64.snap @@ -6,7 +6,7 @@ expression: "pub fn equals(a: i64, b: i64) -> bool { a == b }\npub fn not_equal( ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [2 x %"mun_codegen::ir::types::TypeInfo"*] @@ -51,11 +51,11 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"G\13;t\97j8\18\D7M\83`\1D\C8\19%", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"G\13;t\97j8\18\D7M\83`\1D\C8\19%", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::bool\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 1, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 1, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i8.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i8.snap index 60ea40f6d..5e1c5d7e9 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i8.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_i8.snap @@ -6,7 +6,7 @@ expression: "pub fn equals(a: i8, b: i8) -> bool { a == b }\npub fn not_equal(a: ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [2 x %"mun_codegen::ir::types::TypeInfo"*] @@ -51,11 +51,11 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::bool\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 1, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 1, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [9 x i8] c"core::i8\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\EF\C4\B1Z\E7\12\B1\91q\F1\0B\80U\FC\A6\0F", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), i32 8, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\EF\C4\B1Z\E7\12\B1\91q\F1\0B\80U\FC\A6\0F", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 8, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u128.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u128.snap index fcdb8eef9..4f95a901b 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u128.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u128.snap @@ -6,7 +6,7 @@ expression: "pub fn equals(a: u128, b: u128) -> bool { a == b }\npub fn not_equa ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [2 x %"mun_codegen::ir::types::TypeInfo"*] @@ -51,11 +51,11 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::bool\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 1, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 1, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::u128\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\E67\1BU\E9k\95\93d\14}\1C\96S\95\F0", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 128, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\E67\1BU\E9k\95\93d\14}\1C\96S\95\F0", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 128, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u16.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u16.snap index d4e938eb5..6c57b39f6 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u16.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u16.snap @@ -6,7 +6,7 @@ expression: "pub fn equals(a: u16, b: u16) -> bool { a == b }\npub fn not_equal( ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [2 x %"mun_codegen::ir::types::TypeInfo"*] @@ -51,11 +51,11 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u16\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"0\01\BC\BBK\E0\F2\7F&l\01\CD|q\F2\B3", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 16, i8 2, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"0\01\BC\BBK\E0\F2\7F&l\01\CD|q\F2\B3", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 16, [0 x i64] zeroinitializer, i8 2, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::bool\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 1, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 1, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u32.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u32.snap index 2f16e5f44..1fd1d2a5b 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u32.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u32.snap @@ -6,7 +6,7 @@ expression: "pub fn equals(a: u32, b: u32) -> bool { a == b }\npub fn not_equal( ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [2 x %"mun_codegen::ir::types::TypeInfo"*] @@ -51,11 +51,11 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"daz5d\A6\BE\88\81=&Y\A1+\C6\1D", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"daz5d\A6\BE\88\81=&Y\A1+\C6\1D", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::bool\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 1, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 1, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u64.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u64.snap index fbdac9167..40cba4020 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u64.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u64.snap @@ -6,7 +6,7 @@ expression: "pub fn equals(a: u64, b: u64) -> bool { a == b }\npub fn not_equal( ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [2 x %"mun_codegen::ir::types::TypeInfo"*] @@ -51,11 +51,11 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::bool\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 1, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 1, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\A6\E7g \D1\8B\1Aq`\1F\1E\07\BB5@q", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\A6\E7g \D1\8B\1Aq`\1F\1E\07\BB5@q", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u8.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u8.snap index 9ff89a685..59b24b7fb 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u8.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__compare_op_u8.snap @@ -6,7 +6,7 @@ expression: "pub fn equals(a: u8, b: u8) -> bool { a == b }\npub fn not_equal(a: ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [2 x %"mun_codegen::ir::types::TypeInfo"*] @@ -51,11 +51,11 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::bool\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 1, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 1, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [9 x i8] c"core::u8\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\A0y\A7S\B6(n\F7f&H\E1\F9\AD\04>", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), i32 8, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\A0y\A7S\B6(n\F7f&H\E1\F9\AD\04>", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 8, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__conditional_return_expr.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__conditional_return_expr.snap index 6c66269e6..c24d0fd69 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__conditional_return_expr.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__conditional_return_expr.snap @@ -6,7 +6,7 @@ expression: "pub fn main(a:i32) -> i32 {\n if a > 4 {\n return a;\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -28,9 +28,9 @@ if_merge: ; preds = %body ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__extern_fn.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__extern_fn.snap index ded97102c..1f91e9194 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__extern_fn.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__extern_fn.snap @@ -7,7 +7,7 @@ expression: "extern fn add(a:i32, b:i32) -> i32;\npub fn main() {\n add(3,4); source_filename = "main.mun" %DispatchTable = type { i32 (i32, i32)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = external global %DispatchTable @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -25,10 +25,10 @@ body: source_filename = "group_name" %DispatchTable = type { i32 (i32, i32)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = global %DispatchTable zeroinitializer @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__fibonacci.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__fibonacci.snap index ed69429b1..1b496ac56 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__fibonacci.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__fibonacci.snap @@ -7,7 +7,7 @@ expression: "pub fn fibonacci(n:i32) -> i32 {\n if n <= 1 {\n n\n } source_filename = "main.mun" %DispatchTable = type { i32 (i32)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = external global %DispatchTable @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -38,11 +38,11 @@ if_merge: ; preds = %body, %else source_filename = "group_name" %DispatchTable = type { i32 (i32)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = global %DispatchTable { i32 (i32)* @fibonacci } @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] declare i32 @fibonacci(i32) diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__fibonacci_loop.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__fibonacci_loop.snap index e95f7564a..38e842356 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__fibonacci_loop.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__fibonacci_loop.snap @@ -6,7 +6,7 @@ expression: "pub fn fibonacci(n:i32) -> i32 {\n let a = 0;\n let b = 1;\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -35,9 +35,9 @@ if_merge: ; preds = %loop ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__field_crash.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__field_crash.snap index dd22d2ad1..f5036cc60 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__field_crash.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__field_crash.snap @@ -7,7 +7,7 @@ expression: "struct(gc) Foo { a: i32 };\n\npub fn main(c:i32) -> i32 {\n let source_filename = "main.mun" %DispatchTable = type { i8** (i8*, i8*)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> %Foo = type { i32 } @allocatorHandle = external global i8* @@ -44,24 +44,24 @@ body: source_filename = "group_name" %DispatchTable = type { i8** (i8*, i8*)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } -%"mun_codegen::ir::types::StructInfo" = type { i8**, %"mun_codegen::ir::types::TypeInfo"**, i16*, i16, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> +%"mun_codegen::ir::types::StructInfo" = type <{ [0 x i64], i8**, [0 x i64], %"mun_codegen::ir::types::TypeInfo"**, [0 x i64], i16*, [0 x i64], i16, [0 x i64], i8, [5 x i8] }> @dispatchTable = global %DispatchTable zeroinitializer @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [4 x i8] c"Foo\00" @"struct_info::::field_names.0" = private unnamed_addr constant [2 x i8] c"a\00" @"struct_info::::field_names" = private unnamed_addr constant [1 x i8*] [i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.0", i32 0, i32 0)] @"struct_info::::field_types" = private unnamed_addr constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] @"struct_info::::field_offsets" = private unnamed_addr constant [1 x i16] zeroinitializer -@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"8\AD\C9\D9Y\D2\AA::name", i32 0, i32 0), i32 32, i8 4, i8 1 }, %"mun_codegen::ir::types::StructInfo" { i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"struct_info::::field_names", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([1 x %"mun_codegen::ir::types::TypeInfo"*], [1 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), i16* getelementptr inbounds ([1 x i16], [1 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), i16 1, i8 0 } } +@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"8\AD\C9\D9Y\D2\AA::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 1, [1 x i16] zeroinitializer }>, %"mun_codegen::ir::types::StructInfo" <{ [0 x i64] zeroinitializer, i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"struct_info::::field_names", i32 0, i32 0), [0 x i64] zeroinitializer, %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([1 x %"mun_codegen::ir::types::TypeInfo"*], [1 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), [0 x i64] zeroinitializer, i16* getelementptr inbounds ([1 x i16], [1 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), [0 x i64] zeroinitializer, i16 1, [0 x i64] zeroinitializer, i8 0, [5 x i8] zeroinitializer }> } @"type_info::<*const TypeInfo>::name" = private unnamed_addr constant [16 x i8] c"*const TypeInfo\00" -@"type_info::<*const TypeInfo>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"=\A1-\1F\C2\A7\88`d\90\F4\B5\BEE}x", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*const TypeInfo>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*const TypeInfo>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"=\A1-\1F\C2\A7\88`d\90\F4\B5\BEE}x", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*const TypeInfo>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::<*const *mut core::void>::name" = private unnamed_addr constant [23 x i8] c"*const *mut core::void\00" -@"type_info::<*const *mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\C5fO\BD\84\DF\06\BFd+\B1\9Abv\CE\00", i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"type_info::<*const *mut core::void>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*const *mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\C5fO\BD\84\DF\06\BFd+\B1\9Abv\CE\00", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"type_info::<*const *mut core::void>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::<*mut core::void>::name" = private unnamed_addr constant [16 x i8] c"*mut core::void\00" -@"type_info::<*mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\F0Y\22\FC\95\9E\7F\CE\08T\B1\A2\CD\A7\FAz", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*mut core::void>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\F0Y\22\FC\95\9E\7F\CE\08T\B1\A2\CD\A7\FAz", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*mut core::void>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [5 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*const TypeInfo>", %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*const *mut core::void>", %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*mut core::void>"] @allocatorHandle = unnamed_addr global i8* null diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__field_expr.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__field_expr.snap index 2b5c11cf9..af6275109 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__field_expr.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__field_expr.snap @@ -9,7 +9,7 @@ source_filename = "main.mun" %DispatchTable = type { i8** (i8*, i8*)*, i32 (%Foo)*, %Foo (%Bar)* } %Foo = type { i32 } %Bar = type { double, %Foo } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @allocatorHandle = external global i8* @dispatchTable = external global %DispatchTable @@ -60,33 +60,33 @@ source_filename = "group_name" %DispatchTable = type { i8** (i8*, i8*)*, i32 (%Foo)*, %Foo (%Bar)* } %Foo = type { i32 } %Bar = type { double, %Foo } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } -%"mun_codegen::ir::types::StructInfo" = type { i8**, %"mun_codegen::ir::types::TypeInfo"**, i16*, i16, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> +%"mun_codegen::ir::types::StructInfo" = type <{ [0 x i64], i8**, [0 x i64], %"mun_codegen::ir::types::TypeInfo"**, [0 x i64], i16*, [0 x i64], i16, [0 x i64], i8, [5 x i8] }> @dispatchTable = global %DispatchTable { i8** (i8*, i8*)* null, i32 (%Foo)* @foo_a, %Foo (%Bar)* @bar_1 } @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [4 x i8] c"Foo\00" @"struct_info::::field_names.0" = private unnamed_addr constant [2 x i8] c"a\00" @"struct_info::::field_names" = private unnamed_addr constant [1 x i8*] [i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.0", i32 0, i32 0)] @"struct_info::::field_types" = private unnamed_addr constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] @"struct_info::::field_offsets" = private unnamed_addr constant [1 x i16] zeroinitializer -@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"8\AD\C9\D9Y\D2\AA::name", i32 0, i32 0), i32 32, i8 4, i8 1 }, %"mun_codegen::ir::types::StructInfo" { i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"struct_info::::field_names", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([1 x %"mun_codegen::ir::types::TypeInfo"*], [1 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), i16* getelementptr inbounds ([1 x i16], [1 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), i16 1, i8 1 } } +@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"8\AD\C9\D9Y\D2\AA::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 1, [1 x i16] zeroinitializer }>, %"mun_codegen::ir::types::StructInfo" <{ [0 x i64] zeroinitializer, i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"struct_info::::field_names", i32 0, i32 0), [0 x i64] zeroinitializer, %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([1 x %"mun_codegen::ir::types::TypeInfo"*], [1 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), [0 x i64] zeroinitializer, i16* getelementptr inbounds ([1 x i16], [1 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), [0 x i64] zeroinitializer, i16 1, [0 x i64] zeroinitializer, i8 1, [5 x i8] zeroinitializer }> } @"type_info::<*const TypeInfo>::name" = private unnamed_addr constant [16 x i8] c"*const TypeInfo\00" -@"type_info::<*const TypeInfo>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"=\A1-\1F\C2\A7\88`d\90\F4\B5\BEE}x", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*const TypeInfo>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*const TypeInfo>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"=\A1-\1F\C2\A7\88`d\90\F4\B5\BEE}x", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*const TypeInfo>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::f64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"`\DBF\9C?YJ%G\AD4\9F\D5\92%A", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"`\DBF\9C?YJ%G\AD4\9F\D5\92%A", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::<*const *mut core::void>::name" = private unnamed_addr constant [23 x i8] c"*const *mut core::void\00" -@"type_info::<*const *mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\C5fO\BD\84\DF\06\BFd+\B1\9Abv\CE\00", i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"type_info::<*const *mut core::void>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*const *mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\C5fO\BD\84\DF\06\BFd+\B1\9Abv\CE\00", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"type_info::<*const *mut core::void>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::<*mut core::void>::name" = private unnamed_addr constant [16 x i8] c"*mut core::void\00" -@"type_info::<*mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\F0Y\22\FC\95\9E\7F\CE\08T\B1\A2\CD\A7\FAz", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*mut core::void>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\F0Y\22\FC\95\9E\7F\CE\08T\B1\A2\CD\A7\FAz", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*mut core::void>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [4 x i8] c"Bar\00" @"struct_info::::field_names.0" = private unnamed_addr constant [2 x i8] c"0\00" @"struct_info::::field_names.1" = private unnamed_addr constant [2 x i8] c"1\00" @"struct_info::::field_names" = private unnamed_addr constant [2 x i8*] [i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.0", i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.1", i32 0, i32 0)] @"struct_info::::field_types" = private unnamed_addr constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0)] @"struct_info::::field_offsets" = private unnamed_addr constant [2 x i16] [i16 0, i16 8] -@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\FC8#Lvd)F\B1Q\06\8B\02pl\10", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"type_info::::name", i32 0, i32 0), i32 128, i8 8, i8 1 }, %"mun_codegen::ir::types::StructInfo" { i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @"struct_info::::field_names", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([2 x %"mun_codegen::ir::types::TypeInfo"*], [2 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), i16* getelementptr inbounds ([2 x i16], [2 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), i16 2, i8 1 } } +@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\FC8#Lvd)F\B1Q\06\8B\02pl\10", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 128, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 1, [1 x i16] zeroinitializer }>, %"mun_codegen::ir::types::StructInfo" <{ [0 x i64] zeroinitializer, i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @"struct_info::::field_names", i32 0, i32 0), [0 x i64] zeroinitializer, %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([2 x %"mun_codegen::ir::types::TypeInfo"*], [2 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), [0 x i64] zeroinitializer, i16* getelementptr inbounds ([2 x i16], [2 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), [0 x i64] zeroinitializer, i16 2, [0 x i64] zeroinitializer, i8 1, [5 x i8] zeroinitializer }> } @global_type_table = constant [7 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*const TypeInfo>", %"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*const *mut core::void>", %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*mut core::void>", %"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0)] @allocatorHandle = unnamed_addr global i8* null diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__function_arguments.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__function_arguments.snap index 9ec36554b..b064693f6 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__function_arguments.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__function_arguments.snap @@ -6,7 +6,7 @@ expression: "pub fn main(a:i32) -> i32 {\n a\n}" ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -20,9 +20,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__function_calls.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__function_calls.snap index f519b7fb3..40eeec5ca 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__function_calls.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__function_calls.snap @@ -7,7 +7,7 @@ expression: "fn add_impl(a:i32, b:i32) -> i32 {\n a+b\n}\n\nfn add(a:i32, b:i source_filename = "main.mun" %DispatchTable = type { i32 (i32, i32)*, i32 (i32, i32)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = external global %DispatchTable @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -42,11 +42,11 @@ body: source_filename = "group_name" %DispatchTable = type { i32 (i32, i32)*, i32 (i32, i32)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = global %DispatchTable { i32 (i32, i32)* @add, i32 (i32, i32)* @add_impl } @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] declare i32 @add(i32, i32) diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__gc_struct.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__gc_struct.snap index 3ff98a11c..cf6f2ab03 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__gc_struct.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__gc_struct.snap @@ -7,7 +7,7 @@ expression: "struct(gc) Foo { a: i32, b: i32 };\n\npub fn foo() {\n let a = F source_filename = "main.mun" %DispatchTable = type { i8** (i8*, i8*)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> %Foo = type { i32, i32 } @allocatorHandle = external global i8* @@ -47,8 +47,8 @@ body: source_filename = "group_name" %DispatchTable = type { i8** (i8*, i8*)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } -%"mun_codegen::ir::types::StructInfo" = type { i8**, %"mun_codegen::ir::types::TypeInfo"**, i16*, i16, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> +%"mun_codegen::ir::types::StructInfo" = type <{ [0 x i64], i8**, [0 x i64], %"mun_codegen::ir::types::TypeInfo"**, [0 x i64], i16*, [0 x i64], i16, [0 x i64], i8, [5 x i8] }> @dispatchTable = global %DispatchTable zeroinitializer @"type_info::::name" = private unnamed_addr constant [4 x i8] c"Foo\00" @@ -56,16 +56,16 @@ source_filename = "group_name" @"struct_info::::field_names.1" = private unnamed_addr constant [2 x i8] c"b\00" @"struct_info::::field_names" = private unnamed_addr constant [2 x i8*] [i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.0", i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.1", i32 0, i32 0)] @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"struct_info::::field_types" = private unnamed_addr constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::"] @"struct_info::::field_offsets" = private unnamed_addr constant [2 x i16] [i16 0, i16 4] -@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\03\FC\D1_\DB\DB\0AJ1r,\F0m\CBQ\D0", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 4, i8 1 }, %"mun_codegen::ir::types::StructInfo" { i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @"struct_info::::field_names", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([2 x %"mun_codegen::ir::types::TypeInfo"*], [2 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), i16* getelementptr inbounds ([2 x i16], [2 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), i16 2, i8 0 } } +@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\03\FC\D1_\DB\DB\0AJ1r,\F0m\CBQ\D0", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 1, [1 x i16] zeroinitializer }>, %"mun_codegen::ir::types::StructInfo" <{ [0 x i64] zeroinitializer, i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @"struct_info::::field_names", i32 0, i32 0), [0 x i64] zeroinitializer, %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([2 x %"mun_codegen::ir::types::TypeInfo"*], [2 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), [0 x i64] zeroinitializer, i16* getelementptr inbounds ([2 x i16], [2 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), [0 x i64] zeroinitializer, i16 2, [0 x i64] zeroinitializer, i8 0, [5 x i8] zeroinitializer }> } @"type_info::<*const TypeInfo>::name" = private unnamed_addr constant [16 x i8] c"*const TypeInfo\00" -@"type_info::<*const TypeInfo>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"=\A1-\1F\C2\A7\88`d\90\F4\B5\BEE}x", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*const TypeInfo>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*const TypeInfo>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"=\A1-\1F\C2\A7\88`d\90\F4\B5\BEE}x", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*const TypeInfo>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::<*const *mut core::void>::name" = private unnamed_addr constant [23 x i8] c"*const *mut core::void\00" -@"type_info::<*const *mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\C5fO\BD\84\DF\06\BFd+\B1\9Abv\CE\00", i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"type_info::<*const *mut core::void>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*const *mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\C5fO\BD\84\DF\06\BFd+\B1\9Abv\CE\00", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"type_info::<*const *mut core::void>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::<*mut core::void>::name" = private unnamed_addr constant [16 x i8] c"*mut core::void\00" -@"type_info::<*mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\F0Y\22\FC\95\9E\7F\CE\08T\B1\A2\CD\A7\FAz", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*mut core::void>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\F0Y\22\FC\95\9E\7F\CE\08T\B1\A2\CD\A7\FAz", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*mut core::void>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [5 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*const TypeInfo>", %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*const *mut core::void>", %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*mut core::void>"] @allocatorHandle = unnamed_addr global i8* null diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__if_statement.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__if_statement.snap index c688f53d0..74464ed1b 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__if_statement.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__if_statement.snap @@ -6,7 +6,7 @@ expression: "pub fn foo(a:i32) -> i32 {\n let b = if a > 3 {\n let c = ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -36,9 +36,9 @@ if_merge: ; preds = %else, %then ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_128.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_128.snap index b0418ddbd..d69b715c4 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_128.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_128.snap @@ -7,7 +7,7 @@ expression: "// resources/script.mun\nextern fn thing(n: i32);\nextern fn print( source_filename = "main.mun" %DispatchTable = type { i32 (i32)*, void (i32)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = external global %DispatchTable @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -31,10 +31,10 @@ body: source_filename = "group_name" %DispatchTable = type { i32 (i32)*, void (i32)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = global %DispatchTable zeroinitializer @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_133.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_133.snap index 1d8e808e2..b0b779086 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_133.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_133.snap @@ -7,7 +7,7 @@ expression: "fn do_the_things(n: i32) -> i32 {\n n + 7\n}\n\npub fn main() {\ source_filename = "main.mun" %DispatchTable = type { i32 (i32)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = external global %DispatchTable @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -31,11 +31,11 @@ body: source_filename = "group_name" %DispatchTable = type { i32 (i32)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = global %DispatchTable { i32 (i32)* @do_the_things } @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] declare i32 @do_the_things(i32) diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_225.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_225.snap index d2315179c..ca9217b8b 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_225.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_225.snap @@ -7,7 +7,7 @@ expression: "struct Num {\n value: i64,\n}\n\npub fn foo(b: i64) {\n Num { source_filename = "main.mun" %DispatchTable = type { i8** (i8*, i8*)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> %Num = type { i64 } @allocatorHandle = external global i8* @@ -52,24 +52,24 @@ body: source_filename = "group_name" %DispatchTable = type { i8** (i8*, i8*)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } -%"mun_codegen::ir::types::StructInfo" = type { i8**, %"mun_codegen::ir::types::TypeInfo"**, i16*, i16, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> +%"mun_codegen::ir::types::StructInfo" = type <{ [0 x i64], i8**, [0 x i64], %"mun_codegen::ir::types::TypeInfo"**, [0 x i64], i16*, [0 x i64], i16, [0 x i64], i8, [5 x i8] }> @dispatchTable = global %DispatchTable zeroinitializer @"type_info::<*const TypeInfo>::name" = private unnamed_addr constant [16 x i8] c"*const TypeInfo\00" -@"type_info::<*const TypeInfo>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"=\A1-\1F\C2\A7\88`d\90\F4\B5\BEE}x", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*const TypeInfo>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*const TypeInfo>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"=\A1-\1F\C2\A7\88`d\90\F4\B5\BEE}x", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*const TypeInfo>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"G\13;t\97j8\18\D7M\83`\1D\C8\19%", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"G\13;t\97j8\18\D7M\83`\1D\C8\19%", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [4 x i8] c"Num\00" @"struct_info::::field_names.0" = private unnamed_addr constant [6 x i8] c"value\00" @"struct_info::::field_names" = private unnamed_addr constant [1 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @"struct_info::::field_names.0", i32 0, i32 0)] @"struct_info::::field_types" = private unnamed_addr constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] @"struct_info::::field_offsets" = private unnamed_addr constant [1 x i16] zeroinitializer -@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\A92\E2p\B0\98\B2\C4\0C\A2\F5=x\904\00", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 1 }, %"mun_codegen::ir::types::StructInfo" { i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"struct_info::::field_names", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([1 x %"mun_codegen::ir::types::TypeInfo"*], [1 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), i16* getelementptr inbounds ([1 x i16], [1 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), i16 1, i8 0 } } +@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\A92\E2p\B0\98\B2\C4\0C\A2\F5=x\904\00", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 1, [1 x i16] zeroinitializer }>, %"mun_codegen::ir::types::StructInfo" <{ [0 x i64] zeroinitializer, i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"struct_info::::field_names", i32 0, i32 0), [0 x i64] zeroinitializer, %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([1 x %"mun_codegen::ir::types::TypeInfo"*], [1 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), [0 x i64] zeroinitializer, i16* getelementptr inbounds ([1 x i16], [1 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), [0 x i64] zeroinitializer, i16 1, [0 x i64] zeroinitializer, i8 0, [5 x i8] zeroinitializer }> } @"type_info::<*const *mut core::void>::name" = private unnamed_addr constant [23 x i8] c"*const *mut core::void\00" -@"type_info::<*const *mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\C5fO\BD\84\DF\06\BFd+\B1\9Abv\CE\00", i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"type_info::<*const *mut core::void>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*const *mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\C5fO\BD\84\DF\06\BFd+\B1\9Abv\CE\00", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"type_info::<*const *mut core::void>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::<*mut core::void>::name" = private unnamed_addr constant [16 x i8] c"*mut core::void\00" -@"type_info::<*mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\F0Y\22\FC\95\9E\7F\CE\08T\B1\A2\CD\A7\FAz", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*mut core::void>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\F0Y\22\FC\95\9E\7F\CE\08T\B1\A2\CD\A7\FAz", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*mut core::void>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [5 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::<*const TypeInfo>", %"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*const *mut core::void>", %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*mut core::void>"] @allocatorHandle = unnamed_addr global i8* null diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_228.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_228.snap index ddb92e897..36a506f93 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_228.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_228.snap @@ -6,7 +6,7 @@ expression: "pub fn fact(n: usize) -> usize {\n \t if n == 0 {return 1} el ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -30,9 +30,9 @@ else: ; preds = %body ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\A6\E7g \D1\8B\1Aq`\1F\1E\07\BB5@q", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\A6\E7g \D1\8B\1Aq`\1F\1E\07\BB5@q", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_228_never_if.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_228_never_if.snap index d1a94b386..5bbb17765 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_228_never_if.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__issue_228_never_if.snap @@ -6,7 +6,7 @@ expression: "pub fn fact(n: usize) -> usize {\n \t if n == 0 {return 1} el ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -29,9 +29,9 @@ else: ; preds = %body ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\A6\E7g \D1\8B\1Aq`\1F\1E\07\BB5@q", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\A6\E7g \D1\8B\1Aq`\1F\1E\07\BB5@q", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__let_statement.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__let_statement.snap index 25fc3827f..2de08664a 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__let_statement.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__let_statement.snap @@ -6,7 +6,7 @@ expression: "pub fn main(a:i32) -> i32 {\n let b = a+1\n b\n}" ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -21,9 +21,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__literal_types.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__literal_types.snap index 041bc213c..46169aae4 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__literal_types.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__literal_types.snap @@ -6,7 +6,7 @@ expression: "pub fn main(){\n let a = 123;\n let a = 123u8;\n let a = 1 ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -61,9 +61,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"daz5d\A6\BE\88\81=&Y\A1+\C6\1D", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"daz5d\A6\BE\88\81=&Y\A1+\C6\1D", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__logic_op_bool.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__logic_op_bool.snap index 1a410379b..21c0c9501 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__logic_op_bool.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__logic_op_bool.snap @@ -6,7 +6,7 @@ expression: "pub fn and(a: bool, b: bool) -> bool {\n a && b\n}\npub fn or(a: ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::bool\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 1, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 1, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__loop_break_expr.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__loop_break_expr.snap index dc4827543..e45197f29 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__loop_break_expr.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__loop_break_expr.snap @@ -6,7 +6,7 @@ expression: "pub fn foo(n:i32) -> i32 {\n loop {\n if n > 5 {\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -37,9 +37,9 @@ if_merge6: ; preds = %if_merge ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_f32.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_f32.snap index 74e3e54ac..bc9f0e0a4 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_f32.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_f32.snap @@ -6,7 +6,7 @@ expression: "pub fn negate(a: f32) -> f32 { -a }" ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -21,9 +21,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::f32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"P\19b7\A8k\F2\81P\FB\83\F5P\B0\82!", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"P\19b7\A8k\F2\81P\FB\83\F5P\B0\82!", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_f64.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_f64.snap index 1fdca76ae..8085cb361 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_f64.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_f64.snap @@ -6,7 +6,7 @@ expression: "pub fn negate(a: f64) -> f64 { -a }" ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -21,9 +21,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::f64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"`\DBF\9C?YJ%G\AD4\9F\D5\92%A", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"`\DBF\9C?YJ%G\AD4\9F\D5\92%A", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i128.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i128.snap index 369941aab..831b3b256 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i128.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i128.snap @@ -6,7 +6,7 @@ expression: "pub fn negate(a: i128) -> i128 { -a }" ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -21,9 +21,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::i128\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\BDkp\09RRM\EBc\02\A0\DB47\A7\E3", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 128, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\BDkp\09RRM\EBc\02\A0\DB47\A7\E3", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 128, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i16.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i16.snap index 293ce21b5..d67ac6384 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i16.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i16.snap @@ -6,7 +6,7 @@ expression: "pub fn negate(a: i16) -> i16 { -a }" ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -21,9 +21,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i16\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\05\CD|\F8Bv\D8\B1\E8\8B\8C\D8\8D\B5\89\B0", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 16, i8 2, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\05\CD|\F8Bv\D8\B1\E8\8B\8C\D8\8D\B5\89\B0", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 16, [0 x i64] zeroinitializer, i8 2, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i32.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i32.snap index 49ab312c5..0f2641f42 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i32.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i32.snap @@ -6,7 +6,7 @@ expression: "pub fn negate(a: i32) -> i32 { -a }" ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -21,9 +21,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i64.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i64.snap index a047d8a72..89e50bcf1 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i64.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i64.snap @@ -6,7 +6,7 @@ expression: "pub fn negate(a: i64) -> i64 { -a }" ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -21,9 +21,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"G\13;t\97j8\18\D7M\83`\1D\C8\19%", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"G\13;t\97j8\18\D7M\83`\1D\C8\19%", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i8.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i8.snap index 9cfd29353..ded326ae0 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i8.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__negate_op_i8.snap @@ -6,7 +6,7 @@ expression: "pub fn negate(a: i8) -> i8 { -a }" ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -21,9 +21,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [9 x i8] c"core::i8\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\EF\C4\B1Z\E7\12\B1\91q\F1\0B\80U\FC\A6\0F", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), i32 8, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\EF\C4\B1Z\E7\12\B1\91q\F1\0B\80U\FC\A6\0F", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 8, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_private_extern_fn.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_private_extern_fn.snap index a9bdb2c9f..cd567da06 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_private_extern_fn.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_private_extern_fn.snap @@ -7,7 +7,7 @@ expression: "extern fn extern_fn() -> f32;\n\nfn private_fn() -> f32 {\n exte source_filename = "main.mun" %DispatchTable = type { float ()*, float ()* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = external global %DispatchTable @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -32,11 +32,11 @@ body: source_filename = "group_name" %DispatchTable = type { float ()*, float ()* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = global %DispatchTable { float ()* @private_fn, float ()* null } @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::f32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"P\19b7\A8k\F2\81P\FB\83\F5P\B0\82!", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"P\19b7\A8k\F2\81P\FB\83\F5P\B0\82!", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] declare float @private_fn() diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_private_fn.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_private_fn.snap index a60091185..e98ea5125 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_private_fn.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_private_fn.snap @@ -7,7 +7,7 @@ expression: "fn nested_private_fn() -> i32 {\n 1\n}\n\nfn private_fn() -> i32 source_filename = "main.mun" %DispatchTable = type { i32 ()*, i32 ()* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = external global %DispatchTable @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -37,11 +37,11 @@ body: source_filename = "group_name" %DispatchTable = type { i32 ()*, i32 ()* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = global %DispatchTable { i32 ()* @private_fn, i32 ()* @nested_private_fn } @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] declare i32 @private_fn() diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_private_recursive_fn.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_private_recursive_fn.snap index 225cd2634..fba0db2b5 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_private_recursive_fn.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_private_recursive_fn.snap @@ -7,7 +7,7 @@ expression: "fn private_fn() -> f32 {\n private_fn()\n}\n\npub fn main() -> f source_filename = "main.mun" %DispatchTable = type { float ()* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = external global %DispatchTable @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -32,11 +32,11 @@ body: source_filename = "group_name" %DispatchTable = type { float ()* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = global %DispatchTable { float ()* @private_fn } @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::f32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"P\19b7\A8k\F2\81P\FB\83\F5P\B0\82!", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"P\19b7\A8k\F2\81P\FB\83\F5P\B0\82!", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] declare float @private_fn() diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_private_recursive_fn_with_args.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_private_recursive_fn_with_args.snap index 59d1e01b6..b35250714 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_private_recursive_fn_with_args.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_private_recursive_fn_with_args.snap @@ -7,7 +7,7 @@ expression: "extern fn other() -> i32;\n\nfn private_fn(a: i32) -> f32 {\n pr source_filename = "main.mun" %DispatchTable = type { float (i32)*, i32 ()* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = external global %DispatchTable @global_type_table = external global [2 x %"mun_codegen::ir::types::TypeInfo"*] @@ -34,13 +34,13 @@ body: source_filename = "group_name" %DispatchTable = type { float (i32)*, i32 ()* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = global %DispatchTable { float (i32)* @private_fn, i32 ()* null } @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::f32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"P\19b7\A8k\F2\81P\FB\83\F5P\B0\82!", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"P\19b7\A8k\F2\81P\FB\83\F5P\B0\82!", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::"] declare float @private_fn(i32) diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_structs.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_structs.snap index ee955bce9..f39f5ce6b 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_structs.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__nested_structs.snap @@ -7,7 +7,7 @@ expression: "struct(gc) GcStruct(f32, f32);\nstruct(value) ValueStruct(f32, f32) source_filename = "main.mun" %DispatchTable = type { i8** (i8*, i8*)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> %GcStruct = type { float, float } %ValueStruct = type { float, float } %GcWrapper = type { %GcStruct**, %ValueStruct } @@ -109,8 +109,8 @@ body: source_filename = "group_name" %DispatchTable = type { i8** (i8*, i8*)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } -%"mun_codegen::ir::types::StructInfo" = type { i8**, %"mun_codegen::ir::types::TypeInfo"**, i16*, i16, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> +%"mun_codegen::ir::types::StructInfo" = type <{ [0 x i64], i8**, [0 x i64], %"mun_codegen::ir::types::TypeInfo"**, [0 x i64], i16*, [0 x i64], i16, [0 x i64], i8, [5 x i8] }> @dispatchTable = global %DispatchTable zeroinitializer @"type_info::::name" = private unnamed_addr constant [10 x i8] c"GcWrapper\00" @@ -122,33 +122,33 @@ source_filename = "group_name" @"struct_info::::field_names.1" = private unnamed_addr constant [2 x i8] c"1\00" @"struct_info::::field_names" = private unnamed_addr constant [2 x i8*] [i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.0", i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.1", i32 0, i32 0)] @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::f32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"P\19b7\A8k\F2\81P\FB\83\F5P\B0\82!", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"P\19b7\A8k\F2\81P\FB\83\F5P\B0\82!", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"struct_info::::field_types" = private unnamed_addr constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::"] @"struct_info::::field_offsets" = private unnamed_addr constant [2 x i16] [i16 0, i16 4] -@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\B9)lg\01\95k@E\B4(\CB\CAGX\E1", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 4, i8 1 }, %"mun_codegen::ir::types::StructInfo" { i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @"struct_info::::field_names", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([2 x %"mun_codegen::ir::types::TypeInfo"*], [2 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), i16* getelementptr inbounds ([2 x i16], [2 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), i16 2, i8 0 } } +@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\B9)lg\01\95k@E\B4(\CB\CAGX\E1", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 1, [1 x i16] zeroinitializer }>, %"mun_codegen::ir::types::StructInfo" <{ [0 x i64] zeroinitializer, i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @"struct_info::::field_names", i32 0, i32 0), [0 x i64] zeroinitializer, %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([2 x %"mun_codegen::ir::types::TypeInfo"*], [2 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), [0 x i64] zeroinitializer, i16* getelementptr inbounds ([2 x i16], [2 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), [0 x i64] zeroinitializer, i16 2, [0 x i64] zeroinitializer, i8 0, [5 x i8] zeroinitializer }> } @"type_info::::name" = private unnamed_addr constant [12 x i8] c"ValueStruct\00" @"struct_info::::field_names.0" = private unnamed_addr constant [2 x i8] c"0\00" @"struct_info::::field_names.1" = private unnamed_addr constant [2 x i8] c"1\00" @"struct_info::::field_names" = private unnamed_addr constant [2 x i8*] [i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.0", i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.1", i32 0, i32 0)] @"struct_info::::field_types" = private unnamed_addr constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::"] @"struct_info::::field_offsets" = private unnamed_addr constant [2 x i16] [i16 0, i16 4] -@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"U0{\87\5C\04Q/\95!$\A2\F1\A9\F9W", i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 4, i8 1 }, %"mun_codegen::ir::types::StructInfo" { i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @"struct_info::::field_names", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([2 x %"mun_codegen::ir::types::TypeInfo"*], [2 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), i16* getelementptr inbounds ([2 x i16], [2 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), i16 2, i8 1 } } +@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"U0{\87\5C\04Q/\95!$\A2\F1\A9\F9W", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 1, [1 x i16] zeroinitializer }>, %"mun_codegen::ir::types::StructInfo" <{ [0 x i64] zeroinitializer, i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @"struct_info::::field_names", i32 0, i32 0), [0 x i64] zeroinitializer, %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([2 x %"mun_codegen::ir::types::TypeInfo"*], [2 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), [0 x i64] zeroinitializer, i16* getelementptr inbounds ([2 x i16], [2 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), [0 x i64] zeroinitializer, i16 2, [0 x i64] zeroinitializer, i8 1, [5 x i8] zeroinitializer }> } @"struct_info::::field_types" = private unnamed_addr constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0)] @"struct_info::::field_offsets" = private unnamed_addr constant [2 x i16] [i16 0, i16 8] -@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"!\14\93\A7H1?90\B7\EA\DB0\82\A0\C7", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 128, i8 8, i8 1 }, %"mun_codegen::ir::types::StructInfo" { i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @"struct_info::::field_names", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([2 x %"mun_codegen::ir::types::TypeInfo"*], [2 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), i16* getelementptr inbounds ([2 x i16], [2 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), i16 2, i8 0 } } +@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"!\14\93\A7H1?90\B7\EA\DB0\82\A0\C7", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 128, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 1, [1 x i16] zeroinitializer }>, %"mun_codegen::ir::types::StructInfo" <{ [0 x i64] zeroinitializer, i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @"struct_info::::field_names", i32 0, i32 0), [0 x i64] zeroinitializer, %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([2 x %"mun_codegen::ir::types::TypeInfo"*], [2 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), [0 x i64] zeroinitializer, i16* getelementptr inbounds ([2 x i16], [2 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), [0 x i64] zeroinitializer, i16 2, [0 x i64] zeroinitializer, i8 0, [5 x i8] zeroinitializer }> } @"type_info::<*const TypeInfo>::name" = private unnamed_addr constant [16 x i8] c"*const TypeInfo\00" -@"type_info::<*const TypeInfo>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"=\A1-\1F\C2\A7\88`d\90\F4\B5\BEE}x", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*const TypeInfo>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*const TypeInfo>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"=\A1-\1F\C2\A7\88`d\90\F4\B5\BEE}x", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*const TypeInfo>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [13 x i8] c"ValueWrapper\00" @"struct_info::::field_names.0" = private unnamed_addr constant [2 x i8] c"0\00" @"struct_info::::field_names.1" = private unnamed_addr constant [2 x i8] c"1\00" @"struct_info::::field_names" = private unnamed_addr constant [2 x i8*] [i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.0", i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.1", i32 0, i32 0)] @"struct_info::::field_types" = private unnamed_addr constant [2 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0)] @"struct_info::::field_offsets" = private unnamed_addr constant [2 x i16] [i16 0, i16 8] -@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"@j\D8\CD~-\12\87|A\E8\DBp\EC}\AA", i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"type_info::::name", i32 0, i32 0), i32 128, i8 8, i8 1 }, %"mun_codegen::ir::types::StructInfo" { i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @"struct_info::::field_names", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([2 x %"mun_codegen::ir::types::TypeInfo"*], [2 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), i16* getelementptr inbounds ([2 x i16], [2 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), i16 2, i8 1 } } +@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"@j\D8\CD~-\12\87|A\E8\DBp\EC}\AA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 128, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 1, [1 x i16] zeroinitializer }>, %"mun_codegen::ir::types::StructInfo" <{ [0 x i64] zeroinitializer, i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @"struct_info::::field_names", i32 0, i32 0), [0 x i64] zeroinitializer, %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([2 x %"mun_codegen::ir::types::TypeInfo"*], [2 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), [0 x i64] zeroinitializer, i16* getelementptr inbounds ([2 x i16], [2 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), [0 x i64] zeroinitializer, i16 2, [0 x i64] zeroinitializer, i8 1, [5 x i8] zeroinitializer }> } @"type_info::<*const *mut core::void>::name" = private unnamed_addr constant [23 x i8] c"*const *mut core::void\00" -@"type_info::<*const *mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\C5fO\BD\84\DF\06\BFd+\B1\9Abv\CE\00", i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"type_info::<*const *mut core::void>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*const *mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\C5fO\BD\84\DF\06\BFd+\B1\9Abv\CE\00", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"type_info::<*const *mut core::void>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::<*mut core::void>::name" = private unnamed_addr constant [16 x i8] c"*mut core::void\00" -@"type_info::<*mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\F0Y\22\FC\95\9E\7F\CE\08T\B1\A2\CD\A7\FAz", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*mut core::void>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\F0Y\22\FC\95\9E\7F\CE\08T\B1\A2\CD\A7\FAz", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*mut core::void>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [8 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*const TypeInfo>", %"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*const *mut core::void>", %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*mut core::void>"] @allocatorHandle = unnamed_addr global i8* null diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__never_conditional_return_expr.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__never_conditional_return_expr.snap index 689d216db..ef1351800 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__never_conditional_return_expr.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__never_conditional_return_expr.snap @@ -6,7 +6,7 @@ expression: "pub fn main(a:i32) -> i32 {\n if a > 4 {\n return a;\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -28,9 +28,9 @@ else: ; preds = %body ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__return_expr.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__return_expr.snap index 8cb14c05b..4a6867814 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__return_expr.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__return_expr.snap @@ -6,7 +6,7 @@ expression: "pub fn main() -> i32 {\n return 5;\n let a = 3; // Nothing re ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -20,9 +20,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__return_type.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__return_type.snap index 4cb4df3e9..eeeb6f9ac 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__return_type.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__return_type.snap @@ -6,7 +6,7 @@ expression: "pub fn main() -> i32 {\n 0\n}" ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -20,9 +20,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__shadowing.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__shadowing.snap index ea22f4a69..bc779ac91 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__shadowing.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__shadowing.snap @@ -6,7 +6,7 @@ expression: "pub fn foo(a:i32) -> i32 {\n let a = a+1;\n {\n let a ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -30,9 +30,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i128.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i128.snap index 1f0efdbc5..fbbc1a23a 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i128.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i128.snap @@ -6,7 +6,7 @@ expression: "pub fn leftshift(a: i128, b: i128) -> i128 { a << b }\npub fn right ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::i128\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\BDkp\09RRM\EBc\02\A0\DB47\A7\E3", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 128, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\BDkp\09RRM\EBc\02\A0\DB47\A7\E3", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 128, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i16.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i16.snap index fc9519fdb..c68e7a713 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i16.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i16.snap @@ -6,7 +6,7 @@ expression: "pub fn leftshift(a: i16, b: i16) -> i16 { a << b }\npub fn rightshi ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i16\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\05\CD|\F8Bv\D8\B1\E8\8B\8C\D8\8D\B5\89\B0", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 16, i8 2, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\05\CD|\F8Bv\D8\B1\E8\8B\8C\D8\8D\B5\89\B0", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 16, [0 x i64] zeroinitializer, i8 2, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i32.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i32.snap index c7d1df799..4058cb6fe 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i32.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i32.snap @@ -6,7 +6,7 @@ expression: "pub fn leftshift(a: i32, b: i32) -> i32 { a << b }\npub fn rightshi ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i64.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i64.snap index f6fa09982..3ecc07e05 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i64.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i64.snap @@ -6,7 +6,7 @@ expression: "pub fn leftshift(a: i64, b: i64) -> i64 { a << b }\npub fn rightshi ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"G\13;t\97j8\18\D7M\83`\1D\C8\19%", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"G\13;t\97j8\18\D7M\83`\1D\C8\19%", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i8.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i8.snap index 3387c2535..23bbd5353 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i8.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_i8.snap @@ -6,7 +6,7 @@ expression: "pub fn leftshift(a: i8, b: i8) -> i8 { a << b }\npub fn rightshift( ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [9 x i8] c"core::i8\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\EF\C4\B1Z\E7\12\B1\91q\F1\0B\80U\FC\A6\0F", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), i32 8, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\EF\C4\B1Z\E7\12\B1\91q\F1\0B\80U\FC\A6\0F", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 8, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u128.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u128.snap index cd8760e58..8a4229ca7 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u128.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u128.snap @@ -6,7 +6,7 @@ expression: "pub fn leftshift(a: u128, b: u128) -> u128 { a << b }\npub fn right ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::u128\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\E67\1BU\E9k\95\93d\14}\1C\96S\95\F0", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 128, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\E67\1BU\E9k\95\93d\14}\1C\96S\95\F0", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 128, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u16.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u16.snap index f61524a45..bc09cf797 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u16.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u16.snap @@ -6,7 +6,7 @@ expression: "pub fn leftshift(a: u16, b: u16) -> u16 { a << b }\npub fn rightshi ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u16\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"0\01\BC\BBK\E0\F2\7F&l\01\CD|q\F2\B3", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 16, i8 2, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"0\01\BC\BBK\E0\F2\7F&l\01\CD|q\F2\B3", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 16, [0 x i64] zeroinitializer, i8 2, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u32.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u32.snap index 4faf2527c..3d56cecb2 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u32.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u32.snap @@ -6,7 +6,7 @@ expression: "pub fn leftshift(a: u32, b: u32) -> u32 { a << b }\npub fn rightshi ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"daz5d\A6\BE\88\81=&Y\A1+\C6\1D", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"daz5d\A6\BE\88\81=&Y\A1+\C6\1D", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u64.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u64.snap index f358afb04..e30e7c575 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u64.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u64.snap @@ -6,7 +6,7 @@ expression: "pub fn leftshift(a: u64, b: u64) -> u64 { a << b }\npub fn rightshi ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::u64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\A6\E7g \D1\8B\1Aq`\1F\1E\07\BB5@q", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\A6\E7g \D1\8B\1Aq`\1F\1E\07\BB5@q", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u8.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u8.snap index ea8653bf3..f2af2ffb6 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u8.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__shift_op_u8.snap @@ -6,7 +6,7 @@ expression: "pub fn leftshift(a: u8, b: u8) -> u8 { a << b }\npub fn rightshift( ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -27,9 +27,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [9 x i8] c"core::u8\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\A0y\A7S\B6(n\F7f&H\E1\F9\AD\04>", i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), i32 8, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\A0y\A7S\B6(n\F7f&H\E1\F9\AD\04>", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 8, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__struct_test.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__struct_test.snap index cc62c2366..18cd4f55f 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__struct_test.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__struct_test.snap @@ -7,7 +7,7 @@ expression: "struct(value) Bar(f64, i32, bool, Foo);\nstruct(value) Foo { a: i32 source_filename = "main.mun" %DispatchTable = type { i8** (i8*, i8*)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> %Baz = type {} %Bar = type { double, i32, i1, %Foo } %Foo = type { i32 } @@ -39,28 +39,28 @@ body: source_filename = "group_name" %DispatchTable = type { i8** (i8*, i8*)* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } -%"mun_codegen::ir::types::StructInfo" = type { i8**, %"mun_codegen::ir::types::TypeInfo"**, i16*, i16, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> +%"mun_codegen::ir::types::StructInfo" = type <{ [0 x i64], i8**, [0 x i64], %"mun_codegen::ir::types::TypeInfo"**, [0 x i64], i16*, [0 x i64], i16, [0 x i64], i8, [5 x i8] }> @dispatchTable = global %DispatchTable zeroinitializer @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [4 x i8] c"Foo\00" @"struct_info::::field_names.0" = private unnamed_addr constant [2 x i8] c"a\00" @"struct_info::::field_names" = private unnamed_addr constant [1 x i8*] [i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.0", i32 0, i32 0)] @"struct_info::::field_types" = private unnamed_addr constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] @"struct_info::::field_offsets" = private unnamed_addr constant [1 x i16] zeroinitializer -@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"8\AD\C9\D9Y\D2\AA::name", i32 0, i32 0), i32 32, i8 4, i8 1 }, %"mun_codegen::ir::types::StructInfo" { i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"struct_info::::field_names", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([1 x %"mun_codegen::ir::types::TypeInfo"*], [1 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), i16* getelementptr inbounds ([1 x i16], [1 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), i16 1, i8 1 } } +@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"8\AD\C9\D9Y\D2\AA::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 1, [1 x i16] zeroinitializer }>, %"mun_codegen::ir::types::StructInfo" <{ [0 x i64] zeroinitializer, i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"struct_info::::field_names", i32 0, i32 0), [0 x i64] zeroinitializer, %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([1 x %"mun_codegen::ir::types::TypeInfo"*], [1 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), [0 x i64] zeroinitializer, i16* getelementptr inbounds ([1 x i16], [1 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), [0 x i64] zeroinitializer, i16 1, [0 x i64] zeroinitializer, i8 1, [5 x i8] zeroinitializer }> } @"type_info::<*const TypeInfo>::name" = private unnamed_addr constant [16 x i8] c"*const TypeInfo\00" -@"type_info::<*const TypeInfo>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"=\A1-\1F\C2\A7\88`d\90\F4\B5\BEE}x", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*const TypeInfo>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*const TypeInfo>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"=\A1-\1F\C2\A7\88`d\90\F4\B5\BEE}x", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*const TypeInfo>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [4 x i8] c"Baz\00" -@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c">\1A\BC\E5\C9\D3n\D8\8C?\86\22\FA\0DtV", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"type_info::::name", i32 0, i32 0), i32 0, i8 1, i8 1 }, %"mun_codegen::ir::types::StructInfo" { i8** null, %"mun_codegen::ir::types::TypeInfo"** null, i16* null, i16 0, i8 1 } } +@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c">\1A\BC\E5\C9\D3n\D8\8C?\86\22\FA\0DtV", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 0, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 1, [1 x i16] zeroinitializer }>, %"mun_codegen::ir::types::StructInfo" <{ [0 x i64] zeroinitializer, i8** null, [0 x i64] zeroinitializer, %"mun_codegen::ir::types::TypeInfo"** null, [0 x i64] zeroinitializer, i16* null, [0 x i64] zeroinitializer, i16 0, [0 x i64] zeroinitializer, i8 1, [5 x i8] zeroinitializer }> } @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::f64\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"`\DBF\9C?YJ%G\AD4\9F\D5\92%A", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"`\DBF\9C?YJ%G\AD4\9F\D5\92%A", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::bool\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 1, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 1, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::<*const *mut core::void>::name" = private unnamed_addr constant [23 x i8] c"*const *mut core::void\00" -@"type_info::<*const *mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\C5fO\BD\84\DF\06\BFd+\B1\9Abv\CE\00", i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"type_info::<*const *mut core::void>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*const *mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\C5fO\BD\84\DF\06\BFd+\B1\9Abv\CE\00", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"type_info::<*const *mut core::void>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @"type_info::::name" = private unnamed_addr constant [4 x i8] c"Bar\00" @"struct_info::::field_names.0" = private unnamed_addr constant [2 x i8] c"0\00" @"struct_info::::field_names.1" = private unnamed_addr constant [2 x i8] c"1\00" @@ -69,9 +69,9 @@ source_filename = "group_name" @"struct_info::::field_names" = private unnamed_addr constant [4 x i8*] [i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.0", i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.1", i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.2", i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @"struct_info::::field_names.3", i32 0, i32 0)] @"struct_info::::field_types" = private unnamed_addr constant [4 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0)] @"struct_info::::field_offsets" = private unnamed_addr constant [4 x i16] [i16 0, i16 8, i16 12, i16 16] -@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\D6\CA\E2\C3Ht\09\EA\AEh\E50L\F7\EE\B5", i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"type_info::::name", i32 0, i32 0), i32 192, i8 8, i8 1 }, %"mun_codegen::ir::types::StructInfo" { i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @"struct_info::::field_names", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([4 x %"mun_codegen::ir::types::TypeInfo"*], [4 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), i16* getelementptr inbounds ([4 x i16], [4 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), i16 4, i8 1 } } +@"type_info::" = private unnamed_addr constant { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" } { %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\D6\CA\E2\C3Ht\09\EA\AEh\E50L\F7\EE\B5", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 192, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 1, [1 x i16] zeroinitializer }>, %"mun_codegen::ir::types::StructInfo" <{ [0 x i64] zeroinitializer, i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @"struct_info::::field_names", i32 0, i32 0), [0 x i64] zeroinitializer, %"mun_codegen::ir::types::TypeInfo"** getelementptr inbounds ([4 x %"mun_codegen::ir::types::TypeInfo"*], [4 x %"mun_codegen::ir::types::TypeInfo"*]* @"struct_info::::field_types", i32 0, i32 0), [0 x i64] zeroinitializer, i16* getelementptr inbounds ([4 x i16], [4 x i16]* @"struct_info::::field_offsets", i32 0, i32 0), [0 x i64] zeroinitializer, i16 4, [0 x i64] zeroinitializer, i8 1, [5 x i8] zeroinitializer }> } @"type_info::<*mut core::void>::name" = private unnamed_addr constant [16 x i8] c"*mut core::void\00" -@"type_info::<*mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\F0Y\22\FC\95\9E\7F\CE\08T\B1\A2\CD\A7\FAz", i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*mut core::void>::name", i32 0, i32 0), i32 64, i8 8, i8 0 } +@"type_info::<*mut core::void>" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\F0Y\22\FC\95\9E\7F\CE\08T\B1\A2\CD\A7\FAz", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @"type_info::<*mut core::void>::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 64, [0 x i64] zeroinitializer, i8 8, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [9 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*const TypeInfo>", %"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::", %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*const *mut core::void>", %"mun_codegen::ir::types::TypeInfo"* getelementptr inbounds ({ %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }, { %"mun_codegen::ir::types::TypeInfo", %"mun_codegen::ir::types::StructInfo" }* @"type_info::", i32 0, i32 0), %"mun_codegen::ir::types::TypeInfo"* @"type_info::<*mut core::void>"] @allocatorHandle = unnamed_addr global i8* null diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__true_is_true.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__true_is_true.snap index 006b03b4a..2fe65b262 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__true_is_true.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__true_is_true.snap @@ -6,7 +6,7 @@ expression: "pub fn test_true() -> bool {\n true\n}\n\npub fn test_false() -> ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -25,9 +25,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [11 x i8] c"core::bool\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), i32 1, i8 1, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"x\82\81m t7\03\CB\F8k\81-;\C9\84", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 1, [0 x i64] zeroinitializer, i8 1, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__update_operators.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__update_operators.snap index eaeafb285..2d6ae013d 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__update_operators.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__update_operators.snap @@ -6,7 +6,7 @@ expression: "pub fn add(a:i32, b:i32) -> i32 {\n let result = a\n result += b\ ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -45,9 +45,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__update_parameter.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__update_parameter.snap index e0fa08b89..9bf447feb 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__update_parameter.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__update_parameter.snap @@ -6,7 +6,7 @@ expression: "pub fn add_three(a:i32) -> i32 {\n a += 3;\n a\n}" ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -21,9 +21,9 @@ body: ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__void_return.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__void_return.snap index 057327600..f9c1c49a7 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__void_return.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__void_return.snap @@ -7,7 +7,7 @@ expression: "fn bar() {\n let a = 3;\n}\npub fn foo(a:i32) {\n let c = bar source_filename = "main.mun" %DispatchTable = type { void ()* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = external global %DispatchTable @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -30,11 +30,11 @@ body: source_filename = "group_name" %DispatchTable = type { void ()* } -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @dispatchTable = global %DispatchTable { void ()* @bar } @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] declare void @bar() diff --git a/crates/mun_codegen/src/snapshots/mun_codegen__test__while_expr.snap b/crates/mun_codegen/src/snapshots/mun_codegen__test__while_expr.snap index 290e9f500..13c30c880 100644 --- a/crates/mun_codegen/src/snapshots/mun_codegen__test__while_expr.snap +++ b/crates/mun_codegen/src/snapshots/mun_codegen__test__while_expr.snap @@ -6,7 +6,7 @@ expression: "pub fn foo(n:i32) {\n while n<3 {\n n += 1;\n };\n\n ; ModuleID = 'main.mun' source_filename = "main.mun" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @global_type_table = external global [1 x %"mun_codegen::ir::types::TypeInfo"*] @@ -32,9 +32,9 @@ whilecond3: ; preds = %whilecond ; ModuleID = 'group_name' source_filename = "group_name" -%"mun_codegen::ir::types::TypeInfo" = type { [16 x i8], i8*, i32, i8, i8 } +%"mun_codegen::ir::types::TypeInfo" = type <{ [0 x i64], [16 x i8], [0 x i64], i8*, [0 x i64], i32, [0 x i64], i8, [0 x i64], i8, [1 x i16] }> @"type_info::::name" = private unnamed_addr constant [10 x i8] c"core::i32\00" -@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" { [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), i32 32, i8 4, i8 0 } +@"type_info::" = private unnamed_addr constant %"mun_codegen::ir::types::TypeInfo" <{ [0 x i64] zeroinitializer, [16 x i8] c"\17yzt\19\D62\17\D25\95C\17\88[\FA", [0 x i64] zeroinitializer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @"type_info::::name", i32 0, i32 0), [0 x i64] zeroinitializer, i32 32, [0 x i64] zeroinitializer, i8 4, [0 x i64] zeroinitializer, i8 0, [1 x i16] zeroinitializer }> @global_type_table = constant [1 x %"mun_codegen::ir::types::TypeInfo"*] [%"mun_codegen::ir::types::TypeInfo"* @"type_info::"] diff --git a/crates/mun_codegen_macros/src/lib.rs b/crates/mun_codegen_macros/src/lib.rs index e9f9e8f88..a74ed24b0 100644 --- a/crates/mun_codegen_macros/src/lib.rs +++ b/crates/mun_codegen_macros/src/lib.rs @@ -2,7 +2,7 @@ use proc_macro::TokenStream; use quote::quote; -use syn::{parse_macro_input, Attribute, Data, DeriveInput, Meta, NestedMeta, Path}; +use syn::{parse_macro_input, Data, DeriveInput}; /// This procedural macro implements the `AsValue` trait as well as several required other traits. /// All of these traits enable creating an `inkwell::values::StructValue` from a generic struct, as @@ -11,14 +11,8 @@ use syn::{parse_macro_input, Attribute, Data, DeriveInput, Meta, NestedMeta, Pat pub fn as_value_derive(input: TokenStream) -> TokenStream { // Parse Phase let derive_input = parse_macro_input!(input as DeriveInput); - let struct_data = match derive_input.data { - Data::Struct(data) => data, - Data::Union(_) => panic!("#[derive(AsValue)] is only defined for structs, not for unions!"), - Data::Enum(_) => panic!("#[derive(AsValue)] is only defined for structs, not for enums!"), - }; // Get the typename of the struct we're working with - let ident = { let ident = derive_input.ident; let generics = derive_input.generics; @@ -27,175 +21,200 @@ pub fn as_value_derive(input: TokenStream) -> TokenStream { } }; - // Generate a list of where clauses that ensure that we can cast each field to an - // `inkwell::types::BasicTypeEnum` - let field_types = struct_data.fields.iter().map(|f| { - let ty = &f.ty; - quote! { - Into::>::into(<#ty>::get_ir_type(context)) - } - }); - - // Generate a list of where clauses that ensure that we can cast each field to an - // `inkwell::values::BasicTypeValue` - let field_types_values = struct_data.fields.iter().enumerate().map(|(idx, f)| { - let name = f.ident.as_ref().map(|i| quote! { #i }).unwrap_or_else(|| quote! { #idx }); - quote! { - { - let value = crate::value::AsValueInto::<'ink, inkwell::values::BasicValueEnum<'ink>>::as_value_into(&self. #name, context); - // eprintln!("- {:?}", value.get_type()); - value - } - } - }); - - // Generate Phase - (quote! { - impl<'ink> crate::value::ConcreteValueType<'ink> for #ident { - type Value = inkwell::values::StructValue<'ink>; - } - - impl<'ink> crate::value::SizedValueType<'ink> for #ident { - fn get_ir_type(context: &crate::value::IrTypeContext<'ink, '_>) -> inkwell::types::StructType<'ink> { - let key = std::any::type_name::<#ident>(); - match context.struct_types.borrow().get(&key) { - Some(value) => { - return *value; + match derive_input.data { + Data::Struct(struct_data) => { + // Generate a list of struct fields' paddings. + // + // Expects: + // - type_context: &IrTypeContext + // - fn padded_size(align: usize, data_size: usize) -> usize + let field_padding_types = { + let field_sizes = struct_data.fields.iter().map(|f| { + let ty = &f.ty; + quote! {{ + let ir_type = <#ty>::get_ir_type(type_context); + type_context.target_data.get_store_size(&ir_type) as usize + }} + }); + + let field_alignments = struct_data.fields.iter().map(|f| { + let ty = &f.ty; + quote! {{ + let ir_type = <#ty>::get_ir_type(type_context); + type_context.target_data.get_preferred_alignment(&ir_type) as usize + }} + }); + + quote! {{ + let mut total_size = 0; + + let field_sizes = vec![ #(#field_sizes),* ]; + let field_alignments = vec![ #(#field_alignments),* ]; + + let mut field_paddings: Vec = field_sizes + .iter() + .zip(field_alignments.iter()) + .map(|(size, align)| { + let padded_size = padded_size(*align, total_size); + let padding = padded_size - total_size; + total_size = padded_size + size; + padding + }) + .collect(); + + // Add padding for the end of the struct + let max_align = field_alignments.iter().max().cloned().unwrap_or(1); + let padded_size = padded_size(max_align, total_size); + field_paddings.push(padded_size - total_size); + + field_paddings + }} + }; + + let field_padding_values = field_padding_types.clone(); + + // Generate a list of where clauses that ensure that we can cast each field to an + // `inkwell::types::BasicTypeEnum` + let field_types = struct_data.fields.iter().map(|f| { + let ty = &f.ty; + quote! { + Into::>::into(<#ty>::get_ir_type(context)) + } + }); + + // Generate a list of where clauses that ensure that we can cast each field to an + // `inkwell::values::BasicTypeValue` + let field_types_values = struct_data.fields.iter().enumerate().map(|(idx, f)| { + let name = f.ident.as_ref().map(|i| quote! { #i }).unwrap_or_else(|| quote! { #idx }); + quote! { + { + let value = crate::value::AsValueInto::<'ink, inkwell::values::BasicValueEnum<'ink>>::as_value_into(&self. #name, context); + value } - None => (), - }; - - let struct_ty = context.context.opaque_struct_type(key); - context.struct_types.borrow_mut().insert(key, struct_ty); - struct_ty.set_body(&[ - #(#field_types),* - ], false); - struct_ty - } - } + } + }); + + // Generate functions + (quote! { + impl<'ink> crate::value::ConcreteValueType<'ink> for #ident { + type Value = inkwell::values::StructValue<'ink>; + } + + impl<'ink> crate::value::SizedValueType<'ink> for #ident { + fn get_ir_type(context: &crate::value::IrTypeContext<'ink, '_>) -> inkwell::types::StructType<'ink> { + // Check whether the IR struct type exists + let key = std::any::type_name::<#ident>(); + match context.struct_types.borrow().get(&key) { + Some(value) => { + return *value; + } + None => (), + }; + + // Construct a new IR struct type + let struct_ty = context.context.opaque_struct_type(key); + context.struct_types.borrow_mut().insert(key, struct_ty); + + /// Calculates the size of data after padding has been appended to its end, + /// based on its alignment. + fn padded_size(align: usize, data_size: usize) -> usize { + ((data_size + align - 1) / align) * align + } + + // Aliasing to make sure that all procedurally generated macros can use the + // same variable name. + let type_context = context; + + let field_types = vec![ #(#field_types),* ]; + let field_padding = #field_padding_types; + let struct_fields: Vec<_> = field_padding + .into_iter() + // Choose a field's padding type based on the size of its alignment + // padding + .map(|p| { + let (ty, num_chunks) = if p % 8 == 0 { + (context.context.i64_type(), p / 8) + } else if p % 4 == 0 { + (context.context.i32_type(), p / 4) + } else if p % 2 == 0 { + (context.context.i16_type(), p / 2) + } else { + (context.context.i8_type(), p) + }; + + ty.array_type(num_chunks as u32).into() + }) + // Interleave padding and field types, resulting in: + // [align_padding1, type1, align_padding2, type2, rear_padding] + .interleave(field_types.into_iter()) + .collect(); + + struct_ty.set_body(&struct_fields, true); + struct_ty + } + } - impl<'ink> crate::value::PointerValueType<'ink> for #ident { - fn get_ptr_type(context: &crate::value::IrTypeContext<'ink, '_>, address_space: Option) -> inkwell::types::PointerType<'ink> { - Self::get_ir_type(context).ptr_type(address_space.unwrap_or(inkwell::AddressSpace::Generic)) - } - } + impl<'ink> crate::value::PointerValueType<'ink> for #ident { + fn get_ptr_type(context: &crate::value::IrTypeContext<'ink, '_>, address_space: Option) -> inkwell::types::PointerType<'ink> { + Self::get_ir_type(context).ptr_type(address_space.unwrap_or(inkwell::AddressSpace::Generic)) + } + } + + impl<'ink> crate::value::AsValue<'ink, #ident> for #ident { + fn as_value(&self, context: &crate::value::IrValueContext<'ink, '_, '_>) -> crate::value::Value<'ink, Self> { + /// Calculates the size of data after padding has been appended to its end, + /// based on its alignment. + fn padded_size(align: usize, data_size: usize) -> usize { + ((data_size + align - 1) / align) * align + } + + // Aliasing to make sure that all procedurally generated macros can use the + // same variable name. + let type_context = context.type_context; + let field_padding = #field_padding_values; + + let struct_type = Self::get_ir_type(context.type_context); + + let field_values = vec![ #(#field_types_values),* ]; + let struct_fields: Vec<_> = field_padding + .into_iter() + // Choose a field's padding type based on the size of its alignment + // padding + .map(|p| { + let (ty, num_chunks) = if p % 8 == 0 { + (context.context.i64_type(), p / 8) + } else if p % 4 == 0 { + (context.context.i32_type(), p / 4) + } else if p % 2 == 0 { + (context.context.i16_type(), p / 2) + } else { + (context.context.i8_type(), p) + }; + + let chunks: Vec<_> = (0..num_chunks) + .map(|_| ty.const_int(0, false)) + .collect(); + + ty.const_array(&chunks).into() + }) + // Interleave padding and field types, resulting in: + // [align_padding1, type1, align_padding2, type2, rear_padding] + .interleave(field_values.into_iter()) + .collect(); + + let value = struct_type.const_named_struct(&struct_fields); + crate::value::Value::from_raw(value) + } + } - impl<'ink> crate::value::AsValue<'ink, #ident> for #ident { - fn as_value(&self, context: &crate::value::IrValueContext<'ink, '_, '_>) -> crate::value::Value<'ink, Self> { - let struct_type = Self::get_ir_type(context.type_context); - // eprintln!("Constructing: {:?}", struct_type.print_to_string().to_string()); - let value = struct_type.const_named_struct(&[ - #(#field_types_values),* - ]); - // eprintln!("Done"); - crate::value::Value::from_raw(value) - } + impl<'ink> crate::value::AddressableType<'ink, #ident> for #ident {} + }).into() } - - impl<'ink> crate::value::AddressableType<'ink, #ident> for #ident {} - }).into() -} - -/// A procedural macro that implements the `TestIsAbiCompatible` trait for a struct. This -/// implementation enables testing for every field of a struct whether its abi type is compatible -/// with the current implementation. -#[proc_macro_derive(TestIsAbiCompatible, attributes(abi_type))] -pub fn is_abi_compatible_derive(input: TokenStream) -> TokenStream { - // Parse Phase - let derive_input = parse_macro_input!(input as DeriveInput); - let struct_data = match derive_input.data { - Data::Struct(data) => data, Data::Union(_) => { - panic!("#[derive(IsAbiCompatible)] is only defined for structs, not for unions!") + unimplemented!("#[derive(AsValue)] is not defined for unions!"); } Data::Enum(_) => { - panic!("#[derive(IsAbiCompatible)] is only defined for structs, not for enums!") - } - }; - - // Parse the [abi_type(...)] part - let mut abi_type_name: Option = None; - for attr in derive_input - .attrs - .iter() - .filter(|a| { - a.path - .get_ident() - .map(|i| *i == "abi_type") - .unwrap_or(false) - }) - .map(Attribute::parse_meta) - .filter_map(|x| x.ok()) - { - if let Meta::List(meta_list) = attr { - if meta_list.nested.len() != 1 { - panic!("expected abi_type to be a single path") - } else if let NestedMeta::Meta(Meta::Path(p)) = meta_list.nested.first().unwrap() { - abi_type_name = Some(p.clone()); - } - } else { - panic!("expected abi_type to be path got: {:?}", attr) + unimplemented!("#[derive(AsValue)] is not defined for enums!"); } } - - let abi_type = if let Some(tokens) = abi_type_name { - tokens - } else { - panic!("#[derive(IsAbiCompatible)] required abi_type to be defined") - }; - - // Construct the abi type path string - let abi_type_name = abi_type - .segments - .iter() - .map(|s| format!("{}", s.ident)) - .collect::>() - .join("::"); - - let struct_generics = { - let generics = &derive_input.generics; - quote! { - #generics - } - }; - - // Get the type and name of the struct we're implementing this for - let struct_type = { - let ident = derive_input.ident; - let generics = derive_input.generics; - quote! { - #ident #generics - } - }; - let struct_type_name = format!("{}", struct_type); - - // Generate code for every field to test its compatibility - let field_types = struct_data.fields.iter().map(|f| { - let ty = &f.ty; - let name = f.ident.as_ref().unwrap().to_string(); - let ident = f.ident.as_ref().unwrap(); - quote! { - self::test::AbiTypeHelper::from_value(&abi_value.#ident) - .ir_type::<#ty>() - .assert_compatible(#struct_type_name, #abi_type_name, #name); - } - }); - - // Generate Phase - (quote! { - #[cfg(test)] - impl #struct_generics self::test::TestIsAbiCompatible<#abi_type> for #struct_type { - fn test(abi_value: &#abi_type) { - use self::test::*; - #(#field_types)* - } - } - - #[cfg(test)] - impl #struct_generics self::test::IsAbiCompatible<#abi_type> for #struct_type {} - - #[cfg(test)] - impl #struct_generics self::test::IsAbiCompatible<#struct_type> for #struct_type {} - }) - .into() }