optimization/7702: [PATCH] Make reload-cse honor CANNOT_CHANGE_MODE_CLASS

Falk Hueffner falk.hueffner@student.uni-tuebingen.de
Fri Feb 14 09:26:00 GMT 2003


Hi,

This fixes PR 7702 and a miscompilation of openssh on Alpha ev6 (sshd
wouldn't accept ssh2 connections). The CSE in reload wants to merge
registers with equal content and widen them to word_mode while at it,
but doesn't honor CANNOT_CHANGE_MODE_CLASS. When the register
allocator is foolish enough to put two identical integer constants
into floating point registers, this fails.

Because of this dependency on the register allocator, the problem is
very hard to isolate, both test cases work with mainline. However,
doing an equivalent patch for 3.2 fixes the problem. Because of the
ssh miscompilation, it would be nice if it could also be included on
older branches.

2003-02-14  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>

        PR optimization/7702
	* reload1.c (reload_cse_simplify_set): Honor
	CANNOT_CHANGE_MODE_CLASS.

-- 
	Falk

-------------- next part --------------
A non-text attachment was scrubbed...
Name: reload1.patch
Type: text/x-patch
Size: 780 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20030214/9e2c73f5/attachment.bin>


More information about the Gcc-patches mailing list