From becb04545659eefcb250b6138daaf3eb5ddf3ff1 Mon Sep 17 00:00:00 2001 From: Brian Campbell Date: Wed, 14 Feb 2018 10:18:27 +0000 Subject: Handle simple returns in constant propagation Useful for feature functions, e.g. HaveFP16Ext --- src/monomorphise.ml | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/monomorphise.ml b/src/monomorphise.ml index 80046b20..17057097 100644 --- a/src/monomorphise.ml +++ b/src/monomorphise.ml @@ -1354,6 +1354,10 @@ let split_defs all_errors splits defs = | Some (exp,bindings,kbindings) -> let substs = bindings_from_list bindings in let result,_ = const_prop_exp substs Bindings.empty exp in + let result = match result with + | E_aux (E_return e,_) -> e + | _ -> result + in if is_value result then Some result else None | None -> None -- cgit v1.2.3