------- Comment #8 from mkuvyrkov at gcc dot gnu dot org  2010-04-22 07:09 
-------
Subject: Re:  [4.5/4.6 regression] ICE in reload_cse_simplify_operands

On 4/22/10 3:40 AM, schwab at linux-m68k dot org wrote:
> ------- Comment #7 from schwab at linux-m68k dot org  2010-04-21 23:40 -------
> I think 'T' should accept tls references like 's' does.

Do you mean the following?
==
(define_constraint "T"
   "Used for operands that satisfy 's' when -mpcrel is not in effect."
   (and (match_code "symbol_ref,label_ref,const")
        (match_test "!flag_pic || m68k_tls_reference_p (op, true)")))
==

Yes, that should fix this particular problem, but one could equally 
successfully argue that "T" then should then accept usual PIC GOT 
references too.

I just do not understand the background behind "T" constraint.  Sigh.

Maybe, it was introduced as an optimization to stop GCC from putting 
addresses (symbol_refs, etc) into data registers and then reloading them 
into address registers.  Most probably, current GCC register allocator 
will do a just that without this kind of manual tweaking on the backend 
side.


-- 


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

Reply via email to