I discoverd some inaccuracies when tried to implement vzeroupper insertion (pr#47440).
First, I made 'transp' as an array of bit vectors rather bitvector
because it should be own for each mode, otherwise its resetting on
mode changing kills all modes (and new mode also).
Another changes concern processing of mode switching inside a basic block.
I also added addition argument to EMIT_MODE_SET because it is needed
me in target dependent changes.
Make check and bootstrap passed, no fails.
I used compiler
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc/configure
--prefix=/export/users/vbyakovl/workspaces/vzu/install-ref
--enable-languages=c,c++,fortran --with-arch=corei7 --with-cpu=corei7
--with-fpmath=sse
Ok for trank.
2012-08-25 Vladimir Yakovlev <[email protected]>
* mode-switching.c (transp): Changed type
(make_preds_opaque): Added an argument
(optimize_mode_switching): Some fixes which was done for vzeroupper
insertion needs.
* config/epiphany/epiphany.h (EMIT_MODE_SET): Added an argument.
* config/i386/i386.h (EMIT_MODE_SET): Added an argument.
* config/sh/sh.h (EMIT_MODE_SET): Added an argument.
patch
Description: Binary data
