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]

Re: ifcvt buglet


On Wed, May 31, 2000 at 01:23:13AM -0600, Jeffrey A Law wrote:
> The PA was failing to bootstrap because it mis-compiled 
> file_name_nondirectory in the C++ front-end.  This mis-compilation
> showed up as a compile-time failure when building the C++ runtime
> libraries.
> 
> Basically we had a conditional jump in parallel with a reg->reg copy.
> if-conversion removed the conditional jump & reg->reg copy.  This
> resulted in an uninitialized pseudo and ultimately incorrect code.
> 
> if/condexec conversion doesn't know how to deal with jumps which have
> additional side effects.  This patch (suggested by Richard) fixes the
> problem.
> 
> 
> 	* ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn
> 	in the block is more than just a simple conditional branch.
> 	(noce_process_if_block): Similarly.

Hmmm, I may need to have a clobber in the jumps I want to convert to
conditional code for the port that I'm working on.  I would prefer a test that
allowed clobbers (but not moves).

-- 
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]