[Qemu-devel] [PATCH 0/8] target/ppc: Optimize emulation of some Altivec instructions

Stefan Brankovic posted 8 patches 4 years, 10 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/1560942225-24728-1-git-send-email-stefan.brankovic@rt-rk.com
Test s390x failed
Test checkpatch passed
Test asan passed
Test docker-mingw@fedora passed
Test docker-clang@ubuntu failed
Test FreeBSD passed
Maintainers: David Gibson <david@gibson.dropbear.id.au>
There is a newer version of this series
target/ppc/helper.h                 |  10 -
target/ppc/int_helper.c             | 365 ---------------------
target/ppc/translate/vmx-impl.inc.c | 633 ++++++++++++++++++++++++++++++++----
3 files changed, 564 insertions(+), 444 deletions(-)
[Qemu-devel] [PATCH 0/8] target/ppc: Optimize emulation of some Altivec instructions
Posted by Stefan Brankovic 4 years, 10 months ago
Optimize emulation of ten Altivec instructions: lvsl, lvsr, vsl, vsr, vpkpx,
vgbbd, vclzb, vclzh, vclzw and vclzd.

This series buils up on and complements recent work of Thomas Murta, Mark
Cave-Ayland and Richard Henderson in the same area. It is based on devising TCG
translation implementation for selected instructions rather than using helpers.
The selected instructions are most of the time idiosyncratic to ppc platform,
so relatively complex TCG translation (without direct mapping to host
instruction that is not possible in these cases) seems to be the best option,
and that approach is presented in this series. The performance improvements are
significant in all cases.

V2:

Addressed Richard's Henderson's suggestions.
Fixed problem during build on patch 2/8.
Rebased series to the latest qemu code.

Stefan Brankovic (8):
  target/ppc: Optimize emulation of lvsl and lvsr instructions
  target/ppc: Optimize emulation of vsl and vsr instructions
  target/ppc: Optimize emulation of vpkpx instruction
  target/ppc: Optimize emulation of vgbbd instruction
  target/ppc: Optimize emulation of vclzd instruction
  target/ppc: Optimize emulation of vclzw instruction
  target/ppc: Optimize emulation of vclzh and vclzb instructions
  target/ppc: Refactor emulation of vmrgew and vmrgow instructions

 target/ppc/helper.h                 |  10 -
 target/ppc/int_helper.c             | 365 ---------------------
 target/ppc/translate/vmx-impl.inc.c | 633 ++++++++++++++++++++++++++++++++----
 3 files changed, 564 insertions(+), 444 deletions(-)

-- 
2.7.4


Re: [Qemu-devel] [PATCH 0/8] target/ppc: Optimize emulation of some Altivec instructions
Posted by no-reply@patchew.org 4 years, 10 months ago
Patchew URL: https://patchew.org/QEMU/1560942225-24728-1-git-send-email-stefan.brankovic@rt-rk.com/



Hi,

This series failed build test on s390x host. Please find the details below.

=== TEST SCRIPT BEGIN ===
#!/bin/bash
# Testing script will be invoked under the git checkout with
# HEAD pointing to a commit that has the patches applied on top of "base"
# branch
set -e
CC=$HOME/bin/cc
INSTALL=$PWD/install
BUILD=$PWD/build
mkdir -p $BUILD $INSTALL
SRC=$PWD
cd $BUILD
$SRC/configure --cc=$CC --prefix=$INSTALL
make -j4
# XXX: we need reliable clean up
# make check -j4 V=1
make install

echo
echo "=== ENV ==="
env

echo
echo "=== PACKAGES ==="
rpm -qa
=== TEST SCRIPT END ===

  CC      riscv64-softmmu/accel/tcg/tcg-all.o
In file included from /var/tmp/patchew-tester-tmp-wp6edlgx/src/target/ppc/translate.c:6826:
/var/tmp/patchew-tester-tmp-wp6edlgx/src/target/ppc/translate/vmx-impl.inc.c: In function ‘trans_lvsl’:
/var/tmp/patchew-tester-tmp-wp6edlgx/src/target/ppc/translate/vmx-impl.inc.c:520:29: error: passing argument 2 of ‘tcg_gen_ext_i32_i64’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  520 |     tcg_gen_ext_i32_i64(sh, EA);
      |                             ^~
      |                             |
---
      |                                        ~~~~~~~~~^~~
In file included from /var/tmp/patchew-tester-tmp-wp6edlgx/src/target/ppc/translate.c:6826:
/var/tmp/patchew-tester-tmp-wp6edlgx/src/target/ppc/translate/vmx-impl.inc.c: In function ‘trans_lvsr’:
/var/tmp/patchew-tester-tmp-wp6edlgx/src/target/ppc/translate/vmx-impl.inc.c:559:29: error: passing argument 2 of ‘tcg_gen_ext_i32_i64’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  559 |     tcg_gen_ext_i32_i64(sh, EA);
      |                             ^~
      |                             |


The full log is available at
http://patchew.org/logs/1560942225-24728-1-git-send-email-stefan.brankovic@rt-rk.com/testing.s390x/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com