diff --git a/hercules_opt/src/forkify.rs b/hercules_opt/src/forkify.rs index 730776786598318ccaf60a424164f67f5e16c112..356dd67a886896886f5dbfcf00beb3f26afd20bf 100644 --- a/hercules_opt/src/forkify.rs +++ b/hercules_opt/src/forkify.rs @@ -10,6 +10,11 @@ use hercules_ir::*; use crate::*; +/* + * TODO: Forkify currently makes a bunch of small edits - this needs to be + * changed so that every loop that gets forkified corresponds to a single edit + * + sub-edits. This would allow us to run forkify on a subset of a function. + */ pub fn forkify( editor: &mut FunctionEditor, control_subgraph: &Subgraph, diff --git a/juno_scheduler/src/pm.rs b/juno_scheduler/src/pm.rs index 8b3e90502128df6fb8962692fffd5dc67e1aabb8..9888f3d2f2bd052b818049f3c225c614db54dbe7 100644 --- a/juno_scheduler/src/pm.rs +++ b/juno_scheduler/src/pm.rs @@ -1306,10 +1306,6 @@ fn run_pass( } Pass::ForkSplit => { assert!(args.is_empty()); - // FIXME: I'm not sure if this is the correct way to build fixpoint into the PM, - // i.e cloning selection. Does something need to be done to propagate labels between iterations - // of this loop? - loop { let mut inner_changed = false; pm.make_fork_join_maps(); @@ -1354,8 +1350,10 @@ fn run_pass( let Some(mut func) = func else { continue; }; + // TODO: uses direct return from forkify for now instead of + // func.modified, see comment on top of `forkify` for why. Fix + // this eventually. changed |= forkify(&mut func, control_subgraph, fork_join_map, loop_nest); - // func.modified(); } pm.delete_gravestones(); pm.clear_analyses();