Repeat processing all basic blocks for vzeroupper optimization.
authorH.J. Lu <hongjiu.lu@intel.com>
Thu, 30 Dec 2010 13:12:02 +0000 (13:12 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Thu, 30 Dec 2010 13:12:02 +0000 (05:12 -0800)
commit310a21aa3120a17fe90c02faf1c462de2789c4e3
tree1bc4f0ed9cbf606b4497b63a9f70a59e13576510
parentecdee6655c695b6b3e47a0cfcba9fda5b7ccd813
Repeat processing all basic blocks for vzeroupper optimization.

gcc/

2010-12-30  H.J. Lu  <hongjiu.lu@intel.com>

PR target/46519
* config/i386/i386.c (block_info_def): Remove referenced, count
and rescanned.
(move_or_delete_vzeroupper_2): Updated.
(move_or_delete_vzeroupper_1): Rewritten to avoid recursive call.
(rescan_move_or_delete_vzeroupper): Removed.
(move_or_delete_vzeroupper): Repeat processing all basic blocks
until no basic block state is changed to used at exit.

gcc/testsuite/

2010-12-30  H.J. Lu  <hongjiu.lu@intel.com>

PR target/46519
* gfortran.dg/pr46519-2.f90: New.

From-SVN: r168342
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr46519-2.f90 [new file with mode: 0644]