After linearization, operands of binops of binops are maintained in a 'canonical' order but this order is only: anything > symbols > integer literals but there is some value to impose a more complete order as this creates more opportunities for CSE and help to limit the number of patterns that need to be checked at simplification of even during code generation. This is what is done by this (almost single patch) series. This series is available at: git://github.com/lucvoo/sparse.git base-file based on commit: c9585071d02590f40175ea90c395d15ef70e9a1e (cset-setfval) up to commit: 462a61a21b1e3bb17abce88fb1bdbc93d9653245 Luc Van Oostenryck (2): CSE: split optim/cse-dual-compare.c in two files CSE: extend canonical_order() linearize.h | 4 +-- simplify.c | 29 +++++++++++----- validation/call-inlined.c | 2 +- .../optim/{cse-dual-compare.c => cse-dual-cmpeq.c} | 11 +----- validation/optim/cse-dual-cmpne.c | 40 ++++++++++++++++++++++ 5 files changed, 65 insertions(+), 21 deletions(-) rename validation/optim/{cse-dual-compare.c => cse-dual-cmpeq.c} (68%) create mode 100644 validation/optim/cse-dual-cmpne.c -- 2.12.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