This serie add a few more simplification of multiplicative operators (multiplication, division & modulo) with constants 1 or -1. Only simplifications that doesn't depend on undefined behavior are done. Changes since v1: - no functional changes - remove unneeded case + break in patch 2 Changes since v2: - fix copy-paste error in test case for OP_DIVS by -1 - add test case for OP_DIVU by -1 Both thanks to Rasmus Villemoes. Luc Van Oostenryck (5): move OP_MUL simplification in a separate function simplify '(x / 1)' to 'x' simplify '(x * -1)' to '-x' simplify '(x / -1)' to '-x' (but only for signed division) simplify '(x % 1)' into '0' simplify.c | 36 ++++++++++++++++++++++++++++++++++++ validation/optim/muldiv-by-one.c | 19 +++++++++++++++++++ validation/optim/muldiv-by-zero.c | 13 +++++++++++++ validation/optim/muldiv-minus-one.c | 18 ++++++++++++++++++ 4 files changed, 86 insertions(+) create mode 100644 validation/optim/muldiv-by-one.c create mode 100644 validation/optim/muldiv-by-zero.c create mode 100644 validation/optim/muldiv-minus-one.c -- 2.11.0 -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html