<div dir="ltr">Hey. I realize this question is a bit out-of-place, but I feel someone in the LLVM community might've ran into a similar topic before.<br><br>I'd like to find a way to run LLVM IR and mark all branches taken, given a specific input.<br><br>Take this example:<br><br>```<br>int get_sign(int x) {<br>if (x == -1234) return -1234;<br>if (x < 0) return -1;<br>else return 1;<br>}<br>```<br><br>It's clear that the `x == -1234` branch is useless if x > 0. Does the LLVM project have a way of marking the taken branches, so that one can reason about them later, possibly in an LLVM pass?<br><br>I do realize KLEE exists, but SMT solvers require quite a bit of "plugging" of functions to limit the scope. Not to mention the path explosion that a real binary would entail. What I was looking for was possibly an lldb/lli mechanism to allow "marking" the taken branches, in a real execution environment.<br><br>Has someone encountered such an issue before?<br><br>Many thanks<br><br>-- J</div>