------- Comment #2 from law at redhat dot com  2010-02-05 16:20 -------
The argument for using conflicts is that the vast majority of the time if the
constraints force us to tie a specific source to the destination, then the
other source must not use the same hard reg as the destination.  There might be
oddball cases where all the operands could share the same hard reg, but I
suspect those would be extremely rare.

The argument against using conflicts is the conflict code works on liveness so
we have to process the constraints and cause certain input operands to become
live earlier than normal.  However, we already do that for earlyclobbers, so it
might not be too ugly.

Using the costing models may be marginally simpler, but I doubt they'll be
nearly as effective.  In fact, for the example in my message, using the
ira-reload code, costing models is insufficient to solve the problem because
the only available register for the untied input reg is the hard register used
by the output.  So even with a high cost, we still allocate the output and
untied input to the same hard reg triggering reload insanity.  We're actually
better off leaving the untied input unallocated.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42973

Reply via email to