linux-sparse.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/22] essential OP_ADD & OP_SUB simplifications
@ 2020-10-20 21:09 Luc Van Oostenryck
  2020-10-20 21:10 ` [PATCH 01/22] add testcases about " Luc Van Oostenryck
                   ` (21 more replies)
  0 siblings, 22 replies; 23+ messages in thread
From: Luc Van Oostenryck @ 2020-10-20 21:09 UTC (permalink / raw)
  To: linux-sparse; +Cc: Luc Van Oostenryck

These patches are a first set aiming at improving canonicalization
and essential simplifications.

Luc Van Oostenryck (22):
  add testcases about OP_ADD & OP_SUB simplifications
  let switch_pseudo() return REPEAT_CSE
  extract eval_op() from eval_insn()
  unop: add helper eval_unop()
  unop: add helper replace_with_unop()
  add a flag to identify commutative & associative ops
  constants must be truncated to the operation's size
  reassoc: simplify (x # C) # K --> x # eval(C # K)
  sub: reorganize handling of OP_{ADD,SUB}s with constant rightside
  sub: canonicalize (0 - x) into -x
  sub: simplify C - (y + D) --> eval(C-D) - y
  sub: simplify C - (D - z) --> z + eval(C-D)
  sub: simplify (C - y) + D --> eval(C+D) - y
  sub: simplify (x - -y) --> (x + y)
  add: simplify (x + -y) --> (x - y)
  add: simplify (-x + y) --> (y - x)
  sub: simplify (x + y) - x --> y
  sub: simplify (x + y) - y --> x
  sub: simplify x - (x + y) --> -y
  sub: simplify x - (y + x) --> -y
  sub: simplify (x - y) + y --> x
  sub: simplify x + (y - x) --> y

 opcode.def                                |  50 ++---
 opcode.h                                  |   5 +
 simplify.c                                | 250 ++++++++++++++++++----
 validation/optim/canonical-sub-cte.c      |   9 +
 validation/optim/reassoc-op-op1.c         |  14 ++
 validation/optim/simplify-add-neg.c       |   9 +
 validation/optim/simplify-cte-sub-addl.c  |   9 +
 validation/optim/simplify-cte-sub-addr.c  |   9 +
 validation/optim/simplify-cte-sub-subr.c  |   9 +
 validation/optim/simplify-neg-add.c       |   9 +
 validation/optim/simplify-same-add-subl.c |  15 ++
 validation/optim/simplify-same-add-subr.c |  15 ++
 validation/optim/simplify-same-addl-sub.c |   9 +
 validation/optim/simplify-same-sub-addl.c |   9 +
 validation/optim/simplify-same-subl-add.c |  11 +
 validation/optim/simplify-same-subr-add.c |  11 +
 validation/optim/simplify-sub-neg.c       |   9 +
 validation/optim/simplify-zero-sub.c      |   9 +
 18 files changed, 397 insertions(+), 64 deletions(-)
 create mode 100644 validation/optim/canonical-sub-cte.c
 create mode 100644 validation/optim/reassoc-op-op1.c
 create mode 100644 validation/optim/simplify-add-neg.c
 create mode 100644 validation/optim/simplify-cte-sub-addl.c
 create mode 100644 validation/optim/simplify-cte-sub-addr.c
 create mode 100644 validation/optim/simplify-cte-sub-subr.c
 create mode 100644 validation/optim/simplify-neg-add.c
 create mode 100644 validation/optim/simplify-same-add-subl.c
 create mode 100644 validation/optim/simplify-same-add-subr.c
 create mode 100644 validation/optim/simplify-same-addl-sub.c
 create mode 100644 validation/optim/simplify-same-sub-addl.c
 create mode 100644 validation/optim/simplify-same-subl-add.c
 create mode 100644 validation/optim/simplify-same-subr-add.c
 create mode 100644 validation/optim/simplify-sub-neg.c
 create mode 100644 validation/optim/simplify-zero-sub.c


base-commit: 5192dc1ff23dae8644480a89ada8ff420ebb674a
-- 
2.28.0


^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2020-10-20 21:10 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-10-20 21:09 [PATCH 00/22] essential OP_ADD & OP_SUB simplifications Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 01/22] add testcases about " Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 02/22] let switch_pseudo() return REPEAT_CSE Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 03/22] extract eval_op() from eval_insn() Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 04/22] unop: add helper eval_unop() Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 05/22] unop: add helper replace_with_unop() Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 06/22] add a flag to identify commutative & associative ops Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 07/22] constants must be truncated to the operation's size Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 08/22] reassoc: simplify (x # C) # K --> x # eval(C # K) Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 09/22] sub: reorganize handling of OP_{ADD,SUB}s with constant rightside Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 10/22] sub: canonicalize (0 - x) into -x Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 11/22] sub: simplify C - (y + D) --> eval(C-D) - y Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 12/22] sub: simplify C - (D - z) --> z + eval(C-D) Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 13/22] sub: simplify (C - y) + D --> eval(C+D) - y Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 14/22] sub: simplify (x - -y) --> (x + y) Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 15/22] add: simplify (x + -y) --> (x - y) Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 16/22] add: simplify (-x + y) --> (y - x) Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 17/22] sub: simplify (x + y) - x --> y Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 18/22] sub: simplify (x + y) - y --> x Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 19/22] sub: simplify x - (x + y) --> -y Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 20/22] sub: simplify x - (y + x) " Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 21/22] sub: simplify (x - y) + y --> x Luc Van Oostenryck
2020-10-20 21:10 ` [PATCH 22/22] sub: simplify x + (y - x) --> y Luc Van Oostenryck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).