Symbolic range analysis for LLVM