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: proposal for new single-bit BImode for IA-64


At 12:44 -0700 5/2/00, Jim Wilson wrote:
>	Why can't you use QI and make the predicate registers part of
>	a special class that has a unique constraint character.
>
>It is a special class with its own contraint letter.  However, I still need
>patterns to move values in and out of these registers, for various reasons,
>constant folding, spilling, etc.  Once I have an RTL that moves a QImode
>value into a single-bit predicate register, it is possible for an optimization
>pass to confuse the RTL a bit such that it then moves a register value into
>a predicate register, and then things start failing.  I couldn't see a way
>to make this work right as long as I used a mode that was larger than the
>register size.
>

	But you can still constrain those moves involving a predicate
	register by only permitting constants 1 and 0 as constants.

	Any moves involving predicate registers and normal QI register
	or memory operands should have the predicate-register constraint
	character prefixed by '*' so that it won't try and preference
	the operand into a predicate register unless some REAL use
	has already put it there.

	I'm probably missing some other gotcha...

	I was thinking that you might be able to set the MOVE_COST high
	for this, but I'm not sure that would end up doing anything
	useful....

-- 
------------------------------------------------------------------------

		    Quality Software Management
		http://www.tiac.net/users/lehotsky
			lehotsky@tiac.net
			(978)287-0435 Voice
			(978)808-6836 Cellular
			(978)287-0436 Fax/Data

	Software Process Improvement and Management Consulting
	     Language Design and Compiler Implementation

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