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 <vladimir.b.yakov...@intel.com> * 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