From fe60b75ea034bd77335680ef5abaf5fb61455cfd Mon Sep 17 00:00:00 2001 From: Josh Berdine Date: Sat, 9 Mar 2019 05:17:46 -0800 Subject: [PATCH] [sledge] Ignore llvm.invariant.{start,end} instructions Summary: These tell llvm that contents of memory will not change during execution of some code, which the analyzer does not need. Reviewed By: jvillard Differential Revision: D14385597 fbshipit-source-id: 0ef566a6f --- sledge/src/llair/frontend.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sledge/src/llair/frontend.ml b/sledge/src/llair/frontend.ml index c1cdf0370..ec1bd682e 100644 --- a/sledge/src/llair/frontend.ml +++ b/sledge/src/llair/frontend.ml @@ -938,7 +938,7 @@ let xlate_instr : | _ when Option.is_some (xlate_intrinsic_exp fname) -> continue (fun (insts, term) -> (insts, term, [])) | ["llvm"; "dbg"; ("declare" | "value")] - |"llvm" :: "lifetime" :: ("start" | "end") :: _ -> + |"llvm" :: ("lifetime" | "invariant") :: ("start" | "end") :: _ -> continue (fun (insts, term) -> (insts, term, [])) | ["llvm"; ("stacksave" | "stackrestore")] -> todo "stack allocation after function entry:@ %a" pp_llvalue instr