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.

Attachment: patch
Description: Binary data

Reply via email to