diff --git a/hercules_test/hercules_interpreter/src/interpreter.rs b/hercules_test/hercules_interpreter/src/interpreter.rs index 2e352644cc816a3fe5c43427fa7190708508bb82..f9d666a5f00976bebd7de9ab8a2a6346f5081529 100644 --- a/hercules_test/hercules_interpreter/src/interpreter.rs +++ b/hercules_test/hercules_interpreter/src/interpreter.rs @@ -529,6 +529,13 @@ impl<'a> FunctionExecutionState<'a> { state.run() } + Node::DataProjection { data, selection } => { + let data = self.handle_data(token, *data); + let InterpreterVal::MultiReturn(vs) = data else { + panic!(); + }; + vs[*selection].clone() + } Node::Read { collect, indices } => { let collection = self.handle_data(token, *collect); if let InterpreterVal::Undef(_) = collection { @@ -745,7 +752,7 @@ impl<'a> FunctionExecutionState<'a> { .succs(ctrl_token.curr) .find(|n| { self.get_function().nodes[n.idx()] - .try_projection(cond) + .try_control_projection(cond) .is_some() }) .expect("PANIC: No outgoing valid outgoing edge."); @@ -753,7 +760,7 @@ impl<'a> FunctionExecutionState<'a> { let ctrl_token = ctrl_token.moved_to(next); vec![ctrl_token] } - Node::Projection { .. } => { + Node::ControlProjection { .. } => { let next: NodeID = self .get_control_subgraph() .succs(ctrl_token.curr) @@ -861,8 +868,10 @@ impl<'a> FunctionExecutionState<'a> { } } Node::Return { control: _, data } => { - let result = self.handle_data(&ctrl_token, *data); - break 'outer result; + let results = data.iter() + .map(|data| self.handle_data(&ctrl_token, *data)) + .collect(); + break 'outer InterpreterVal::MultiReturn(results); } _ => { panic!("PANIC: Unexpected node in control subgraph {:?}", node); diff --git a/hercules_test/hercules_interpreter/src/value.rs b/hercules_test/hercules_interpreter/src/value.rs index dfc290b253666c8251370450f9f2893fe78d8830..0f5716e75b64f3753e22d074bd93210fee7ddfd1 100644 --- a/hercules_test/hercules_interpreter/src/value.rs +++ b/hercules_test/hercules_interpreter/src/value.rs @@ -36,6 +36,8 @@ pub enum InterpreterVal { // These can be freely? casted DynamicConstant(usize), ThreadID(usize), + + MultiReturn(Box<[InterpreterVal]>), } #[derive(Clone)] @@ -848,6 +850,7 @@ impl<'a> InterpreterVal { Type::Product(_) => todo!(), Type::Summation(_) => todo!(), Type::Array(type_id, _) => todo!(), + Type::MultiReturn(_) => todo!(), } } (_, Self::Undef(v)) => InterpreterVal::Undef(v), diff --git a/hercules_test/test_inputs/call.hir b/hercules_test/test_inputs/call.hir index 447489343cce6e010c342add119aa0c4fa31058b..0ebf7c7dc79510ee2ac5535fc6c6f510c5187e6a 100644 --- a/hercules_test/test_inputs/call.hir +++ b/hercules_test/test_inputs/call.hir @@ -1,7 +1,8 @@ fn myfunc(x: i32) -> i32 - y = call(add, x, x) + cy = call(add, x, x) + y = data_projection(cy, 0) r = return(start, y) fn add(x: i32, y: i32) -> i32 w = add(x, y) - r = return(start, w) \ No newline at end of file + r = return(start, w) diff --git a/hercules_test/test_inputs/call_dc_params.hir b/hercules_test/test_inputs/call_dc_params.hir index 5ccf2686848379b4b31eec3c2201d924984ad2e0..b8da97918fd7758ddb80e96533fe2d81a4139e77 100644 --- a/hercules_test/test_inputs/call_dc_params.hir +++ b/hercules_test/test_inputs/call_dc_params.hir @@ -1,9 +1,10 @@ fn myfunc(x: u64) -> u64 - y = call<10, 4>(add, x, x) + cy = call<10, 4>(add, x, x) + y = data_projection(cy, 0) r = return(start, y) fn add<2>(x: u64, y: u64) -> u64 b = dynamic_constant(#1) r = return(start, z) w = add(x, y) - z = add(b, w) \ No newline at end of file + z = add(b, w) diff --git a/hercules_test/test_inputs/ccp_example.hir b/hercules_test/test_inputs/ccp_example.hir index 25b7379e19f488c2d5ecf8cb377161758c62bb98..f8004b636e5df90299b27886778e5bd56799dfd0 100644 --- a/hercules_test/test_inputs/ccp_example.hir +++ b/hercules_test/test_inputs/ccp_example.hir @@ -6,14 +6,14 @@ fn tricky(x: i32) -> i32 val = phi(loop, one, later_val) b = ne(one, val) if1 = if(loop, b) - if1_false = projection(if1, 0) - if1_true = projection(if1, 1) + if1_false = control_projection(if1, 0) + if1_true = control_projection(if1, 1) middle = region(if1_false, if1_true) inter_val = sub(two, val) later_val = phi(middle, inter_val, two) idx_dec = sub(idx, one) cond = gte(idx_dec, one) if2 = if(middle, cond) - if2_false = projection(if2, 0) - if2_true = projection(if2, 1) + if2_false = control_projection(if2, 0) + if2_true = control_projection(if2, 1) r = return(if2_false, later_val) diff --git a/hercules_test/test_inputs/fork_transforms/fork_fission/inner_loop.hir b/hercules_test/test_inputs/fork_transforms/fork_fission/inner_loop.hir index 0cc13b2fe21ab6cb434b9a13b3dc212c125394aa..b7458a438b4af6dbd3809897a5fd0469244c206c 100644 --- a/hercules_test/test_inputs/fork_transforms/fork_fission/inner_loop.hir +++ b/hercules_test/test_inputs/fork_transforms/fork_fission/inner_loop.hir @@ -11,8 +11,8 @@ fn fun<2>(x: u64) -> u64 idx_inc = add(idx, one_idx) in_bounds = lt(idx, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) j = join(if_false) tid = thread_id(f, 0) add1 = add(reduce1, idx) @@ -20,4 +20,4 @@ fn fun<2>(x: u64) -> u64 add2 = add(reduce2, idx_inc) reduce2 = reduce(j, zero, add2) out1 = add(reduce1, reduce2) - z = return(j, out1) \ No newline at end of file + z = return(j, out1) diff --git a/hercules_test/test_inputs/forkify/alternate_bounds.hir b/hercules_test/test_inputs/forkify/alternate_bounds.hir index 4a9ba0153448e4c9339e901d3ba3a10e027bad56..7de8cf1e606bf2f231ad3391fad50e7b04d32d93 100644 --- a/hercules_test/test_inputs/forkify/alternate_bounds.hir +++ b/hercules_test/test_inputs/forkify/alternate_bounds.hir @@ -11,6 +11,6 @@ fn sum<1>(a: array(i32, #0)) -> i32 red_add = add(red, read) in_bounds = lt(idx_inc, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, red_add) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, red_add) diff --git a/hercules_test/test_inputs/forkify/broken_sum.hir b/hercules_test/test_inputs/forkify/broken_sum.hir index d15ef5613e271cd8685660785f5505dedbf40ec9..75b12350da88214c761654a47cffb0943015afa9 100644 --- a/hercules_test/test_inputs/forkify/broken_sum.hir +++ b/hercules_test/test_inputs/forkify/broken_sum.hir @@ -11,6 +11,6 @@ fn sum<1>(a: array(i32, #0)) -> i32 red_add = add(red, read) in_bounds = lt(idx, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, red_add) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, red_add) diff --git a/hercules_test/test_inputs/forkify/control_after_condition.hir b/hercules_test/test_inputs/forkify/control_after_condition.hir index db40225bac26f5d6687b4b36bd46e06c963c4815..a1a97fba3c5cd3655ccf47f6b97b1a63dbb6bf9d 100644 --- a/hercules_test/test_inputs/forkify/control_after_condition.hir +++ b/hercules_test/test_inputs/forkify/control_after_condition.hir @@ -11,8 +11,8 @@ fn alt_sum<1>(a: array(i32, #0)) -> i32 rem = rem(idx, two_idx) odd = eq(rem, one_idx) negate_if = if(loop_continue, odd) - negate_if_false = projection(negate_if, 0) - negate_if_true = projection(negate_if, 1) + negate_if_false = control_projection(negate_if, 0) + negate_if_true = control_projection(negate_if, 1) negate_bottom = region(negate_if_false, negate_if_true) read = read(a, position(idx)) read_neg = neg(read) @@ -20,6 +20,6 @@ fn alt_sum<1>(a: array(i32, #0)) -> i32 red_add = add(red, read_phi) in_bounds = lt(idx, bound) if = if(loop, in_bounds) - loop_exit = projection(if, 0) - loop_continue = projection(if, 1) - r = return(loop_exit, red) \ No newline at end of file + loop_exit = control_projection(if, 0) + loop_continue = control_projection(if, 1) + r = return(loop_exit, red) diff --git a/hercules_test/test_inputs/forkify/control_before_condition.hir b/hercules_test/test_inputs/forkify/control_before_condition.hir index f24b565a56df1e9ed98e2637a8b66ef27ff6e7de..e351d7142a44df6c33e9598b56511fd84227fee7 100644 --- a/hercules_test/test_inputs/forkify/control_before_condition.hir +++ b/hercules_test/test_inputs/forkify/control_before_condition.hir @@ -11,8 +11,8 @@ fn alt_sum<1>(a: array(i32, #0)) -> i32 rem = rem(idx, two_idx) odd = eq(rem, one_idx) negate_if = if(loop, odd) - negate_if_false = projection(negate_if, 0) - negate_if_true = projection(negate_if, 1) + negate_if_false = control_projection(negate_if, 0) + negate_if_true = control_projection(negate_if, 1) negate_bottom = region(negate_if_false, negate_if_true) read = read(a, position(idx)) read_neg = neg(read) @@ -20,6 +20,6 @@ fn alt_sum<1>(a: array(i32, #0)) -> i32 red_add = add(red, read_phi) in_bounds = lt(idx, bound) if = if(negate_bottom, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, red) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, red) diff --git a/hercules_test/test_inputs/forkify/expected_fails.hir/bad_3nest_return.hir b/hercules_test/test_inputs/forkify/expected_fails.hir/bad_3nest_return.hir index f5ec4370b6befc4d45535fd25f024db60b55a0d0..7599e6ecbfda68266d40b0908d99ed89c5b4321c 100644 --- a/hercules_test/test_inputs/forkify/expected_fails.hir/bad_3nest_return.hir +++ b/hercules_test/test_inputs/forkify/expected_fails.hir/bad_3nest_return.hir @@ -16,18 +16,18 @@ fn loop<3>(a: u32) -> i32 outer_idx_inc = add(outer_idx, one_idx) outer_in_bounds = lt(outer_idx, outer_bound) inner_if = if(inner_loop, inner_in_bounds) - inner_if_false = projection(inner_if, 0) - inner_if_true = projection(inner_if, 1) + inner_if_false = control_projection(inner_if, 0) + inner_if_true = control_projection(inner_if, 1) outer_if = if(outer_loop, outer_in_bounds) - outer_if_false = projection(outer_if, 0) - outer_if_true = projection(outer_if, 1) + outer_if_false = control_projection(outer_if, 0) + outer_if_true = control_projection(outer_if, 1) outer_bound = dynamic_constant(#1) outer_outer_bound = dynamic_constant(#2) outer_outer_loop = region(start, outer_if_false) outer_outer_var = phi(outer_outer_loop, zero_var, outer_var) outer_outer_if = if(outer_outer_loop, outer_outer_in_bounds) - outer_outer_if_false = projection(outer_outer_if, 0) - outer_outer_if_true = projection(outer_outer_if, 1) + outer_outer_if_false = control_projection(outer_outer_if, 0) + outer_outer_if_true = control_projection(outer_outer_if, 1) outer_outer_idx = phi(outer_outer_loop, zero_idx, outer_outer_idx_inc, outer_outer_idx) outer_outer_idx_inc = add(outer_outer_idx, one_idx) outer_outer_in_bounds = lt(outer_outer_idx, outer_outer_bound) diff --git a/hercules_test/test_inputs/forkify/expected_fails.hir/bad_loop_tid_sum.hir b/hercules_test/test_inputs/forkify/expected_fails.hir/bad_loop_tid_sum.hir index 8dda179bf36d82d29bbbda48686191fa46a02fb6..8f7d5e48032571d15e1632dcd58067555b91279b 100644 --- a/hercules_test/test_inputs/forkify/expected_fails.hir/bad_loop_tid_sum.hir +++ b/hercules_test/test_inputs/forkify/expected_fails.hir/bad_loop_tid_sum.hir @@ -11,6 +11,6 @@ fn loop<1>(a: u64) -> u64 idx_inc = add(idx, one_idx) in_bounds = lt(idx, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, var_inc) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, var_inc) diff --git a/hercules_test/test_inputs/forkify/inner_fork.hir b/hercules_test/test_inputs/forkify/inner_fork.hir index e2c96a68b85ee605d5804baf338ada9b493e155f..c603dc42d350e4a9e516de9f9442ac3ae353e617 100644 --- a/hercules_test/test_inputs/forkify/inner_fork.hir +++ b/hercules_test/test_inputs/forkify/inner_fork.hir @@ -6,7 +6,7 @@ fn loop<2>(a: u32) -> i32 inner_bound = dynamic_constant(#0) outer_bound = dynamic_constant(#1) outer_loop = region(start, inner_join) - outer_if_true = projection(outer_if, 1) + outer_if_true = control_projection(outer_if, 1) inner_fork = fork(outer_if_true, #0) inner_join = join(inner_fork) outer_var = phi(outer_loop, zero_var, inner_var) @@ -17,6 +17,6 @@ fn loop<2>(a: u32) -> i32 outer_idx_inc = add(outer_idx, one_idx) outer_in_bounds = lt(outer_idx, outer_bound) outer_if = if(outer_loop, outer_in_bounds) - outer_if_false = projection(outer_if, 0) + outer_if_false = control_projection(outer_if, 0) r = return(outer_if_false, outer_var) - \ No newline at end of file + diff --git a/hercules_test/test_inputs/forkify/inner_fork_complex.hir b/hercules_test/test_inputs/forkify/inner_fork_complex.hir index 91eb00fae9dd7e043155c1f6316e50b38337bad2..c9488f7f6d3a3ebe69ffb5cbaa4d75623542df55 100644 --- a/hercules_test/test_inputs/forkify/inner_fork_complex.hir +++ b/hercules_test/test_inputs/forkify/inner_fork_complex.hir @@ -8,14 +8,14 @@ fn loop<2>(a: u32) -> u64 inner_bound = dynamic_constant(#0) outer_bound = dynamic_constant(#1) outer_loop = region(start, inner_condition_true_projection, inner_condition_false_projection ) - outer_if_true = projection(outer_if, 1) + outer_if_true = control_projection(outer_if, 1) other_phi_weird = phi(outer_loop, zero_var, inner_var, other_phi_weird) inner_fork = fork(outer_if_true, #0) inner_join = join(inner_fork) inner_condition_eq = eq(outer_idx, two) inner_condition_if = if(inner_join, inner_condition_eq) - inner_condition_true_projection = projection(inner_condition_if, 1) - inner_condition_false_projection = projection(inner_condition_if, 0) + inner_condition_true_projection = control_projection(inner_condition_if, 1) + inner_condition_false_projection = control_projection(inner_condition_if, 0) outer_var = phi(outer_loop, zero_var, inner_var, inner_var) inner_var = reduce(inner_join, outer_var, inner_var_inc) inner_var_inc = add(inner_var, inner_var_inc_3) @@ -26,7 +26,7 @@ fn loop<2>(a: u32) -> u64 outer_idx_inc = add(outer_idx, one_idx) outer_in_bounds = lt(outer_idx, outer_bound) outer_if = if(outer_loop, outer_in_bounds) - outer_if_false = projection(outer_if, 0) + outer_if_false = control_projection(outer_if, 0) ret_val = add(outer_var, other_phi_weird) r = return(outer_if_false, ret_val) - \ No newline at end of file + diff --git a/hercules_test/test_inputs/forkify/loop_array_sum.hir b/hercules_test/test_inputs/forkify/loop_array_sum.hir index f9972b5917c200b93b5775fd4a6e501318e8c548..884d22d469c068f180b8a0724325541ee44f7da4 100644 --- a/hercules_test/test_inputs/forkify/loop_array_sum.hir +++ b/hercules_test/test_inputs/forkify/loop_array_sum.hir @@ -11,6 +11,6 @@ fn sum<1>(a: array(i32, #0)) -> i32 red_add = add(red, read) in_bounds = lt(idx, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, red) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, red) diff --git a/hercules_test/test_inputs/forkify/loop_simple_iv.hir b/hercules_test/test_inputs/forkify/loop_simple_iv.hir index c25b9a2cf006b67087df0b8dc652f72400557090..c671b94c27f05d5de124c0a4e705f259668400da 100644 --- a/hercules_test/test_inputs/forkify/loop_simple_iv.hir +++ b/hercules_test/test_inputs/forkify/loop_simple_iv.hir @@ -7,6 +7,6 @@ fn loop<1>(a: u32) -> u64 idx_inc = add(idx, one_idx) in_bounds = lt(idx, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, idx) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, idx) diff --git a/hercules_test/test_inputs/forkify/loop_sum.hir b/hercules_test/test_inputs/forkify/loop_sum.hir index fd9c4debc163600c01e661b127b166358ac9c6db..a236ddf7323cb673608f5341f74dcea9699a3f8d 100644 --- a/hercules_test/test_inputs/forkify/loop_sum.hir +++ b/hercules_test/test_inputs/forkify/loop_sum.hir @@ -11,6 +11,6 @@ fn loop<1>(a: u32) -> i32 idx_inc = add(idx, one_idx) in_bounds = lt(idx, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, var) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, var) diff --git a/hercules_test/test_inputs/forkify/loop_tid_sum.hir b/hercules_test/test_inputs/forkify/loop_tid_sum.hir index 2d3ca34db88efa5007b5fb933f0bb0e4b55e63e4..6a1e2c56f5c821be9c04c192e1d33fee083669af 100644 --- a/hercules_test/test_inputs/forkify/loop_tid_sum.hir +++ b/hercules_test/test_inputs/forkify/loop_tid_sum.hir @@ -11,6 +11,6 @@ fn loop<1>(a: u64) -> u64 idx_inc = add(idx, one_idx) in_bounds = lt(idx, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, var) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, var) diff --git a/hercules_test/test_inputs/forkify/merged_phi_cycle.hir b/hercules_test/test_inputs/forkify/merged_phi_cycle.hir index cee473a08740b48935d4ff571bc003bbd9908729..2b276d3ec1c560d6e014dfdd3c1ddc93374f8c2f 100644 --- a/hercules_test/test_inputs/forkify/merged_phi_cycle.hir +++ b/hercules_test/test_inputs/forkify/merged_phi_cycle.hir @@ -13,6 +13,6 @@ fn sum<1>(a: i32) -> u64 second_red_add_2 = add(first_red_add, two) in_bounds = lt(idx_inc, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, first_red_add_2) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, first_red_add_2) diff --git a/hercules_test/test_inputs/forkify/nested_loop2.hir b/hercules_test/test_inputs/forkify/nested_loop2.hir index 0f29ec747dd67bae4c5b7d8b1250ead925257e9d..c3c7d8e5b7f0a3f23f28216ae4190f40edb0d7c5 100644 --- a/hercules_test/test_inputs/forkify/nested_loop2.hir +++ b/hercules_test/test_inputs/forkify/nested_loop2.hir @@ -17,9 +17,9 @@ fn loop<2>(a: u32) -> i32 outer_idx_inc = add(outer_idx, one_idx) outer_in_bounds = lt(outer_idx, outer_bound) inner_if = if(inner_loop, inner_in_bounds) - inner_if_false = projection(inner_if, 0) - inner_if_true = projection(inner_if, 1) + inner_if_false = control_projection(inner_if, 0) + inner_if_true = control_projection(inner_if, 1) outer_if = if(outer_loop, outer_in_bounds) - outer_if_false = projection(outer_if, 0) - outer_if_true = projection(outer_if, 1) - r = return(outer_if_false, outer_var) \ No newline at end of file + outer_if_false = control_projection(outer_if, 0) + outer_if_true = control_projection(outer_if, 1) + r = return(outer_if_false, outer_var) diff --git a/hercules_test/test_inputs/forkify/nested_tid_sum.hir b/hercules_test/test_inputs/forkify/nested_tid_sum.hir index 5539202d297d5124bd3258e56568c1614e4e942e..f7e4bda4112d62dd4598b0d73ccba583b12cdd4b 100644 --- a/hercules_test/test_inputs/forkify/nested_tid_sum.hir +++ b/hercules_test/test_inputs/forkify/nested_tid_sum.hir @@ -17,9 +17,9 @@ fn loop<2>(a: u32) -> u64 outer_idx_inc = add(outer_idx, one_idx) outer_in_bounds = lt(outer_idx, outer_bound) inner_if = if(inner_loop, inner_in_bounds) - inner_if_false = projection(inner_if, 0) - inner_if_true = projection(inner_if, 1) + inner_if_false = control_projection(inner_if, 0) + inner_if_true = control_projection(inner_if, 1) outer_if = if(outer_loop, outer_in_bounds) - outer_if_false = projection(outer_if, 0) - outer_if_true = projection(outer_if, 1) - r = return(outer_if_false, outer_var) \ No newline at end of file + outer_if_false = control_projection(outer_if, 0) + outer_if_true = control_projection(outer_if, 1) + r = return(outer_if_false, outer_var) diff --git a/hercules_test/test_inputs/forkify/nested_tid_sum_2.hir b/hercules_test/test_inputs/forkify/nested_tid_sum_2.hir index 9221fd47d857c9215a7b8912e68088b5809238b5..50634a2c93095fa0d891e8b54ad18fb0f0fbab88 100644 --- a/hercules_test/test_inputs/forkify/nested_tid_sum_2.hir +++ b/hercules_test/test_inputs/forkify/nested_tid_sum_2.hir @@ -18,9 +18,9 @@ fn loop<2>(a: u32) -> u64 outer_idx_inc = add(outer_idx, one_idx) outer_in_bounds = lt(outer_idx, outer_bound) inner_if = if(inner_loop, inner_in_bounds) - inner_if_false = projection(inner_if, 0) - inner_if_true = projection(inner_if, 1) + inner_if_false = control_projection(inner_if, 0) + inner_if_true = control_projection(inner_if, 1) outer_if = if(outer_loop, outer_in_bounds) - outer_if_false = projection(outer_if, 0) - outer_if_true = projection(outer_if, 1) - r = return(outer_if_false, outer_var) \ No newline at end of file + outer_if_false = control_projection(outer_if, 0) + outer_if_true = control_projection(outer_if, 1) + r = return(outer_if_false, outer_var) diff --git a/hercules_test/test_inputs/forkify/phi_loop4.hir b/hercules_test/test_inputs/forkify/phi_loop4.hir index e69ecc3daf264359426acd7b5dbf9ff84fd96c4c..9ce594da94a34065023ab1397f031cab9b7710ff 100644 --- a/hercules_test/test_inputs/forkify/phi_loop4.hir +++ b/hercules_test/test_inputs/forkify/phi_loop4.hir @@ -11,6 +11,6 @@ fn loop<1>(a: u32) -> i32 idx_inc = add(idx, one_idx) in_bounds = lt(idx, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, var_inc) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, var_inc) diff --git a/hercules_test/test_inputs/forkify/split_phi_cycle.hir b/hercules_test/test_inputs/forkify/split_phi_cycle.hir index 96de73c8e054fb9cb45ade6dfe9150fcfc79334f..a233230bcb29152fa2d10382ae66884c4aba3f37 100644 --- a/hercules_test/test_inputs/forkify/split_phi_cycle.hir +++ b/hercules_test/test_inputs/forkify/split_phi_cycle.hir @@ -11,6 +11,6 @@ fn sum<1>(a: i32) -> u64 first_red_add_2 = add(first_red_add, two) in_bounds = lt(idx_inc, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, first_red_add_2) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, first_red_add_2) diff --git a/hercules_test/test_inputs/forkify/super_nested_loop.hir b/hercules_test/test_inputs/forkify/super_nested_loop.hir index 6853efbfc2b620860644bc94486fb09a09e131f0..b568b85aa8a3a2912af3b1fa8c5b92d10a2a7ece 100644 --- a/hercules_test/test_inputs/forkify/super_nested_loop.hir +++ b/hercules_test/test_inputs/forkify/super_nested_loop.hir @@ -16,18 +16,18 @@ fn loop<3>(a: u32) -> i32 outer_idx_inc = add(outer_idx, one_idx) outer_in_bounds = lt(outer_idx, outer_bound) inner_if = if(inner_loop, inner_in_bounds) - inner_if_false = projection(inner_if, 0) - inner_if_true = projection(inner_if, 1) + inner_if_false = control_projection(inner_if, 0) + inner_if_true = control_projection(inner_if, 1) outer_if = if(outer_loop, outer_in_bounds) - outer_if_false = projection(outer_if, 0) - outer_if_true = projection(outer_if, 1) + outer_if_false = control_projection(outer_if, 0) + outer_if_true = control_projection(outer_if, 1) outer_bound = dynamic_constant(#1) outer_outer_bound = dynamic_constant(#2) outer_outer_loop = region(start, outer_if_false) outer_outer_var = phi(outer_outer_loop, zero_var, outer_var) outer_outer_if = if(outer_outer_loop, outer_outer_in_bounds) - outer_outer_if_false = projection(outer_outer_if, 0) - outer_outer_if_true = projection(outer_outer_if, 1) + outer_outer_if_false = control_projection(outer_outer_if, 0) + outer_outer_if_true = control_projection(outer_outer_if, 1) outer_outer_idx = phi(outer_outer_loop, zero_idx, outer_outer_idx_inc, outer_outer_idx) outer_outer_idx_inc = add(outer_outer_idx, one_idx) outer_outer_in_bounds = lt(outer_outer_idx, outer_outer_bound) diff --git a/hercules_test/test_inputs/loop_analysis/alternate_bounds.hir b/hercules_test/test_inputs/loop_analysis/alternate_bounds.hir index 4df92a18a9895c88cf27f143285999ef2218bfcf..a6ae209b9bb8661164022c12eb4d7425f69fa444 100644 --- a/hercules_test/test_inputs/loop_analysis/alternate_bounds.hir +++ b/hercules_test/test_inputs/loop_analysis/alternate_bounds.hir @@ -9,6 +9,6 @@ fn sum<1>(a: u32) -> u64 red_add = add(red, one_idx) in_bounds = lt(idx_inc, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, red) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, red) diff --git a/hercules_test/test_inputs/loop_analysis/alternate_bounds_internal_control.hir b/hercules_test/test_inputs/loop_analysis/alternate_bounds_internal_control.hir index 8b4431bfb446237b6a66088d7a7d2339d9c889d1..9bd6b626d4ae38a1611ffa131be6933c141a9e0d 100644 --- a/hercules_test/test_inputs/loop_analysis/alternate_bounds_internal_control.hir +++ b/hercules_test/test_inputs/loop_analysis/alternate_bounds_internal_control.hir @@ -15,9 +15,9 @@ fn sum<1>(a: u64) -> u64 red_add2 = add(red, inner_phi) in_bounds = lt(idx_inc, bound) if = if(inner_ctrl, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) plus_ten = add(red_add, ten) red_add_2_plus_blah = add(red2, plus_ten) final_add = add(inner_phi, red_add_2_plus_blah) - r = return(if_false, final_add) \ No newline at end of file + r = return(if_false, final_add) diff --git a/hercules_test/test_inputs/loop_analysis/alternate_bounds_internal_control2.hir b/hercules_test/test_inputs/loop_analysis/alternate_bounds_internal_control2.hir index f4adf6435968ddaccc285c8d6132e7c9dd91c973..2801a1656db8db1397d1b5d32dcbbd40acd9f76e 100644 --- a/hercules_test/test_inputs/loop_analysis/alternate_bounds_internal_control2.hir +++ b/hercules_test/test_inputs/loop_analysis/alternate_bounds_internal_control2.hir @@ -13,9 +13,9 @@ fn sum<1>(a: u64) -> u64 red_add = add(red, two) in_bounds = lt(idx_inc, bound) if = if(inner_ctrl, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) plus_ten = add(red_add, ten) red_add_2_plus_blah = add(inner_phi, plus_ten) final_add = add(inner_phi, red_add_2_plus_blah) - r = return(if_false, final_add) \ No newline at end of file + r = return(if_false, final_add) diff --git a/hercules_test/test_inputs/loop_analysis/alternate_bounds_nested_do_loop.hir b/hercules_test/test_inputs/loop_analysis/alternate_bounds_nested_do_loop.hir index 52f701727c33305c0719e46aacf717bf8b220fcb..edbec0c5929cfb056d4015d81b775e2a5ba4bbbb 100644 --- a/hercules_test/test_inputs/loop_analysis/alternate_bounds_nested_do_loop.hir +++ b/hercules_test/test_inputs/loop_analysis/alternate_bounds_nested_do_loop.hir @@ -20,9 +20,9 @@ fn loop<2>(a: u64) -> u64 outer_idx_inc = add(outer_idx, one_idx) outer_in_bounds = lt(outer_idx_inc, outer_bound) inner_if = if(inner_loop, inner_in_bounds) - inner_if_false = projection(inner_if, 0) - inner_if_true = projection(inner_if, 1) + inner_if_false = control_projection(inner_if, 0) + inner_if_true = control_projection(inner_if, 1) outer_if = if(inner_if_false, outer_in_bounds) - outer_if_false = projection(outer_if, 0) - outer_if_true = projection(outer_if, 1) - r = return(outer_if_false, inner_var_inc) \ No newline at end of file + outer_if_false = control_projection(outer_if, 0) + outer_if_true = control_projection(outer_if, 1) + r = return(outer_if_false, inner_var_inc) diff --git a/hercules_test/test_inputs/loop_analysis/alternate_bounds_nested_do_loop2.hir b/hercules_test/test_inputs/loop_analysis/alternate_bounds_nested_do_loop2.hir index f295b39166fc16bb4560d9100bb84526281dda84..4e81871c1e6a7978d9fbafb912e27c3e0e62ff1c 100644 --- a/hercules_test/test_inputs/loop_analysis/alternate_bounds_nested_do_loop2.hir +++ b/hercules_test/test_inputs/loop_analysis/alternate_bounds_nested_do_loop2.hir @@ -17,9 +17,9 @@ fn loop<2>(a: u32) -> i32 outer_idx_inc = add(outer_idx, one_idx) outer_in_bounds = lt(outer_idx_inc, outer_bound) inner_if = if(inner_loop, inner_in_bounds) - inner_if_false = projection(inner_if, 0) - inner_if_true = projection(inner_if, 1) + inner_if_false = control_projection(inner_if, 0) + inner_if_true = control_projection(inner_if, 1) outer_if = if(inner_if_false, outer_in_bounds) - outer_if_false = projection(outer_if, 0) - outer_if_true = projection(outer_if, 1) - r = return(outer_if_false, inner_var_inc) \ No newline at end of file + outer_if_false = control_projection(outer_if, 0) + outer_if_true = control_projection(outer_if, 1) + r = return(outer_if_false, inner_var_inc) diff --git a/hercules_test/test_inputs/loop_analysis/alternate_bounds_nested_do_loop_array.hir b/hercules_test/test_inputs/loop_analysis/alternate_bounds_nested_do_loop_array.hir index e5401779a28503677f4a5e51c703c4197b433d4e..98477c91e40d6f0099aedb1ccc9b5e227aa8c7f4 100644 --- a/hercules_test/test_inputs/loop_analysis/alternate_bounds_nested_do_loop_array.hir +++ b/hercules_test/test_inputs/loop_analysis/alternate_bounds_nested_do_loop_array.hir @@ -20,9 +20,9 @@ fn loop<2>(a: array(u64, #1)) -> u64 outer_idx_inc = add(outer_idx, one_idx) outer_in_bounds = lt(outer_idx_inc, outer_bound) inner_if = if(inner_loop, inner_in_bounds) - inner_if_false = projection(inner_if, 0) - inner_if_true = projection(inner_if, 1) + inner_if_false = control_projection(inner_if, 0) + inner_if_true = control_projection(inner_if, 1) outer_if = if(inner_if_false, outer_in_bounds) - outer_if_false = projection(outer_if, 0) - outer_if_true = projection(outer_if, 1) - r = return(outer_if_false, inner_var_inc) \ No newline at end of file + outer_if_false = control_projection(outer_if, 0) + outer_if_true = control_projection(outer_if, 1) + r = return(outer_if_false, inner_var_inc) diff --git a/hercules_test/test_inputs/loop_analysis/alternate_bounds_nested_do_loop_guarded.hir b/hercules_test/test_inputs/loop_analysis/alternate_bounds_nested_do_loop_guarded.hir index b979ad42ce0522cc9b27d1fab07736cc73831590..eee77b6c22d13f11bd859e70d9a2deba26604fc3 100644 --- a/hercules_test/test_inputs/loop_analysis/alternate_bounds_nested_do_loop_guarded.hir +++ b/hercules_test/test_inputs/loop_analysis/alternate_bounds_nested_do_loop_guarded.hir @@ -5,8 +5,8 @@ fn loop<2>(a: u64) -> u64 one_var = constant(u64, 1) ten = constant(u64, 10) outer_guard_if = if(start, outer_guard_lt) - outer_guard_if_false = projection(outer_guard_if, 0) - outer_guard_if_true = projection(outer_guard_if, 1) + outer_guard_if_false = control_projection(outer_guard_if, 0) + outer_guard_if_true = control_projection(outer_guard_if, 1) outer_guard_lt = lt(zero_idx, outer_bound) outer_join = region(outer_guard_if_false, outer_if_false) outer_join_var = phi(outer_join, zero_idx, join_var) @@ -16,8 +16,8 @@ fn loop<2>(a: u64) -> u64 inner_loop = region(guard_if_true, inner_if_true) guard_lt = lt(zero_idx, inner_bound) guard_if = if(outer_loop, guard_lt) - guard_if_true = projection(guard_if, 1) - guard_if_false = projection(guard_if, 0) + guard_if_true = control_projection(guard_if, 1) + guard_if_false = control_projection(guard_if, 0) guard_join = region(guard_if_false, inner_if_false) inner_idx = phi(inner_loop, zero_idx, inner_idx_inc) inner_idx_inc = add(inner_idx, one_idx) @@ -26,15 +26,15 @@ fn loop<2>(a: u64) -> u64 outer_idx_inc = add(outer_idx, one_idx) outer_in_bounds = lt(outer_idx_inc, outer_bound) inner_if = if(inner_loop, inner_in_bounds) - inner_if_false = projection(inner_if, 0) - inner_if_true = projection(inner_if, 1) + inner_if_false = control_projection(inner_if, 0) + inner_if_true = control_projection(inner_if, 1) outer_if = if(guard_join, outer_in_bounds) - outer_if_false = projection(outer_if, 0) - outer_if_true = projection(outer_if, 1) + outer_if_false = control_projection(outer_if, 0) + outer_if_true = control_projection(outer_if, 1) outer_var = phi(outer_loop, zero_var, join_var) inner_var = phi(inner_loop, outer_var, inner_var_inc) blah = mul(outer_idx, ten) blah2 = add(blah, inner_idx) inner_var_inc = add(inner_var, blah2) join_var = phi(guard_join, outer_var, inner_var_inc) - r = return(outer_join, outer_join_var) \ No newline at end of file + r = return(outer_join, outer_join_var) diff --git a/hercules_test/test_inputs/loop_analysis/alternate_bounds_use_after_loop.hir b/hercules_test/test_inputs/loop_analysis/alternate_bounds_use_after_loop.hir index 2fe4ca57345dd0e6c4dd94e399dba58e3cab81a4..4a6e8cd64ac6d016200979db1b4c09731ac125a2 100644 --- a/hercules_test/test_inputs/loop_analysis/alternate_bounds_use_after_loop.hir +++ b/hercules_test/test_inputs/loop_analysis/alternate_bounds_use_after_loop.hir @@ -13,9 +13,9 @@ fn sum<1>(a: array(i32, #0)) -> i32 red_add = add(red, read) in_bounds = lt(idx_inc, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) plus_ten = add(red_add, ten) mult = mul(read, three) final = add(plus_ten, mult) - r = return(if_false, final) \ No newline at end of file + r = return(if_false, final) diff --git a/hercules_test/test_inputs/loop_analysis/alternate_bounds_use_after_loop2.hir b/hercules_test/test_inputs/loop_analysis/alternate_bounds_use_after_loop2.hir index 760ae5ad690382c42e6760af690b18e5ea36a6b2..f735c8c6c1c41c00ea885d6a847e1a43ad7a34b3 100644 --- a/hercules_test/test_inputs/loop_analysis/alternate_bounds_use_after_loop2.hir +++ b/hercules_test/test_inputs/loop_analysis/alternate_bounds_use_after_loop2.hir @@ -13,9 +13,9 @@ fn sum<1>(a: array(i32, #0)) -> i32 red_add = add(red, read) in_bounds = lt(idx_inc, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) plus_ten = add(red, ten) mult = mul(read, three) final = add(plus_ten, mult) - r = return(if_false, final) \ No newline at end of file + r = return(if_false, final) diff --git a/hercules_test/test_inputs/loop_analysis/alternate_bounds_use_after_loop_no_tid.hir b/hercules_test/test_inputs/loop_analysis/alternate_bounds_use_after_loop_no_tid.hir index 4b9375090dd5c13a127e9db85d7ce6dc8f2f7d75..c2f5e30a5cc826b10f1f5978b2d3fdaef5582351 100644 --- a/hercules_test/test_inputs/loop_analysis/alternate_bounds_use_after_loop_no_tid.hir +++ b/hercules_test/test_inputs/loop_analysis/alternate_bounds_use_after_loop_no_tid.hir @@ -11,7 +11,7 @@ fn sum<1>(a: u64) -> u64 red_add = add(red, two) in_bounds = lt(idx_inc, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) plus_ten = add(red_add, ten) - r = return(if_false, plus_ten) \ No newline at end of file + r = return(if_false, plus_ten) diff --git a/hercules_test/test_inputs/loop_analysis/alternate_bounds_use_after_loop_no_tid2.hir b/hercules_test/test_inputs/loop_analysis/alternate_bounds_use_after_loop_no_tid2.hir index fd06eb7dd22f64022cc797a549946bfda5e8b7cf..f7a4af06b7b3502cc73d783bbb2f367b660594d8 100644 --- a/hercules_test/test_inputs/loop_analysis/alternate_bounds_use_after_loop_no_tid2.hir +++ b/hercules_test/test_inputs/loop_analysis/alternate_bounds_use_after_loop_no_tid2.hir @@ -12,8 +12,8 @@ fn sum<1>(a: u64) -> u64 blah = phi(loop, zero_idx, red_add) in_bounds = lt(idx_inc, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) plus_ten = add(red_add, ten) plus_blah = add(blah, red_add) - r = return(if_false, plus_blah) \ No newline at end of file + r = return(if_false, plus_blah) diff --git a/hercules_test/test_inputs/loop_analysis/broken_sum.hir b/hercules_test/test_inputs/loop_analysis/broken_sum.hir index d15ef5613e271cd8685660785f5505dedbf40ec9..75b12350da88214c761654a47cffb0943015afa9 100644 --- a/hercules_test/test_inputs/loop_analysis/broken_sum.hir +++ b/hercules_test/test_inputs/loop_analysis/broken_sum.hir @@ -11,6 +11,6 @@ fn sum<1>(a: array(i32, #0)) -> i32 red_add = add(red, read) in_bounds = lt(idx, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, red_add) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, red_add) diff --git a/hercules_test/test_inputs/loop_analysis/do_loop_far_guard.hir b/hercules_test/test_inputs/loop_analysis/do_loop_far_guard.hir index 4df92a18a9895c88cf27f143285999ef2218bfcf..a6ae209b9bb8661164022c12eb4d7425f69fa444 100644 --- a/hercules_test/test_inputs/loop_analysis/do_loop_far_guard.hir +++ b/hercules_test/test_inputs/loop_analysis/do_loop_far_guard.hir @@ -9,6 +9,6 @@ fn sum<1>(a: u32) -> u64 red_add = add(red, one_idx) in_bounds = lt(idx_inc, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, red) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, red) diff --git a/hercules_test/test_inputs/loop_analysis/do_loop_immediate_guard.hir b/hercules_test/test_inputs/loop_analysis/do_loop_immediate_guard.hir index a4732cdeaa1f474548fba0293e21a900448d1791..bfdb673faffdc1835d5b3f96ea51da6331279c0a 100644 --- a/hercules_test/test_inputs/loop_analysis/do_loop_immediate_guard.hir +++ b/hercules_test/test_inputs/loop_analysis/do_loop_immediate_guard.hir @@ -4,8 +4,8 @@ fn sum<1>(a: u64) -> u64 bound = dynamic_constant(#0) guard_lt = lt(zero_idx, bound) guard = if(start, guard_lt) - guard_true = projection(guard, 1) - guard_false = projection(guard, 0) + guard_true = control_projection(guard, 1) + guard_false = control_projection(guard, 0) loop = region(guard_true, if_true) inner_side_effect = region(loop) idx = phi(loop, zero_idx, idx_inc) @@ -15,7 +15,7 @@ fn sum<1>(a: u64) -> u64 join_phi = phi(final, zero_idx, red_add) in_bounds = lt(idx_inc, bound) if = if(inner_side_effect, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) final = region(guard_false, if_false) - r = return(final, join_phi) \ No newline at end of file + r = return(final, join_phi) diff --git a/hercules_test/test_inputs/loop_analysis/do_loop_no_guard.hir b/hercules_test/test_inputs/loop_analysis/do_loop_no_guard.hir index 9e22e14baba40dcda34de4a9d36c05dfe73f11eb..d48fe0622ad8b6f53024f929b90ac1962eb07154 100644 --- a/hercules_test/test_inputs/loop_analysis/do_loop_no_guard.hir +++ b/hercules_test/test_inputs/loop_analysis/do_loop_no_guard.hir @@ -10,6 +10,6 @@ fn sum<1>(a: u64) -> u64 red_add = add(red, one_idx) in_bounds = lt(idx_inc, bound) if = if(inner_side_effect, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, red_add) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, red_add) diff --git a/hercules_test/test_inputs/loop_analysis/do_while_separate_body.hir b/hercules_test/test_inputs/loop_analysis/do_while_separate_body.hir index 42269040615520dd5ff2c151bd545a94445f520f..435b62686bd219b94824a71438e780538bf69738 100644 --- a/hercules_test/test_inputs/loop_analysis/do_while_separate_body.hir +++ b/hercules_test/test_inputs/loop_analysis/do_while_separate_body.hir @@ -11,6 +11,6 @@ fn sum<1>(a: i32) -> u64 red_add = add(outer_red, idx) in_bounds = lt(idx_inc, bound) if = if(inner_region, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, inner_red) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, inner_red) diff --git a/hercules_test/test_inputs/loop_analysis/do_while_separate_body2.hir b/hercules_test/test_inputs/loop_analysis/do_while_separate_body2.hir index a751952dcde83e7ffc0ee64f506314724f7bd745..d1e2d4d64a46d40cb2ad0feb3c6bcbb9eeb0a8c1 100644 --- a/hercules_test/test_inputs/loop_analysis/do_while_separate_body2.hir +++ b/hercules_test/test_inputs/loop_analysis/do_while_separate_body2.hir @@ -13,6 +13,6 @@ fn sum<1>(a: i32) -> u64 red_mul = mul(red_add, idx) in_bounds = lt(idx_inc, bound) if = if(inner_region, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, inner_red) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, inner_red) diff --git a/hercules_test/test_inputs/loop_analysis/loop_array_sum.hir b/hercules_test/test_inputs/loop_analysis/loop_array_sum.hir index f9972b5917c200b93b5775fd4a6e501318e8c548..884d22d469c068f180b8a0724325541ee44f7da4 100644 --- a/hercules_test/test_inputs/loop_analysis/loop_array_sum.hir +++ b/hercules_test/test_inputs/loop_analysis/loop_array_sum.hir @@ -11,6 +11,6 @@ fn sum<1>(a: array(i32, #0)) -> i32 red_add = add(red, read) in_bounds = lt(idx, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, red) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, red) diff --git a/hercules_test/test_inputs/loop_analysis/loop_body_count.hir b/hercules_test/test_inputs/loop_analysis/loop_body_count.hir index c6f3cbf649484f9b00f0fcc9cd208a8b4811284f..5ec745ba4e2f65780c2d43b7c5769114b7adf431 100644 --- a/hercules_test/test_inputs/loop_analysis/loop_body_count.hir +++ b/hercules_test/test_inputs/loop_analysis/loop_body_count.hir @@ -11,6 +11,6 @@ fn loop<1>(a: u64) -> u64 idx_inc = add(idx, one_idx) in_bounds = lt(idx, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, var) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, var) diff --git a/hercules_test/test_inputs/loop_analysis/loop_sum.hir b/hercules_test/test_inputs/loop_analysis/loop_sum.hir index fd9c4debc163600c01e661b127b166358ac9c6db..a236ddf7323cb673608f5341f74dcea9699a3f8d 100644 --- a/hercules_test/test_inputs/loop_analysis/loop_sum.hir +++ b/hercules_test/test_inputs/loop_analysis/loop_sum.hir @@ -11,6 +11,6 @@ fn loop<1>(a: u32) -> i32 idx_inc = add(idx, one_idx) in_bounds = lt(idx, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, var) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, var) diff --git a/hercules_test/test_inputs/loop_analysis/loop_trip_count.hir b/hercules_test/test_inputs/loop_analysis/loop_trip_count.hir index b756f0901fb7a66a3feb83d1611aa1711bcb5601..799cc6d9d4db4b5527566cbd9f1f222979624bcb 100644 --- a/hercules_test/test_inputs/loop_analysis/loop_trip_count.hir +++ b/hercules_test/test_inputs/loop_analysis/loop_trip_count.hir @@ -12,8 +12,8 @@ fn loop<1>(b: prod(u64, u64)) -> prod(u64, u64) idx_inc = add(idx, one_idx) in_bounds = lt(idx, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) tuple1 = write(c, var, field(0)) tuple2 = write(tuple1, idx, field(1)) - r = return(if_false, tuple2) \ No newline at end of file + r = return(if_false, tuple2) diff --git a/hercules_test/test_inputs/loop_analysis/loop_trip_count_tuple.hir b/hercules_test/test_inputs/loop_analysis/loop_trip_count_tuple.hir index b756f0901fb7a66a3feb83d1611aa1711bcb5601..799cc6d9d4db4b5527566cbd9f1f222979624bcb 100644 --- a/hercules_test/test_inputs/loop_analysis/loop_trip_count_tuple.hir +++ b/hercules_test/test_inputs/loop_analysis/loop_trip_count_tuple.hir @@ -12,8 +12,8 @@ fn loop<1>(b: prod(u64, u64)) -> prod(u64, u64) idx_inc = add(idx, one_idx) in_bounds = lt(idx, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) tuple1 = write(c, var, field(0)) tuple2 = write(tuple1, idx, field(1)) - r = return(if_false, tuple2) \ No newline at end of file + r = return(if_false, tuple2) diff --git a/hercules_test/test_inputs/simple2.hir b/hercules_test/test_inputs/simple2.hir index af5ac284b0715a0d10de73571575fd8e2b8a1ac5..d4f1bebe754d08ecb48739f4499551452ffa78bc 100644 --- a/hercules_test/test_inputs/simple2.hir +++ b/hercules_test/test_inputs/simple2.hir @@ -8,6 +8,6 @@ fn simple2(x: i32) -> i32 fac_acc = mul(fac, idx_inc) in_bounds = lt(idx_inc, x) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, fac_acc) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, fac_acc) diff --git a/hercules_test/test_inputs/strset.hir b/hercules_test/test_inputs/strset.hir index 4c8b32eeb1ab3875e053818ec7745e74f7b502f1..e8615f21e5a7c8d3148b1673f6e12b0fe6deaee8 100644 --- a/hercules_test/test_inputs/strset.hir +++ b/hercules_test/test_inputs/strset.hir @@ -12,6 +12,6 @@ fn strset<1>(str: array(u8, #0), byte: u8) -> array(u8, #0) continue = ne(read, byte) if_cond = and(continue, in_bounds) if = if(loop, if_cond) - if_false = projection(if, 0) - if_true = projection(if, 1) + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) r = return(if_false, str_inc) diff --git a/hercules_test/test_inputs/sum_int1.hir b/hercules_test/test_inputs/sum_int1.hir index 4a9ba0153448e4c9339e901d3ba3a10e027bad56..7de8cf1e606bf2f231ad3391fad50e7b04d32d93 100644 --- a/hercules_test/test_inputs/sum_int1.hir +++ b/hercules_test/test_inputs/sum_int1.hir @@ -11,6 +11,6 @@ fn sum<1>(a: array(i32, #0)) -> i32 red_add = add(red, read) in_bounds = lt(idx_inc, bound) if = if(loop, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) - r = return(if_false, red_add) \ No newline at end of file + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) + r = return(if_false, red_add) diff --git a/hercules_test/test_inputs/sum_int2.hir b/hercules_test/test_inputs/sum_int2.hir index b5e9a5c010275206c964708074219cf58568fe08..bc614d4e789364ad74fb81b9129f7c758c5cc685 100644 --- a/hercules_test/test_inputs/sum_int2.hir +++ b/hercules_test/test_inputs/sum_int2.hir @@ -11,8 +11,8 @@ fn alt_sum<1>(a: array(i32, #0)) -> i32 rem = rem(idx, two_idx) odd = eq(rem, one_idx) negate_if = if(loop, odd) - negate_if_false = projection(negate_if, 0) - negate_if_true = projection(negate_if, 1) + negate_if_false = control_projection(negate_if, 0) + negate_if_true = control_projection(negate_if, 1) negate_bottom = region(negate_if_false, negate_if_true) read = read(a, position(idx)) read_neg = neg(read) @@ -20,6 +20,6 @@ fn alt_sum<1>(a: array(i32, #0)) -> i32 red_add = add(red, read_phi) in_bounds = lt(idx_inc, bound) if = if(negate_bottom, in_bounds) - if_false = projection(if, 0) - if_true = projection(if, 1) + if_false = control_projection(if, 0) + if_true = control_projection(if, 1) r = return(if_false, red_add)