diff --git a/.gitattributes b/.gitattributes index 1e47a02..126e8f7 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1 @@ -snapshots/*.snap -diff +**/snapshots/*.snap -diff diff --git a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_call@llvm14.snap b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_call@llvm14.snap index 10e5d44..7d3eebb 100644 --- a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_call@llvm14.snap +++ b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_call@llvm14.snap @@ -14,24 +14,24 @@ entry_block: ; preds = %alloca_block ret void } -define { {}, {} } @_hl.main_unary.5({ {}, {} } %0) { +define { i32, {}, {} } @_hl.main_unary.5({ i32, {}, {} } %0) { alloca_block: br label %entry_block entry_block: ; preds = %alloca_block - %1 = call { {}, {} } @_hl.main_unary.5({ {}, {} } %0) - ret { {}, {} } %1 + %1 = call { i32, {}, {} } @_hl.main_unary.5({ i32, {}, {} } %0) + ret { i32, {}, {} } %1 } -define { { {}, {} }, { {}, {} } } @_hl.main_binary.9({ {}, {} } %0, { {}, {} } %1) { +define { { i32, {}, {} }, { i32, {}, {} } } @_hl.main_binary.9({ i32, {}, {} } %0, { i32, {}, {} } %1) { alloca_block: br label %entry_block entry_block: ; preds = %alloca_block - %2 = call { { {}, {} }, { {}, {} } } @_hl.main_binary.9({ {}, {} } %0, { {}, {} } %1) - %3 = extractvalue { { {}, {} }, { {}, {} } } %2, 0 - %4 = extractvalue { { {}, {} }, { {}, {} } } %2, 1 - %mrv = insertvalue { { {}, {} }, { {}, {} } } undef, { {}, {} } %3, 0 - %mrv7 = insertvalue { { {}, {} }, { {}, {} } } %mrv, { {}, {} } %4, 1 - ret { { {}, {} }, { {}, {} } } %mrv7 + %2 = call { { i32, {}, {} }, { i32, {}, {} } } @_hl.main_binary.9({ i32, {}, {} } %0, { i32, {}, {} } %1) + %3 = extractvalue { { i32, {}, {} }, { i32, {}, {} } } %2, 0 + %4 = extractvalue { { i32, {}, {} }, { i32, {}, {} } } %2, 1 + %mrv = insertvalue { { i32, {}, {} }, { i32, {}, {} } } undef, { i32, {}, {} } %3, 0 + %mrv7 = insertvalue { { i32, {}, {} }, { i32, {}, {} } } %mrv, { i32, {}, {} } %4, 1 + ret { { i32, {}, {} }, { i32, {}, {} } } %mrv7 } diff --git a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_call@pre-mem2reg@llvm14.snap b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_call@pre-mem2reg@llvm14.snap index 6d95704..7cd0aa2 100644 --- a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_call@pre-mem2reg@llvm14.snap +++ b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_call@pre-mem2reg@llvm14.snap @@ -14,51 +14,51 @@ entry_block: ; preds = %alloca_block ret void } -define { {}, {} } @_hl.main_unary.5({ {}, {} } %0) { +define { i32, {}, {} } @_hl.main_unary.5({ i32, {}, {} } %0) { alloca_block: - %"0" = alloca { {}, {} }, align 8 - %"6_0" = alloca { {}, {} }, align 8 - %"8_0" = alloca { {}, {} }, align 8 + %"0" = alloca { i32, {}, {} }, align 8 + %"6_0" = alloca { i32, {}, {} }, align 8 + %"8_0" = alloca { i32, {}, {} }, align 8 br label %entry_block entry_block: ; preds = %alloca_block - store { {}, {} } %0, { {}, {} }* %"6_0", align 1 - %"6_01" = load { {}, {} }, { {}, {} }* %"6_0", align 1 - %1 = call { {}, {} } @_hl.main_unary.5({ {}, {} } %"6_01") - store { {}, {} } %1, { {}, {} }* %"8_0", align 1 - %"8_02" = load { {}, {} }, { {}, {} }* %"8_0", align 1 - store { {}, {} } %"8_02", { {}, {} }* %"0", align 1 - %"03" = load { {}, {} }, { {}, {} }* %"0", align 1 - ret { {}, {} } %"03" + store { i32, {}, {} } %0, { i32, {}, {} }* %"6_0", align 4 + %"6_01" = load { i32, {}, {} }, { i32, {}, {} }* %"6_0", align 4 + %1 = call { i32, {}, {} } @_hl.main_unary.5({ i32, {}, {} } %"6_01") + store { i32, {}, {} } %1, { i32, {}, {} }* %"8_0", align 4 + %"8_02" = load { i32, {}, {} }, { i32, {}, {} }* %"8_0", align 4 + store { i32, {}, {} } %"8_02", { i32, {}, {} }* %"0", align 4 + %"03" = load { i32, {}, {} }, { i32, {}, {} }* %"0", align 4 + ret { i32, {}, {} } %"03" } -define { { {}, {} }, { {}, {} } } @_hl.main_binary.9({ {}, {} } %0, { {}, {} } %1) { +define { { i32, {}, {} }, { i32, {}, {} } } @_hl.main_binary.9({ i32, {}, {} } %0, { i32, {}, {} } %1) { alloca_block: - %"0" = alloca { {}, {} }, align 8 - %"1" = alloca { {}, {} }, align 8 - %"10_0" = alloca { {}, {} }, align 8 - %"10_1" = alloca { {}, {} }, align 8 - %"12_0" = alloca { {}, {} }, align 8 - %"12_1" = alloca { {}, {} }, align 8 + %"0" = alloca { i32, {}, {} }, align 8 + %"1" = alloca { i32, {}, {} }, align 8 + %"10_0" = alloca { i32, {}, {} }, align 8 + %"10_1" = alloca { i32, {}, {} }, align 8 + %"12_0" = alloca { i32, {}, {} }, align 8 + %"12_1" = alloca { i32, {}, {} }, align 8 br label %entry_block entry_block: ; preds = %alloca_block - store { {}, {} } %0, { {}, {} }* %"10_0", align 1 - store { {}, {} } %1, { {}, {} }* %"10_1", align 1 - %"10_01" = load { {}, {} }, { {}, {} }* %"10_0", align 1 - %"10_12" = load { {}, {} }, { {}, {} }* %"10_1", align 1 - %2 = call { { {}, {} }, { {}, {} } } @_hl.main_binary.9({ {}, {} } %"10_01", { {}, {} } %"10_12") - %3 = extractvalue { { {}, {} }, { {}, {} } } %2, 0 - %4 = extractvalue { { {}, {} }, { {}, {} } } %2, 1 - store { {}, {} } %3, { {}, {} }* %"12_0", align 1 - store { {}, {} } %4, { {}, {} }* %"12_1", align 1 - %"12_03" = load { {}, {} }, { {}, {} }* %"12_0", align 1 - %"12_14" = load { {}, {} }, { {}, {} }* %"12_1", align 1 - store { {}, {} } %"12_03", { {}, {} }* %"0", align 1 - store { {}, {} } %"12_14", { {}, {} }* %"1", align 1 - %"05" = load { {}, {} }, { {}, {} }* %"0", align 1 - %"16" = load { {}, {} }, { {}, {} }* %"1", align 1 - %mrv = insertvalue { { {}, {} }, { {}, {} } } undef, { {}, {} } %"05", 0 - %mrv7 = insertvalue { { {}, {} }, { {}, {} } } %mrv, { {}, {} } %"16", 1 - ret { { {}, {} }, { {}, {} } } %mrv7 + store { i32, {}, {} } %0, { i32, {}, {} }* %"10_0", align 4 + store { i32, {}, {} } %1, { i32, {}, {} }* %"10_1", align 4 + %"10_01" = load { i32, {}, {} }, { i32, {}, {} }* %"10_0", align 4 + %"10_12" = load { i32, {}, {} }, { i32, {}, {} }* %"10_1", align 4 + %2 = call { { i32, {}, {} }, { i32, {}, {} } } @_hl.main_binary.9({ i32, {}, {} } %"10_01", { i32, {}, {} } %"10_12") + %3 = extractvalue { { i32, {}, {} }, { i32, {}, {} } } %2, 0 + %4 = extractvalue { { i32, {}, {} }, { i32, {}, {} } } %2, 1 + store { i32, {}, {} } %3, { i32, {}, {} }* %"12_0", align 4 + store { i32, {}, {} } %4, { i32, {}, {} }* %"12_1", align 4 + %"12_03" = load { i32, {}, {} }, { i32, {}, {} }* %"12_0", align 4 + %"12_14" = load { i32, {}, {} }, { i32, {}, {} }* %"12_1", align 4 + store { i32, {}, {} } %"12_03", { i32, {}, {} }* %"0", align 4 + store { i32, {}, {} } %"12_14", { i32, {}, {} }* %"1", align 4 + %"05" = load { i32, {}, {} }, { i32, {}, {} }* %"0", align 4 + %"16" = load { i32, {}, {} }, { i32, {}, {} }* %"1", align 4 + %mrv = insertvalue { { i32, {}, {} }, { i32, {}, {} } } undef, { i32, {}, {} } %"05", 0 + %mrv7 = insertvalue { { i32, {}, {} }, { i32, {}, {} } } %mrv, { i32, {}, {} } %"16", 1 + ret { { i32, {}, {} }, { i32, {}, {} } } %mrv7 } diff --git a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_conditional@llvm14.snap b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_conditional@llvm14.snap index a7d9b52..a113570 100644 --- a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_conditional@llvm14.snap +++ b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_conditional@llvm14.snap @@ -5,40 +5,41 @@ expression: module.to_string() ; ModuleID = 'test_context' source_filename = "test_context" -define { { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, { i32, {} } } @_hl.main.1({ { { i32 } }, { { i32, {} } }, { { {}, {} } } } %0, { i32, {} } %1) { +define { { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, { {} } } @_hl.main.1({ i32, { {} }, { { {} } }, { { i32, {}, {} } } } %0, { {} } %1) { alloca_block: br label %entry_block entry_block: ; preds = %alloca_block - %2 = extractvalue { { { i32 } }, { { i32, {} } }, { { {}, {} } } } %0, 0 - %3 = extractvalue { { i32 } } %2, 0 - %4 = extractvalue { { { i32 } }, { { i32, {} } }, { { {}, {} } } } %0, 1 - %5 = extractvalue { { i32, {} } } %4, 0 - %6 = extractvalue { { { i32 } }, { { i32, {} } }, { { {}, {} } } } %0, 2 - %7 = extractvalue { { {}, {} } } %6, 0 - switch i32 0, label %cond_4_case_0 [ + %2 = extractvalue { i32, { {} }, { { {} } }, { { i32, {}, {} } } } %0, 0 + %3 = extractvalue { i32, { {} }, { { {} } }, { { i32, {}, {} } } } %0, 1 + %4 = extractvalue { {} } %3, 0 + %5 = extractvalue { i32, { {} }, { { {} } }, { { i32, {}, {} } } } %0, 2 + %6 = extractvalue { { {} } } %5, 0 + %7 = extractvalue { i32, { {} }, { { {} } }, { { i32, {}, {} } } } %0, 3 + %8 = extractvalue { { i32, {}, {} } } %7, 0 + switch i32 %2, label %cond_4_case_0 [ i32 1, label %cond_4_case_1 i32 2, label %cond_4_case_2 ] cond_4_case_0: ; preds = %entry_block - %8 = insertvalue { { i32 } } undef, { i32 } %3, 0 - %9 = insertvalue { { { {}, {} } }, { { i32, {} } }, { { i32 } } } poison, { { i32 } } %8, 2 + %9 = insertvalue { {} } undef, {} %4, 0 + %10 = insertvalue { i32, { { i32, {}, {} } }, { { {} } }, { {} } } { i32 2, { { i32, {}, {} } } poison, { { {} } } poison, { {} } poison }, { {} } %9, 3 br label %cond_exit_4 cond_4_case_1: ; preds = %entry_block - %10 = insertvalue { { i32, {} } } undef, { i32, {} } %5, 0 - %11 = insertvalue { { { {}, {} } }, { { i32, {} } }, { { i32 } } } poison, { { i32, {} } } %10, 1 + %11 = insertvalue { { {} } } undef, { {} } %6, 0 + %12 = insertvalue { i32, { { i32, {}, {} } }, { { {} } }, { {} } } { i32 1, { { i32, {}, {} } } poison, { { {} } } poison, { {} } poison }, { { {} } } %11, 2 br label %cond_exit_4 cond_4_case_2: ; preds = %entry_block - %12 = insertvalue { { {}, {} } } undef, { {}, {} } %7, 0 - %13 = insertvalue { { { {}, {} } }, { { i32, {} } }, { { i32 } } } poison, { { {}, {} } } %12, 0 + %13 = insertvalue { { i32, {}, {} } } undef, { i32, {}, {} } %8, 0 + %14 = insertvalue { i32, { { i32, {}, {} } }, { { {} } }, { {} } } { i32 0, { { i32, {}, {} } } poison, { { {} } } poison, { {} } poison }, { { i32, {}, {} } } %13, 1 br label %cond_exit_4 cond_exit_4: ; preds = %cond_4_case_2, %cond_4_case_1, %cond_4_case_0 - %"03.0" = phi { { { {}, {} } }, { { i32, {} } }, { { i32 } } } [ %9, %cond_4_case_0 ], [ %13, %cond_4_case_2 ], [ %11, %cond_4_case_1 ] - %mrv = insertvalue { { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, { i32, {} } } undef, { { { {}, {} } }, { { i32, {} } }, { { i32 } } } %"03.0", 0 - %mrv32 = insertvalue { { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, { i32, {} } } %mrv, { i32, {} } %1, 1 - ret { { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, { i32, {} } } %mrv32 + %"03.0" = phi { i32, { { i32, {}, {} } }, { { {} } }, { {} } } [ %10, %cond_4_case_0 ], [ %14, %cond_4_case_2 ], [ %12, %cond_4_case_1 ] + %mrv = insertvalue { { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, { {} } } undef, { i32, { { i32, {}, {} } }, { { {} } }, { {} } } %"03.0", 0 + %mrv32 = insertvalue { { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, { {} } } %mrv, { {} } %1, 1 + ret { { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, { {} } } %mrv32 } diff --git a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_conditional@pre-mem2reg@llvm14.snap b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_conditional@pre-mem2reg@llvm14.snap index fda29c1..423b25f 100644 --- a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_conditional@pre-mem2reg@llvm14.snap +++ b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_conditional@pre-mem2reg@llvm14.snap @@ -5,112 +5,113 @@ expression: module.to_string() ; ModuleID = 'test_context' source_filename = "test_context" -define { { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, { i32, {} } } @_hl.main.1({ { { i32 } }, { { i32, {} } }, { { {}, {} } } } %0, { i32, {} } %1) { +define { { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, { {} } } @_hl.main.1({ i32, { {} }, { { {} } }, { { i32, {}, {} } } } %0, { {} } %1) { alloca_block: - %"0" = alloca { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, align 8 - %"1" = alloca { i32, {} }, align 8 - %"2_0" = alloca { { { i32 } }, { { i32, {} } }, { { {}, {} } } }, align 8 - %"2_1" = alloca { i32, {} }, align 8 - %"4_0" = alloca { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, align 8 - %"4_1" = alloca { i32, {} }, align 8 - %"03" = alloca { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, align 8 - %"14" = alloca { i32, {} }, align 8 - %"07" = alloca { i32 }, align 8 - %"18" = alloca { i32, {} }, align 8 - %"6_0" = alloca { i32 }, align 8 - %"6_1" = alloca { i32, {} }, align 8 - %"8_0" = alloca { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, align 8 - %"014" = alloca { i32, {} }, align 8 - %"115" = alloca { i32, {} }, align 8 - %"10_0" = alloca { i32, {} }, align 8 - %"10_1" = alloca { i32, {} }, align 8 - %"12_0" = alloca { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, align 8 - %"021" = alloca { {}, {} }, align 8 - %"122" = alloca { i32, {} }, align 8 - %"14_0" = alloca { {}, {} }, align 8 - %"14_1" = alloca { i32, {} }, align 8 - %"16_0" = alloca { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, align 8 + %"0" = alloca { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, align 8 + %"1" = alloca { {} }, align 8 + %"2_0" = alloca { i32, { {} }, { { {} } }, { { i32, {}, {} } } }, align 8 + %"2_1" = alloca { {} }, align 8 + %"4_0" = alloca { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, align 8 + %"4_1" = alloca { {} }, align 8 + %"03" = alloca { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, align 8 + %"14" = alloca { {} }, align 8 + %"07" = alloca {}, align 8 + %"18" = alloca { {} }, align 8 + %"6_0" = alloca {}, align 8 + %"6_1" = alloca { {} }, align 8 + %"8_0" = alloca { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, align 8 + %"014" = alloca { {} }, align 8 + %"115" = alloca { {} }, align 8 + %"10_0" = alloca { {} }, align 8 + %"10_1" = alloca { {} }, align 8 + %"12_0" = alloca { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, align 8 + %"021" = alloca { i32, {}, {} }, align 8 + %"122" = alloca { {} }, align 8 + %"14_0" = alloca { i32, {}, {} }, align 8 + %"14_1" = alloca { {} }, align 8 + %"16_0" = alloca { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, align 8 br label %entry_block entry_block: ; preds = %alloca_block - store { { { i32 } }, { { i32, {} } }, { { {}, {} } } } %0, { { { i32 } }, { { i32, {} } }, { { {}, {} } } }* %"2_0", align 4 - store { i32, {} } %1, { i32, {} }* %"2_1", align 4 - %"2_01" = load { { { i32 } }, { { i32, {} } }, { { {}, {} } } }, { { { i32 } }, { { i32, {} } }, { { {}, {} } } }* %"2_0", align 4 - %"2_12" = load { i32, {} }, { i32, {} }* %"2_1", align 4 - %2 = extractvalue { { { i32 } }, { { i32, {} } }, { { {}, {} } } } %"2_01", 0 - %3 = extractvalue { { i32 } } %2, 0 - store { i32 } %3, { i32 }* %"07", align 4 - store { i32, {} } %"2_12", { i32, {} }* %"18", align 4 - %4 = extractvalue { { { i32 } }, { { i32, {} } }, { { {}, {} } } } %"2_01", 1 - %5 = extractvalue { { i32, {} } } %4, 0 - store { i32, {} } %5, { i32, {} }* %"014", align 4 - store { i32, {} } %"2_12", { i32, {} }* %"115", align 4 - %6 = extractvalue { { { i32 } }, { { i32, {} } }, { { {}, {} } } } %"2_01", 2 - %7 = extractvalue { { {}, {} } } %6, 0 - store { {}, {} } %7, { {}, {} }* %"021", align 1 - store { i32, {} } %"2_12", { i32, {} }* %"122", align 4 - switch i32 0, label %cond_4_case_0 [ + store { i32, { {} }, { { {} } }, { { i32, {}, {} } } } %0, { i32, { {} }, { { {} } }, { { i32, {}, {} } } }* %"2_0", align 4 + store { {} } %1, { {} }* %"2_1", align 1 + %"2_01" = load { i32, { {} }, { { {} } }, { { i32, {}, {} } } }, { i32, { {} }, { { {} } }, { { i32, {}, {} } } }* %"2_0", align 4 + %"2_12" = load { {} }, { {} }* %"2_1", align 1 + %2 = extractvalue { i32, { {} }, { { {} } }, { { i32, {}, {} } } } %"2_01", 0 + %3 = extractvalue { i32, { {} }, { { {} } }, { { i32, {}, {} } } } %"2_01", 1 + %4 = extractvalue { {} } %3, 0 + store {} %4, {}* %"07", align 1 + store { {} } %"2_12", { {} }* %"18", align 1 + %5 = extractvalue { i32, { {} }, { { {} } }, { { i32, {}, {} } } } %"2_01", 2 + %6 = extractvalue { { {} } } %5, 0 + store { {} } %6, { {} }* %"014", align 1 + store { {} } %"2_12", { {} }* %"115", align 1 + %7 = extractvalue { i32, { {} }, { { {} } }, { { i32, {}, {} } } } %"2_01", 3 + %8 = extractvalue { { i32, {}, {} } } %7, 0 + store { i32, {}, {} } %8, { i32, {}, {} }* %"021", align 4 + store { {} } %"2_12", { {} }* %"122", align 1 + switch i32 %2, label %cond_4_case_0 [ i32 1, label %cond_4_case_1 i32 2, label %cond_4_case_2 ] cond_4_case_0: ; preds = %entry_block - %"09" = load { i32 }, { i32 }* %"07", align 4 - %"110" = load { i32, {} }, { i32, {} }* %"18", align 4 - store { i32 } %"09", { i32 }* %"6_0", align 4 - store { i32, {} } %"110", { i32, {} }* %"6_1", align 4 - %"6_011" = load { i32 }, { i32 }* %"6_0", align 4 - %8 = insertvalue { { i32 } } undef, { i32 } %"6_011", 0 - %9 = insertvalue { { { {}, {} } }, { { i32, {} } }, { { i32 } } } poison, { { i32 } } %8, 2 - store { { { {}, {} } }, { { i32, {} } }, { { i32 } } } %9, { { { {}, {} } }, { { i32, {} } }, { { i32 } } }* %"8_0", align 4 - %"8_012" = load { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, { { { {}, {} } }, { { i32, {} } }, { { i32 } } }* %"8_0", align 4 - %"6_113" = load { i32, {} }, { i32, {} }* %"6_1", align 4 - store { { { {}, {} } }, { { i32, {} } }, { { i32 } } } %"8_012", { { { {}, {} } }, { { i32, {} } }, { { i32 } } }* %"03", align 4 - store { i32, {} } %"6_113", { i32, {} }* %"14", align 4 + %"09" = load {}, {}* %"07", align 1 + %"110" = load { {} }, { {} }* %"18", align 1 + store {} %"09", {}* %"6_0", align 1 + store { {} } %"110", { {} }* %"6_1", align 1 + %"6_011" = load {}, {}* %"6_0", align 1 + %9 = insertvalue { {} } undef, {} %"6_011", 0 + %10 = insertvalue { i32, { { i32, {}, {} } }, { { {} } }, { {} } } { i32 2, { { i32, {}, {} } } poison, { { {} } } poison, { {} } poison }, { {} } %9, 3 + store { i32, { { i32, {}, {} } }, { { {} } }, { {} } } %10, { i32, { { i32, {}, {} } }, { { {} } }, { {} } }* %"8_0", align 4 + %"8_012" = load { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, { i32, { { i32, {}, {} } }, { { {} } }, { {} } }* %"8_0", align 4 + %"6_113" = load { {} }, { {} }* %"6_1", align 1 + store { i32, { { i32, {}, {} } }, { { {} } }, { {} } } %"8_012", { i32, { { i32, {}, {} } }, { { {} } }, { {} } }* %"03", align 4 + store { {} } %"6_113", { {} }* %"14", align 1 br label %cond_exit_4 cond_4_case_1: ; preds = %entry_block - %"016" = load { i32, {} }, { i32, {} }* %"014", align 4 - %"117" = load { i32, {} }, { i32, {} }* %"115", align 4 - store { i32, {} } %"016", { i32, {} }* %"10_0", align 4 - store { i32, {} } %"117", { i32, {} }* %"10_1", align 4 - %"10_018" = load { i32, {} }, { i32, {} }* %"10_0", align 4 - %10 = insertvalue { { i32, {} } } undef, { i32, {} } %"10_018", 0 - %11 = insertvalue { { { {}, {} } }, { { i32, {} } }, { { i32 } } } poison, { { i32, {} } } %10, 1 - store { { { {}, {} } }, { { i32, {} } }, { { i32 } } } %11, { { { {}, {} } }, { { i32, {} } }, { { i32 } } }* %"12_0", align 4 - %"12_019" = load { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, { { { {}, {} } }, { { i32, {} } }, { { i32 } } }* %"12_0", align 4 - %"10_120" = load { i32, {} }, { i32, {} }* %"10_1", align 4 - store { { { {}, {} } }, { { i32, {} } }, { { i32 } } } %"12_019", { { { {}, {} } }, { { i32, {} } }, { { i32 } } }* %"03", align 4 - store { i32, {} } %"10_120", { i32, {} }* %"14", align 4 + %"016" = load { {} }, { {} }* %"014", align 1 + %"117" = load { {} }, { {} }* %"115", align 1 + store { {} } %"016", { {} }* %"10_0", align 1 + store { {} } %"117", { {} }* %"10_1", align 1 + %"10_018" = load { {} }, { {} }* %"10_0", align 1 + %11 = insertvalue { { {} } } undef, { {} } %"10_018", 0 + %12 = insertvalue { i32, { { i32, {}, {} } }, { { {} } }, { {} } } { i32 1, { { i32, {}, {} } } poison, { { {} } } poison, { {} } poison }, { { {} } } %11, 2 + store { i32, { { i32, {}, {} } }, { { {} } }, { {} } } %12, { i32, { { i32, {}, {} } }, { { {} } }, { {} } }* %"12_0", align 4 + %"12_019" = load { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, { i32, { { i32, {}, {} } }, { { {} } }, { {} } }* %"12_0", align 4 + %"10_120" = load { {} }, { {} }* %"10_1", align 1 + store { i32, { { i32, {}, {} } }, { { {} } }, { {} } } %"12_019", { i32, { { i32, {}, {} } }, { { {} } }, { {} } }* %"03", align 4 + store { {} } %"10_120", { {} }* %"14", align 1 br label %cond_exit_4 cond_4_case_2: ; preds = %entry_block - %"023" = load { {}, {} }, { {}, {} }* %"021", align 1 - %"124" = load { i32, {} }, { i32, {} }* %"122", align 4 - store { {}, {} } %"023", { {}, {} }* %"14_0", align 1 - store { i32, {} } %"124", { i32, {} }* %"14_1", align 4 - %"14_025" = load { {}, {} }, { {}, {} }* %"14_0", align 1 - %12 = insertvalue { { {}, {} } } undef, { {}, {} } %"14_025", 0 - %13 = insertvalue { { { {}, {} } }, { { i32, {} } }, { { i32 } } } poison, { { {}, {} } } %12, 0 - store { { { {}, {} } }, { { i32, {} } }, { { i32 } } } %13, { { { {}, {} } }, { { i32, {} } }, { { i32 } } }* %"16_0", align 4 - %"16_026" = load { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, { { { {}, {} } }, { { i32, {} } }, { { i32 } } }* %"16_0", align 4 - %"14_127" = load { i32, {} }, { i32, {} }* %"14_1", align 4 - store { { { {}, {} } }, { { i32, {} } }, { { i32 } } } %"16_026", { { { {}, {} } }, { { i32, {} } }, { { i32 } } }* %"03", align 4 - store { i32, {} } %"14_127", { i32, {} }* %"14", align 4 + %"023" = load { i32, {}, {} }, { i32, {}, {} }* %"021", align 4 + %"124" = load { {} }, { {} }* %"122", align 1 + store { i32, {}, {} } %"023", { i32, {}, {} }* %"14_0", align 4 + store { {} } %"124", { {} }* %"14_1", align 1 + %"14_025" = load { i32, {}, {} }, { i32, {}, {} }* %"14_0", align 4 + %13 = insertvalue { { i32, {}, {} } } undef, { i32, {}, {} } %"14_025", 0 + %14 = insertvalue { i32, { { i32, {}, {} } }, { { {} } }, { {} } } { i32 0, { { i32, {}, {} } } poison, { { {} } } poison, { {} } poison }, { { i32, {}, {} } } %13, 1 + store { i32, { { i32, {}, {} } }, { { {} } }, { {} } } %14, { i32, { { i32, {}, {} } }, { { {} } }, { {} } }* %"16_0", align 4 + %"16_026" = load { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, { i32, { { i32, {}, {} } }, { { {} } }, { {} } }* %"16_0", align 4 + %"14_127" = load { {} }, { {} }* %"14_1", align 1 + store { i32, { { i32, {}, {} } }, { { {} } }, { {} } } %"16_026", { i32, { { i32, {}, {} } }, { { {} } }, { {} } }* %"03", align 4 + store { {} } %"14_127", { {} }* %"14", align 1 br label %cond_exit_4 cond_exit_4: ; preds = %cond_4_case_2, %cond_4_case_1, %cond_4_case_0 - %"05" = load { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, { { { {}, {} } }, { { i32, {} } }, { { i32 } } }* %"03", align 4 - %"16" = load { i32, {} }, { i32, {} }* %"14", align 4 - store { { { {}, {} } }, { { i32, {} } }, { { i32 } } } %"05", { { { {}, {} } }, { { i32, {} } }, { { i32 } } }* %"4_0", align 4 - store { i32, {} } %"16", { i32, {} }* %"4_1", align 4 - %"4_028" = load { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, { { { {}, {} } }, { { i32, {} } }, { { i32 } } }* %"4_0", align 4 - %"4_129" = load { i32, {} }, { i32, {} }* %"4_1", align 4 - store { { { {}, {} } }, { { i32, {} } }, { { i32 } } } %"4_028", { { { {}, {} } }, { { i32, {} } }, { { i32 } } }* %"0", align 4 - store { i32, {} } %"4_129", { i32, {} }* %"1", align 4 - %"030" = load { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, { { { {}, {} } }, { { i32, {} } }, { { i32 } } }* %"0", align 4 - %"131" = load { i32, {} }, { i32, {} }* %"1", align 4 - %mrv = insertvalue { { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, { i32, {} } } undef, { { { {}, {} } }, { { i32, {} } }, { { i32 } } } %"030", 0 - %mrv32 = insertvalue { { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, { i32, {} } } %mrv, { i32, {} } %"131", 1 - ret { { { { {}, {} } }, { { i32, {} } }, { { i32 } } }, { i32, {} } } %mrv32 + %"05" = load { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, { i32, { { i32, {}, {} } }, { { {} } }, { {} } }* %"03", align 4 + %"16" = load { {} }, { {} }* %"14", align 1 + store { i32, { { i32, {}, {} } }, { { {} } }, { {} } } %"05", { i32, { { i32, {}, {} } }, { { {} } }, { {} } }* %"4_0", align 4 + store { {} } %"16", { {} }* %"4_1", align 1 + %"4_028" = load { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, { i32, { { i32, {}, {} } }, { { {} } }, { {} } }* %"4_0", align 4 + %"4_129" = load { {} }, { {} }* %"4_1", align 1 + store { i32, { { i32, {}, {} } }, { { {} } }, { {} } } %"4_028", { i32, { { i32, {}, {} } }, { { {} } }, { {} } }* %"0", align 4 + store { {} } %"4_129", { {} }* %"1", align 1 + %"030" = load { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, { i32, { { i32, {}, {} } }, { { {} } }, { {} } }* %"0", align 4 + %"131" = load { {} }, { {} }* %"1", align 1 + %mrv = insertvalue { { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, { {} } } undef, { i32, { { i32, {}, {} } }, { { {} } }, { {} } } %"030", 0 + %mrv32 = insertvalue { { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, { {} } } %mrv, { {} } %"131", 1 + ret { { i32, { { i32, {}, {} } }, { { {} } }, { {} } }, { {} } } %mrv32 } diff --git a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_dfg@llvm14.snap b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_dfg@llvm14.snap index af6800c..8ca5d26 100644 --- a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_dfg@llvm14.snap +++ b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_dfg@llvm14.snap @@ -5,10 +5,10 @@ expression: module.to_string() ; ModuleID = 'test_context' source_filename = "test_context" -define { i32, {} } @_hl.main.1({ i32, {} } %0) { +define { {} } @_hl.main.1({ {} } %0) { alloca_block: br label %entry_block entry_block: ; preds = %alloca_block - ret { i32, {} } %0 + ret { {} } %0 } diff --git a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_dfg@pre-mem2reg@llvm14.snap b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_dfg@pre-mem2reg@llvm14.snap index 38902a2..04f627a 100644 --- a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_dfg@pre-mem2reg@llvm14.snap +++ b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_dfg@pre-mem2reg@llvm14.snap @@ -5,22 +5,22 @@ expression: module.to_string() ; ModuleID = 'test_context' source_filename = "test_context" -define { i32, {} } @_hl.main.1({ i32, {} } %0) { +define { {} } @_hl.main.1({ {} } %0) { alloca_block: - %"0" = alloca { i32, {} }, align 8 - %"2_0" = alloca { i32, {} }, align 8 - %"4_0" = alloca { i32, {} }, align 8 - %"5_0" = alloca { i32, {} }, align 8 + %"0" = alloca { {} }, align 8 + %"2_0" = alloca { {} }, align 8 + %"4_0" = alloca { {} }, align 8 + %"5_0" = alloca { {} }, align 8 br label %entry_block entry_block: ; preds = %alloca_block - store { i32, {} } %0, { i32, {} }* %"2_0", align 4 - %"2_01" = load { i32, {} }, { i32, {} }* %"2_0", align 4 - store { i32, {} } %"2_01", { i32, {} }* %"5_0", align 4 - %"5_02" = load { i32, {} }, { i32, {} }* %"5_0", align 4 - store { i32, {} } %"5_02", { i32, {} }* %"4_0", align 4 - %"4_03" = load { i32, {} }, { i32, {} }* %"4_0", align 4 - store { i32, {} } %"4_03", { i32, {} }* %"0", align 4 - %"04" = load { i32, {} }, { i32, {} }* %"0", align 4 - ret { i32, {} } %"04" + store { {} } %0, { {} }* %"2_0", align 1 + %"2_01" = load { {} }, { {} }* %"2_0", align 1 + store { {} } %"2_01", { {} }* %"5_0", align 1 + %"5_02" = load { {} }, { {} }* %"5_0", align 1 + store { {} } %"5_02", { {} }* %"4_0", align 1 + %"4_03" = load { {} }, { {} }* %"4_0", align 1 + store { {} } %"4_03", { {} }* %"0", align 1 + %"04" = load { {} }, { {} }* %"0", align 1 + ret { {} } %"04" } diff --git a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_load_constant@llvm14.snap b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_load_constant@llvm14.snap index dd875de..df80ecc 100644 --- a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_load_constant@llvm14.snap +++ b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_load_constant@llvm14.snap @@ -5,10 +5,10 @@ expression: module.to_string() ; ModuleID = 'test_context' source_filename = "test_context" -define { i32, { { {}, {}, {}, {} }, i16 } } @_hl.main.1() { +define { { { i32, {}, {}, {}, {} }, i16 } } @_hl.main.1() { alloca_block: br label %entry_block entry_block: ; preds = %alloca_block - ret { i32, { { {}, {}, {}, {} }, i16 } } { i32 0, { { {}, {}, {}, {} }, i16 } { { {}, {}, {}, {} } { {} poison, {} poison, {} undef, {} poison }, i16 -24 } } + ret { { { i32, {}, {}, {}, {} }, i16 } } { { { i32, {}, {}, {}, {} }, i16 } { { i32, {}, {}, {}, {} } { i32 2, {} poison, {} poison, {} undef, {} poison }, i16 -24 } } } diff --git a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_load_constant@pre-mem2reg@llvm14.snap b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_load_constant@pre-mem2reg@llvm14.snap index 32235d4..e8424cf 100644 --- a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_load_constant@pre-mem2reg@llvm14.snap +++ b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_load_constant@pre-mem2reg@llvm14.snap @@ -5,16 +5,16 @@ expression: module.to_string() ; ModuleID = 'test_context' source_filename = "test_context" -define { i32, { { {}, {}, {}, {} }, i16 } } @_hl.main.1() { +define { { { i32, {}, {}, {}, {} }, i16 } } @_hl.main.1() { alloca_block: - %"0" = alloca { i32, { { {}, {}, {}, {} }, i16 } }, align 8 - %"5_0" = alloca { i32, { { {}, {}, {}, {} }, i16 } }, align 8 + %"0" = alloca { { { i32, {}, {}, {}, {} }, i16 } }, align 8 + %"5_0" = alloca { { { i32, {}, {}, {}, {} }, i16 } }, align 8 br label %entry_block entry_block: ; preds = %alloca_block - store { i32, { { {}, {}, {}, {} }, i16 } } { i32 0, { { {}, {}, {}, {} }, i16 } { { {}, {}, {}, {} } { {} poison, {} poison, {} undef, {} poison }, i16 -24 } }, { i32, { { {}, {}, {}, {} }, i16 } }* %"5_0", align 4 - %"5_01" = load { i32, { { {}, {}, {}, {} }, i16 } }, { i32, { { {}, {}, {}, {} }, i16 } }* %"5_0", align 4 - store { i32, { { {}, {}, {}, {} }, i16 } } %"5_01", { i32, { { {}, {}, {}, {} }, i16 } }* %"0", align 4 - %"02" = load { i32, { { {}, {}, {}, {} }, i16 } }, { i32, { { {}, {}, {}, {} }, i16 } }* %"0", align 4 - ret { i32, { { {}, {}, {}, {} }, i16 } } %"02" + store { { { i32, {}, {}, {}, {} }, i16 } } { { { i32, {}, {}, {}, {} }, i16 } { { i32, {}, {}, {}, {} } { i32 2, {} poison, {} poison, {} undef, {} poison }, i16 -24 } }, { { { i32, {}, {}, {}, {} }, i16 } }* %"5_0", align 4 + %"5_01" = load { { { i32, {}, {}, {}, {} }, i16 } }, { { { i32, {}, {}, {}, {} }, i16 } }* %"5_0", align 4 + store { { { i32, {}, {}, {}, {} }, i16 } } %"5_01", { { { i32, {}, {}, {}, {} }, i16 } }* %"0", align 4 + %"02" = load { { { i32, {}, {}, {}, {} }, i16 } }, { { { i32, {}, {}, {}, {} }, i16 } }* %"0", align 4 + ret { { { i32, {}, {}, {}, {} }, i16 } } %"02" } diff --git a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_make_tuple@llvm14.snap b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_make_tuple@llvm14.snap index 567330b..ad60ef4 100644 --- a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_make_tuple@llvm14.snap +++ b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_make_tuple@llvm14.snap @@ -5,13 +5,13 @@ expression: module.to_string() ; ModuleID = 'test_context' source_filename = "test_context" -define { i32, { { {}, {} }, { {}, {} } } } @_hl.main.1({ {}, {} } %0, { {}, {} } %1) { +define { { { i32, {}, {} }, { i32, {}, {} } } } @_hl.main.1({ i32, {}, {} } %0, { i32, {}, {} } %1) { alloca_block: br label %entry_block entry_block: ; preds = %alloca_block - %2 = insertvalue { { {}, {} }, { {}, {} } } undef, { {}, {} } %0, 0 - %3 = insertvalue { { {}, {} }, { {}, {} } } %2, { {}, {} } %1, 1 - %4 = insertvalue { i32, { { {}, {} }, { {}, {} } } } { i32 0, { { {}, {} }, { {}, {} } } poison }, { { {}, {} }, { {}, {} } } %3, 1 - ret { i32, { { {}, {} }, { {}, {} } } } %4 + %2 = insertvalue { { i32, {}, {} }, { i32, {}, {} } } undef, { i32, {}, {} } %0, 0 + %3 = insertvalue { { i32, {}, {} }, { i32, {}, {} } } %2, { i32, {}, {} } %1, 1 + %4 = insertvalue { { { i32, {}, {} }, { i32, {}, {} } } } poison, { { i32, {}, {} }, { i32, {}, {} } } %3, 0 + ret { { { i32, {}, {} }, { i32, {}, {} } } } %4 } diff --git a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_make_tuple@pre-mem2reg@llvm14.snap b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_make_tuple@pre-mem2reg@llvm14.snap index d0ba060..51a81e2 100644 --- a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_make_tuple@pre-mem2reg@llvm14.snap +++ b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_make_tuple@pre-mem2reg@llvm14.snap @@ -5,25 +5,25 @@ expression: module.to_string() ; ModuleID = 'test_context' source_filename = "test_context" -define { i32, { { {}, {} }, { {}, {} } } } @_hl.main.1({ {}, {} } %0, { {}, {} } %1) { +define { { { i32, {}, {} }, { i32, {}, {} } } } @_hl.main.1({ i32, {}, {} } %0, { i32, {}, {} } %1) { alloca_block: - %"0" = alloca { i32, { { {}, {} }, { {}, {} } } }, align 8 - %"2_0" = alloca { {}, {} }, align 8 - %"2_1" = alloca { {}, {} }, align 8 - %"4_0" = alloca { i32, { { {}, {} }, { {}, {} } } }, align 8 + %"0" = alloca { { { i32, {}, {} }, { i32, {}, {} } } }, align 8 + %"2_0" = alloca { i32, {}, {} }, align 8 + %"2_1" = alloca { i32, {}, {} }, align 8 + %"4_0" = alloca { { { i32, {}, {} }, { i32, {}, {} } } }, align 8 br label %entry_block entry_block: ; preds = %alloca_block - store { {}, {} } %0, { {}, {} }* %"2_0", align 1 - store { {}, {} } %1, { {}, {} }* %"2_1", align 1 - %"2_01" = load { {}, {} }, { {}, {} }* %"2_0", align 1 - %"2_12" = load { {}, {} }, { {}, {} }* %"2_1", align 1 - %2 = insertvalue { { {}, {} }, { {}, {} } } undef, { {}, {} } %"2_01", 0 - %3 = insertvalue { { {}, {} }, { {}, {} } } %2, { {}, {} } %"2_12", 1 - %4 = insertvalue { i32, { { {}, {} }, { {}, {} } } } { i32 0, { { {}, {} }, { {}, {} } } poison }, { { {}, {} }, { {}, {} } } %3, 1 - store { i32, { { {}, {} }, { {}, {} } } } %4, { i32, { { {}, {} }, { {}, {} } } }* %"4_0", align 4 - %"4_03" = load { i32, { { {}, {} }, { {}, {} } } }, { i32, { { {}, {} }, { {}, {} } } }* %"4_0", align 4 - store { i32, { { {}, {} }, { {}, {} } } } %"4_03", { i32, { { {}, {} }, { {}, {} } } }* %"0", align 4 - %"04" = load { i32, { { {}, {} }, { {}, {} } } }, { i32, { { {}, {} }, { {}, {} } } }* %"0", align 4 - ret { i32, { { {}, {} }, { {}, {} } } } %"04" + store { i32, {}, {} } %0, { i32, {}, {} }* %"2_0", align 4 + store { i32, {}, {} } %1, { i32, {}, {} }* %"2_1", align 4 + %"2_01" = load { i32, {}, {} }, { i32, {}, {} }* %"2_0", align 4 + %"2_12" = load { i32, {}, {} }, { i32, {}, {} }* %"2_1", align 4 + %2 = insertvalue { { i32, {}, {} }, { i32, {}, {} } } undef, { i32, {}, {} } %"2_01", 0 + %3 = insertvalue { { i32, {}, {} }, { i32, {}, {} } } %2, { i32, {}, {} } %"2_12", 1 + %4 = insertvalue { { { i32, {}, {} }, { i32, {}, {} } } } poison, { { i32, {}, {} }, { i32, {}, {} } } %3, 0 + store { { { i32, {}, {} }, { i32, {}, {} } } } %4, { { { i32, {}, {} }, { i32, {}, {} } } }* %"4_0", align 4 + %"4_03" = load { { { i32, {}, {} }, { i32, {}, {} } } }, { { { i32, {}, {} }, { i32, {}, {} } } }* %"4_0", align 4 + store { { { i32, {}, {} }, { i32, {}, {} } } } %"4_03", { { { i32, {}, {} }, { i32, {}, {} } } }* %"0", align 4 + %"04" = load { { { i32, {}, {} }, { i32, {}, {} } } }, { { { i32, {}, {} }, { i32, {}, {} } } }* %"0", align 4 + ret { { { i32, {}, {} }, { i32, {}, {} } } } %"04" } diff --git a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_tag@llvm14.snap b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_tag@llvm14.snap index 3860a43..10a6b33 100644 --- a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_tag@llvm14.snap +++ b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_tag@llvm14.snap @@ -5,10 +5,10 @@ expression: module.to_string() ; ModuleID = 'test_context' source_filename = "test_context" -define { {}, {}, {} } @_hl.main.1() { +define { i32, {}, {}, {} } @_hl.main.1() { alloca_block: br label %entry_block entry_block: ; preds = %alloca_block - ret { {}, {}, {} } { {} poison, {} undef, {} poison } + ret { i32, {}, {}, {} } { i32 1, {} poison, {} undef, {} poison } } diff --git a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_tag@pre-mem2reg@llvm14.snap b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_tag@pre-mem2reg@llvm14.snap index 58f5b08..3dbc925 100644 --- a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_tag@pre-mem2reg@llvm14.snap +++ b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_tag@pre-mem2reg@llvm14.snap @@ -5,16 +5,16 @@ expression: module.to_string() ; ModuleID = 'test_context' source_filename = "test_context" -define { {}, {}, {} } @_hl.main.1() { +define { i32, {}, {}, {} } @_hl.main.1() { alloca_block: - %"0" = alloca { {}, {}, {} }, align 8 - %"4_0" = alloca { {}, {}, {} }, align 8 + %"0" = alloca { i32, {}, {}, {} }, align 8 + %"4_0" = alloca { i32, {}, {}, {} }, align 8 br label %entry_block entry_block: ; preds = %alloca_block - store { {}, {}, {} } { {} poison, {} undef, {} poison }, { {}, {}, {} }* %"4_0", align 1 - %"4_01" = load { {}, {}, {} }, { {}, {}, {} }* %"4_0", align 1 - store { {}, {}, {} } %"4_01", { {}, {}, {} }* %"0", align 1 - %"02" = load { {}, {}, {} }, { {}, {}, {} }* %"0", align 1 - ret { {}, {}, {} } %"02" + store { i32, {}, {}, {} } { i32 1, {} poison, {} undef, {} poison }, { i32, {}, {}, {} }* %"4_0", align 4 + %"4_01" = load { i32, {}, {}, {} }, { i32, {}, {}, {} }* %"4_0", align 4 + store { i32, {}, {}, {} } %"4_01", { i32, {}, {}, {} }* %"0", align 4 + %"02" = load { i32, {}, {}, {} }, { i32, {}, {}, {} }* %"0", align 4 + ret { i32, {}, {}, {} } %"02" } diff --git a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_unpack_tuple@llvm14.snap b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_unpack_tuple@llvm14.snap index 12116d0..c7e8d1d 100644 --- a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_unpack_tuple@llvm14.snap +++ b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_unpack_tuple@llvm14.snap @@ -5,15 +5,15 @@ expression: module.to_string() ; ModuleID = 'test_context' source_filename = "test_context" -define { { {}, {} }, { {}, {} } } @_hl.main.1({ i32, { { {}, {} }, { {}, {} } } } %0) { +define { { i32, {}, {} }, { i32, {}, {} } } @_hl.main.1({ { { i32, {}, {} }, { i32, {}, {} } } } %0) { alloca_block: br label %entry_block entry_block: ; preds = %alloca_block - %1 = extractvalue { i32, { { {}, {} }, { {}, {} } } } %0, 1 - %2 = extractvalue { { {}, {} }, { {}, {} } } %1, 0 - %3 = extractvalue { { {}, {} }, { {}, {} } } %1, 1 - %mrv = insertvalue { { {}, {} }, { {}, {} } } undef, { {}, {} } %2, 0 - %mrv6 = insertvalue { { {}, {} }, { {}, {} } } %mrv, { {}, {} } %3, 1 - ret { { {}, {} }, { {}, {} } } %mrv6 + %1 = extractvalue { { { i32, {}, {} }, { i32, {}, {} } } } %0, 0 + %2 = extractvalue { { i32, {}, {} }, { i32, {}, {} } } %1, 0 + %3 = extractvalue { { i32, {}, {} }, { i32, {}, {} } } %1, 1 + %mrv = insertvalue { { i32, {}, {} }, { i32, {}, {} } } undef, { i32, {}, {} } %2, 0 + %mrv6 = insertvalue { { i32, {}, {} }, { i32, {}, {} } } %mrv, { i32, {}, {} } %3, 1 + ret { { i32, {}, {} }, { i32, {}, {} } } %mrv6 } diff --git a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_unpack_tuple@pre-mem2reg@llvm14.snap b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_unpack_tuple@pre-mem2reg@llvm14.snap index b1141c8..fc3d28d 100644 --- a/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_unpack_tuple@pre-mem2reg@llvm14.snap +++ b/src/emit/snapshots/hugr_llvm__emit__test__emit_hugr_unpack_tuple@pre-mem2reg@llvm14.snap @@ -5,30 +5,30 @@ expression: module.to_string() ; ModuleID = 'test_context' source_filename = "test_context" -define { { {}, {} }, { {}, {} } } @_hl.main.1({ i32, { { {}, {} }, { {}, {} } } } %0) { +define { { i32, {}, {} }, { i32, {}, {} } } @_hl.main.1({ { { i32, {}, {} }, { i32, {}, {} } } } %0) { alloca_block: - %"0" = alloca { {}, {} }, align 8 - %"1" = alloca { {}, {} }, align 8 - %"2_0" = alloca { i32, { { {}, {} }, { {}, {} } } }, align 8 - %"4_0" = alloca { {}, {} }, align 8 - %"4_1" = alloca { {}, {} }, align 8 + %"0" = alloca { i32, {}, {} }, align 8 + %"1" = alloca { i32, {}, {} }, align 8 + %"2_0" = alloca { { { i32, {}, {} }, { i32, {}, {} } } }, align 8 + %"4_0" = alloca { i32, {}, {} }, align 8 + %"4_1" = alloca { i32, {}, {} }, align 8 br label %entry_block entry_block: ; preds = %alloca_block - store { i32, { { {}, {} }, { {}, {} } } } %0, { i32, { { {}, {} }, { {}, {} } } }* %"2_0", align 4 - %"2_01" = load { i32, { { {}, {} }, { {}, {} } } }, { i32, { { {}, {} }, { {}, {} } } }* %"2_0", align 4 - %1 = extractvalue { i32, { { {}, {} }, { {}, {} } } } %"2_01", 1 - %2 = extractvalue { { {}, {} }, { {}, {} } } %1, 0 - %3 = extractvalue { { {}, {} }, { {}, {} } } %1, 1 - store { {}, {} } %2, { {}, {} }* %"4_0", align 1 - store { {}, {} } %3, { {}, {} }* %"4_1", align 1 - %"4_02" = load { {}, {} }, { {}, {} }* %"4_0", align 1 - %"4_13" = load { {}, {} }, { {}, {} }* %"4_1", align 1 - store { {}, {} } %"4_02", { {}, {} }* %"0", align 1 - store { {}, {} } %"4_13", { {}, {} }* %"1", align 1 - %"04" = load { {}, {} }, { {}, {} }* %"0", align 1 - %"15" = load { {}, {} }, { {}, {} }* %"1", align 1 - %mrv = insertvalue { { {}, {} }, { {}, {} } } undef, { {}, {} } %"04", 0 - %mrv6 = insertvalue { { {}, {} }, { {}, {} } } %mrv, { {}, {} } %"15", 1 - ret { { {}, {} }, { {}, {} } } %mrv6 + store { { { i32, {}, {} }, { i32, {}, {} } } } %0, { { { i32, {}, {} }, { i32, {}, {} } } }* %"2_0", align 4 + %"2_01" = load { { { i32, {}, {} }, { i32, {}, {} } } }, { { { i32, {}, {} }, { i32, {}, {} } } }* %"2_0", align 4 + %1 = extractvalue { { { i32, {}, {} }, { i32, {}, {} } } } %"2_01", 0 + %2 = extractvalue { { i32, {}, {} }, { i32, {}, {} } } %1, 0 + %3 = extractvalue { { i32, {}, {} }, { i32, {}, {} } } %1, 1 + store { i32, {}, {} } %2, { i32, {}, {} }* %"4_0", align 4 + store { i32, {}, {} } %3, { i32, {}, {} }* %"4_1", align 4 + %"4_02" = load { i32, {}, {} }, { i32, {}, {} }* %"4_0", align 4 + %"4_13" = load { i32, {}, {} }, { i32, {}, {} }* %"4_1", align 4 + store { i32, {}, {} } %"4_02", { i32, {}, {} }* %"0", align 4 + store { i32, {}, {} } %"4_13", { i32, {}, {} }* %"1", align 4 + %"04" = load { i32, {}, {} }, { i32, {}, {} }* %"0", align 4 + %"15" = load { i32, {}, {} }, { i32, {}, {} }* %"1", align 4 + %mrv = insertvalue { { i32, {}, {} }, { i32, {}, {} } } undef, { i32, {}, {} } %"04", 0 + %mrv6 = insertvalue { { i32, {}, {} }, { i32, {}, {} } } %mrv, { i32, {}, {} } %"15", 1 + ret { { i32, {}, {} }, { i32, {}, {} } } %mrv6 } diff --git a/src/snapshots/hugr_llvm__types__test__func_type_to_llvm@llvm14_0.snap b/src/snapshots/hugr_llvm__types__test__func_type_to_llvm@llvm14_0.snap index cb69ce0..1a79773 100644 --- a/src/snapshots/hugr_llvm__types__test__func_type_to_llvm@llvm14_0.snap +++ b/src/snapshots/hugr_llvm__types__test__func_type_to_llvm@llvm14_0.snap @@ -2,4 +2,4 @@ source: src/types.rs expression: "[[]+[]] -> [[]][]" --- -"void ({ {}, {} })" +"void ({ i32, {}, {} })" diff --git a/src/snapshots/hugr_llvm__types__test__func_type_to_llvm@llvm14_1.snap b/src/snapshots/hugr_llvm__types__test__func_type_to_llvm@llvm14_1.snap index b1fbcb6..5b3ba60 100644 --- a/src/snapshots/hugr_llvm__types__test__func_type_to_llvm@llvm14_1.snap +++ b/src/snapshots/hugr_llvm__types__test__func_type_to_llvm@llvm14_1.snap @@ -2,4 +2,4 @@ source: src/types.rs expression: "[[]] -> [[]][[]+[]+[]]" --- -"{ {}, {}, {} } ({ i32, {} })" +"{ i32, {}, {}, {} } ({ {} })" diff --git a/src/snapshots/hugr_llvm__types__test__func_type_to_llvm@llvm14_2.snap b/src/snapshots/hugr_llvm__types__test__func_type_to_llvm@llvm14_2.snap index b609c7f..ed12608 100644 --- a/src/snapshots/hugr_llvm__types__test__func_type_to_llvm@llvm14_2.snap +++ b/src/snapshots/hugr_llvm__types__test__func_type_to_llvm@llvm14_2.snap @@ -2,4 +2,4 @@ source: src/types.rs expression: "[[]][[], []]" --- -"{ { i32, {} }, { i32, {} } } ()" +"{ { {} }, { {} } } ()" diff --git a/src/snapshots/hugr_llvm__types__test__sum_type_to_llvm@llvm14_0.snap b/src/snapshots/hugr_llvm__types__test__sum_type_to_llvm@llvm14_0.snap index d1b68be..88ae221 100644 --- a/src/snapshots/hugr_llvm__types__test__sum_type_to_llvm@llvm14_0.snap +++ b/src/snapshots/hugr_llvm__types__test__sum_type_to_llvm@llvm14_0.snap @@ -2,4 +2,4 @@ source: src/types.rs expression: ⊥ --- -"{ i32 }" +"{}" diff --git a/src/snapshots/hugr_llvm__types__test__sum_type_to_llvm@llvm14_1.snap b/src/snapshots/hugr_llvm__types__test__sum_type_to_llvm@llvm14_1.snap index 9be4e63..73de345 100644 --- a/src/snapshots/hugr_llvm__types__test__sum_type_to_llvm@llvm14_1.snap +++ b/src/snapshots/hugr_llvm__types__test__sum_type_to_llvm@llvm14_1.snap @@ -2,4 +2,4 @@ source: src/types.rs expression: "[]" --- -"{ i32, {} }" +"{ {} }" diff --git a/src/snapshots/hugr_llvm__types__test__sum_type_to_llvm@llvm14_2.snap b/src/snapshots/hugr_llvm__types__test__sum_type_to_llvm@llvm14_2.snap index 5683db0..786cbd1 100644 --- a/src/snapshots/hugr_llvm__types__test__sum_type_to_llvm@llvm14_2.snap +++ b/src/snapshots/hugr_llvm__types__test__sum_type_to_llvm@llvm14_2.snap @@ -2,4 +2,4 @@ source: src/types.rs expression: "[⊥, []]+[[]+[], []+[]+[]]" --- -"{ { { i32 }, { i32, {} } }, { { {}, {} }, { {}, {}, {} } } }" +"{ i32, { {}, { {} } }, { { i32, {}, {} }, { i32, {}, {}, {} } } }" diff --git a/src/snapshots/hugr_llvm__types__test__type_to_llvm@llvm14_5.snap b/src/snapshots/hugr_llvm__types__test__type_to_llvm@llvm14_5.snap index f1ecb14..ddf37e9 100644 --- a/src/snapshots/hugr_llvm__types__test__type_to_llvm@llvm14_5.snap +++ b/src/snapshots/hugr_llvm__types__test__type_to_llvm@llvm14_5.snap @@ -2,4 +2,4 @@ source: src/types.rs expression: "[int([BoundedNat { n: 2 }])]" --- -"{ i32, { i8 } }" +"{ { i8 } }" diff --git a/src/snapshots/hugr_llvm__types__test__type_to_llvm@llvm14_6.snap b/src/snapshots/hugr_llvm__types__test__type_to_llvm@llvm14_6.snap index f0ec71a..7ff728a 100644 --- a/src/snapshots/hugr_llvm__types__test__type_to_llvm@llvm14_6.snap +++ b/src/snapshots/hugr_llvm__types__test__type_to_llvm@llvm14_6.snap @@ -2,4 +2,4 @@ source: src/types.rs expression: "[int([BoundedNat { n: 6 }]), []]+[[]+[], int([BoundedNat { n: 2 }])]" --- -"{ { i64, { i32, {} } }, { { {}, {} }, i8 } }" +"{ i32, { i64, { {} } }, { { i32, {}, {} }, i8 } }" diff --git a/src/types.rs b/src/types.rs index d6469c2..df2fe71 100644 --- a/src/types.rs +++ b/src/types.rs @@ -290,7 +290,7 @@ impl<'c> LLVMSumType<'c> { } fn sum_type_has_tag_field(st: &SumType) -> bool { - st.num_variants() < 2 + st.num_variants() >= 2 } fn has_tag_field(&self) -> bool {