This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Suppress handling dead code via conditional execution on special machines


This patch goes along with my previous patch that adds the
IFCVT_MODIFY macros.  Otherwise IFCVT_MODIFY_INSN is called without
the initial and final macros being done.  It would be better if this
code were reorganized so that if the dead code can't be handled via
conditional execution (due to having instructions that don't have
conditional execution formats), it would fall back to the non
conditional execution else block.

2000-06-12  Michael Meissner  <meissner@redhat.com>

	* ifcvt.c (dead_or_predicable): Don't do conditional execution
	path if the machine needs extra support to do conditional
	execution.

*** gcc/ifcvt.c.~1~	Mon Jun 12 22:16:20 2000
--- gcc/ifcvt.c	Mon Jun 12 22:21:09 2000
*************** dead_or_predicable (test_bb, merge_bb, o
*** 1865,1870 ****
--- 1865,1873 ----
        end = PREV_INSN (end);
      }
  
+   /* Disable handling dead code by conditional execution if the machine needs
+      to do anything funny with the tests, etc.  */
+ #ifndef IFCVT_MODIFY_TESTS
    if (HAVE_conditional_execution)
      {
        /* In the conditional execution case, we have things easy.  We know
*************** dead_or_predicable (test_bb, merge_bb, o
*** 1896,1901 ****
--- 1899,1905 ----
        earliest = jump;
      }
    else
+ #endif
      {
        /* In the non-conditional execution case, we have to verify that there
  	 are no trapping operations, no calls, no references to memory, and

-- 
Michael Meissner, Cygnus Solutions, a Red Hat company.
PMB 198, 174 Littleton Road #3, Westford, Massachusetts 01886, USA
Work:	  meissner@redhat.com		phone: +1 978-486-9304
Non-work: meissner@spectacle-pond.org	fax:   +1 978-692-4482

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]