diff --git a/hercules_opt/src/gcm.rs b/hercules_opt/src/gcm.rs index 271bfaf1da55f6c8ab342d06853532eb5ce99fff..b13c919abe4f7f99874185f110e7a145c9327d5e 100644 --- a/hercules_opt/src/gcm.rs +++ b/hercules_opt/src/gcm.rs @@ -290,7 +290,7 @@ fn basic_blocks( .collect(); for mutator in reverse_postorder.iter() { let mutator_early = schedule_early[mutator.idx()].unwrap(); - if dom.does_dom(root_early, mutator_early) + if dom.does_prop_dom(root_early, mutator_early) && (root_early != mutator_early || root_block_iterated_users.contains(&mutator)) && mutating_objects(function, func_id, *mutator, objects)