fix stupid bug in reducer

remove a debug printout

assert that souper-check likes the initial input to the reducer
Invoking PrintReplacementLHS for dumping all replacements

Because RHS is NULL after we switched to infer mode,
we need to use PrintReplacementLHS rather than PrintReplacement.
Otherwise, souper pass would crash by passing -souper-debug-level=2.
Merge pull request #100 from chenyang78/debug_level

Invoking PrintReplacementLHS for dumping all replacements
Fixed divide-by-zero crash for issue 84

We can't pass a constant zero as a divisor when building KLEE expressions,
because KLEE invokes llvm::APInt's div functions, which crash on zero value
divisors.

To fix this, when we build a div/rem expression, we fist check if the second
oprand is klee constant 0. If it is, then it definitely causes UB, and we
simply skip building the corresponding KLEE expression and just return a
constant zero.
Merge pull request #99 from regehr/reducer-fix

reducer fixes
Merge pull request #102 from chenyang78/issue_84

Fix to Issue #84
Added blockpc to souper

This patch addresses issue #81 by implementing blockpc based on Peter's
suggestion. blockpc has the same semantics as pc, except that pc only applies
when the given predecessor of the given block is chosen.

blockpc(s) are collected in a way similar to what we currently do for pc(s),
and are encoded with a similar technique for encoding UB constraints.

The parser is also updated to parse blockpc(s).
cleanup
fixed a warning
tweaks on check entry blocks