While reviewing a commit from Aurelien Jarno where he optimized a TCG generator
for SH-4 [1] I found the same optimization done on PPC by Nikunj A Dadhania few
months ago [2].
After asking on the ML about a cocci script [3] I thought it would be easier to
learn about Coccinelle.

citing Aurelien Jarno:
    This doesn't change the generated code on x86, but optimizes it on most
    RISC architectures and makes the code simpler to read.

I actually applied the script using the following command:

$ docker run -v `pwd`:`pwd` -w `pwd` petersenna/coccinelle \
    --sp-file scripts/coccinelle/tcg_gen_extract.cocci \
    --macro-file scripts/cocci-macro-file.h \
    --dir target \
    --in-place

Please review, thanks.

[1] http://lists.nongnu.org/archive/html/qemu-devel/2017-05/msg01466.html
[2] http://lists.nongnu.org/archive/html/qemu-devel/2017-02/msg05211.html
[3] http://lists.nongnu.org/archive/html/qemu-devel/2017-05/msg01499.html

Philippe Mathieu-Daudé (8):
  coccinelle: add a script to optimize tcg op using tcg_gen_extract()
  target/arm: optimize smul_dual() and neon_trn_u8() using extract op
  target/arm: optimize rev16() using extract op
  target/cris: optimize gen_swapb() using extract op
  target/m68k: optimize bcd_flags() using extract op
  target/mips: optimize bshfl() using extract op
  target/ppc: using various functions using extract op
  target/sparc: optimize various functions using extract op

 scripts/coccinelle/tcg_gen_extract.cocci | 26 ++++++++++++++++++++++++++
 target/arm/translate-a64.c               |  6 ++----
 target/arm/translate.c                   |  6 ++----
 target/cris/translate.c                  |  3 +--
 target/m68k/translate.c                  |  3 +--
 target/mips/translate.c                  |  9 +++------
 target/ppc/translate.c                   |  9 +++------
 target/ppc/translate/vsx-impl.inc.c      | 21 +++++++--------------
 target/sparc/translate.c                 | 15 +++++----------
 9 files changed, 50 insertions(+), 48 deletions(-)
 create mode 100644 scripts/coccinelle/tcg_gen_extract.cocci

-- 
2.11.0


Reply via email to