public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
* Does a target system must support indexing?
@ 2012-06-01 12:00 Setjem Setjem
  2012-06-01 12:38 ` Georg-Johann Lay
  0 siblings, 1 reply; 5+ messages in thread
From: Setjem Setjem @ 2012-06-01 12:00 UTC (permalink / raw)
  To: gcc-help

Does a target system must support indexing? I have tried to disable 
indexing by setting the following macros:

#define INDEX_REG_CLASS             NO_REGS
#define REGNO_OK_FOR_INDEX_P(num)   0

and rejecting all addresses with side effects in the target 
hook TARGET_LEGITIMATE_ADDRESS_P.

But it seems that the compiler still trying to use indexes.
For example the compiler fails at:

C-code:

  void fail(long long *v)
  {
	*v += 1;
  }

Failure:

  fail.c: In function 'fail':
  fail.c:4:1: internal compiler error: in change_address_1, at emit-rtl.c:1933
  Please submit a full bug report,
  with preprocessed source if appropriate.
  See <http://gcc.gnu.org/bugs.html> for instructions.

Last debug info from TARGET_LEGITIMATE_ADDRESS_P:

  legitimate_address_p:
    mode: (SI)  (reload_completed)  (reg_renumber):
                (r18 ---> r18)
    address:    (plus:SI (reg/f:SI 18 r18)
                         (const_int 4 [0x4]))
  return false
  
I am not sure if it fails because of the index or i made 
some mistakes in describing the handling of long long values. 
But still. Why the compiler tried to use indexing?

PS:
- the debug output in TARGET_LEGITIMATE_ADDRESS_P is stollen 
  from the avr backend
- r18 is the frame pointer
- sorry for my bad englisch. i am from germany.

Thanks in advanced

Andreas
-- 
Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Does a target system must support indexing?
  2012-06-01 12:00 Does a target system must support indexing? Setjem Setjem
@ 2012-06-01 12:38 ` Georg-Johann Lay
  0 siblings, 0 replies; 5+ messages in thread
From: Georg-Johann Lay @ 2012-06-01 12:38 UTC (permalink / raw)
  To: Setjem Setjem; +Cc: gcc-help

Setjem Setjem wrote:
> Does a target system must support indexing? I have tried to disable 
> indexing by setting the following macros:
> 
> #define INDEX_REG_CLASS             NO_REGS
> #define REGNO_OK_FOR_INDEX_P(num)   0
> 
> and rejecting all addresses with side effects in the target 
> hook TARGET_LEGITIMATE_ADDRESS_P.
> 
> But it seems that the compiler still trying to use indexes.
> For example the compiler fails at:
> 
> C-code:
> 
>   void fail(long long *v)
>   {
> 	*v += 1;
>   }
> 
> Failure:
> 
>   fail.c: In function 'fail':
>   fail.c:4:1: internal compiler error: in change_address_1, at emit-rtl.c:1933
>   Please submit a full bug report,
>   with preprocessed source if appropriate.
>   See <http://gcc.gnu.org/bugs.html> for instructions.
> 
> Last debug info from TARGET_LEGITIMATE_ADDRESS_P:
> 
>   legitimate_address_p:
>     mode: (SI)  (reload_completed)  (reg_renumber):
>                 (r18 ---> r18)
>     address:    (plus:SI (reg/f:SI 18 r18)
>                          (const_int 4 [0x4]))
>   return false

This is not indexed addressing.  Indexed addressing would be
[reg+reg] or [reg + const*reg]

> I am not sure if it fails because of the index or i made 
> some mistakes in describing the handling of long long values. 
> But still. Why the compiler tried to use indexing?

Look at TARGET_LEGITIMIZE_ADDRESS and at expand time you can
force the [reg+const] addresses into a register.

Johann

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Does a target system must support indexing?
@ 2012-06-04  7:37 Setjem Setjem
  0 siblings, 0 replies; 5+ messages in thread
From: Setjem Setjem @ 2012-06-04  7:37 UTC (permalink / raw)
  To: Ian Lance Taylor; +Cc: gcc-help

[-- Attachment #1: Type: text/plain, Size: 3545 bytes --]

-------- Original-Nachricht --------
> Datum: Fri, 01 Jun 2012 07:55:33 -0700
> Von: Ian Lance Taylor <iant@google.com>
> An: "Setjem Setjem" <Setjem@gmx.de>
> CC: Georg-Johann Lay <avr@gjlay.de>, gcc-help@gcc.gnu.org
> Betreff: Re: Does a target system must support indexing?

> "Setjem Setjem" <Setjem@gmx.de> writes:
> 
> >> Look at TARGET_LEGITIMIZE_ADDRESS and at expand time you can
> >> force the [reg+const] addresses into a register.
> >
> > Thank you very much,
> >
> > Let me get this right that expand time is the time before reload is in
> progress? 
> >
> > Now i have implemeted TARGET_LEGITIMIZE_ADDRESS:
> 
> But have you done the "at expand time" part?  That means that you need
> to write movMODE as a define_expand that stuffs the address into a
> register.
> 
> Ian

Hi Ian,
thanks for your answer. Sorry that i didn't reply over the weekend but i had no time. I added some instructions within the define_expand move<mode> and now it looks like this:

(define_expand "mov<mode>"
   [(set (match_operand:QISI 0 "nonimmediate_operand"   "")
         (match_operand:QISI 1 "general_operand"    ""))]
   ""
   "
   {   
      fprintf(stderr, \"mov %s:\n\", GET_MODE_NAME(<MODE>mode));
      debug_rtx(operands[0]);
      debug_rtx(operands[1]);
		
      /*  One of the ops has to be in a register */
      if  (      ! register_operand(operands[0], <MODE>mode)
            &&  !(register_operand(operands[1], <MODE>mode)))
      {
         operands[1] = copy_to_mode_reg(<MODE>mode, operands[1]);
      }    

      /*  Do not allow side effects for operand 0 in addresses */
      if( MEM_P(operands[0]) )
      {
         rtx adr = (XEXP (operands[0],0));
         if (GET_CODE (adr) == PLUS && REG_P (XEXP (adr,0)) )
         {
            if (REG_P (XEXP (adr,1)) || (GET_CODE (XEXP (adr, 1)) == CONST_INT))
            {
               emit_insn(gen_addsi3(XEXP (adr,0), XEXP (adr,0), XEXP (adr,1)));
               operands[0] = gen_rtx_MEM(<MODE>mode,XEXP (adr,0));
               fprintf(stderr, \"after:\n\");
               debug_rtx(operands[0]);
               debug_rtx(operands[1]);
            }
         }   
      }
      
      /*  Do not allow side effects for operand 1 in addresses */
      if( MEM_P(operands[1]) )
      {
         rtx adr = (XEXP (operands[1],0));
         if (GET_CODE (adr) == PLUS && REG_P (XEXP (adr,0)) )
         {
            if (REG_P (XEXP (adr,1)) || (GET_CODE (XEXP (adr, 1)) == CONST_INT))
            {
               emit_insn(gen_addsi3(XEXP (adr,0), XEXP (adr,0), XEXP (adr,1)));
               operands[1] = gen_rtx_MEM(<MODE>mode,XEXP (adr,0));
               fprintf(stderr, \"after:\n\");
               debug_rtx(operands[0]);
               debug_rtx(operands[1]);
            }
         }   
      }
   fprintf(stderr, \"\n\");
   }"
)

(define_insn "*mov<mode>"
   [(set   (match_operand:QISI 0 "nonimmediate_operand"   "")
         (match_operand:QISI 1 "general_operand"    ""))]
   "      register_operand(operands[0], <MODE>mode)
      ||  register_operand(operands[1], <MODE>mode)"
   "* return menmic_mov_out(operands[0], operands[1], <MODE>mode);"
   [(set_attr "length" "1")]
)

But the problem is still the same. I don't get it. Why the compiler pass an address with side effect after the reload is completed and where? The compiled fail.c is the same as before. I attached the new debug log and hope you could help me.

-- 
Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de

[-- Attachment #2: debug.txt --]
[-- Type: text/plain, Size: 32464 bytes --]

menmic_option_override
menmic_asm_init_sections
menmic_legitimate_address_p
mode: (QI)    : 
address: 
(mem:SI (plus:SI (reg:SI 38)
        (const_int 4 [0x4])) [0 S4 A32])
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(mem:SI (symbol_ref:SI ("foo")) [0 S4 A32])
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 0 r0))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 1 r1))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 2 r2))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 3 r3))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 4 r4))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 5 r5))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 6 r6))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 7 r7))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 8 r8))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 9 r9))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 10 r10))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 11 r11))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 12 r12))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 13 r13))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 14 r14))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 15 r15))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 16 r16))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 17 r17))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 18 r18))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 19 r19))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 20 r20))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 21 r21))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 22 r22))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 23 r23))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 24 r24))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 25 r25))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 26 r26))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 27 r27))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 28 r28))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 29 r29))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 30 r30))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 31 r31))
    (const_int 4 [0x4]))
ret_val false 

menmic_init_machine_status
menmic_init_machine_status
menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 29 r29)
menmic_regno_ok_for_base_p: return: 29
ret_val false 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 29 r29)
menmic_regno_ok_for_base_p: return: 29
ret_val false 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg:SI 34 virtual-stack-dynamic)
ret_val true 

mov SI:
(reg:SI 32 virtual-incoming-args)
(reg:SI 33 virtual-stack-vars)

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg:SI 34 virtual-stack-dynamic)
ret_val true 

mov SI:
(mem:SI (reg:SI 34 virtual-stack-dynamic) [0 S4 A32])
(reg:SI 32 virtual-incoming-args)

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg:SI 34 virtual-stack-dynamic)
ret_val true 

mov SI:
(reg:SI 33 virtual-stack-vars)
(mem:SI (reg:SI 34 virtual-stack-dynamic) [0 S4 A32])

mov SI:
(reg:SI 32 virtual-incoming-args)
(reg:SI 33 virtual-stack-vars)

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg:SI 34 virtual-stack-dynamic)
ret_val true 

mov SI:
(mem:SI (reg:SI 34 virtual-stack-dynamic) [0 S4 A32])
(reg:SI 32 virtual-incoming-args)

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg:SI 34 virtual-stack-dynamic)
ret_val true 

mov SI:
(reg:SI 33 virtual-stack-vars)
(mem:SI (reg:SI 34 virtual-stack-dynamic) [0 S4 A32])

 failmenmic_init_machine_status

Analyzing compilation unit
menmic_init_cumulative_args
menmic_num_arg_regs regnums: 1
menmic_function_arg_advance:
nregs: 3
regno: 21
Performing interprocedural optimizations
 <*free_lang_data> <visibility> <early_local_cleanups> <emutls> <whole-program> <inline>Assembling functions:
 failmov SI:
(reg:SI 40)
(reg/f:SI 32 virtual-incoming-args)

menmic_init_cumulative_args
menmic_num_arg_regs regnums: 1
menmic_function_arg
menmic_num_arg_regs regnums: 1
menmic_function_arg_advance:
nregs: 3
regno: 21
menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

mov SI:
(mem/f/c/i:SI (reg/f:SI 33 virtual-stack-vars) [0 v+0 S4 A32])
(reg:SI 20 r20 [ v ])

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(mem/f/c/i:SI (reg/f:SI 33 virtual-stack-vars) [0 v+0 S4 A32])
ret_val false 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(mem/f/c/i:SI (reg/f:SI 33 virtual-stack-vars) [0 v+0 S4 A32])
ret_val false 

legitimize_address:
old: mode: SI
(mem/f/c/i:SI (reg/f:SI 33 virtual-stack-vars) [0 v+0 S4 A32])
new: mode: SI
(mem/f/c/i:SI (reg/f:SI 33 virtual-stack-vars) [0 v+0 S4 A32])

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

mov SI:
(reg:SI 41)
(mem/f/c/i:SI (reg/f:SI 33 virtual-stack-vars) [0 v+0 S4 A32])

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 41)
ret_val true 

menmic_legitimate_address_p
mode: (DI)    : 
address: 
(reg/f:SI 41)
ret_val true 

menmic_legitimate_address_p
mode: (DI)    : 
address: 
(reg/f:SI 41)
ret_val true 

menmic_legitimate_address_p
mode: (DI)    : 
address: 
(reg/f:SI 41)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 41)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 41)
ret_val true 

mov SI:
(subreg:SI (reg:DI 38 [ D.1920 ]) 0)
(mem:SI (reg/f:SI 41) [0 *v_1(D)+0 S4 A64])

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(plus:SI (reg/f:SI 41)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(plus:SI (reg/f:SI 41)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(plus:SI (reg/f:SI 41)
    (const_int 4 [0x4]))
ret_val false 

legitimize_address:
old: mode: SI
(plus:SI (reg/f:SI 41)
    (const_int 4 [0x4]))
new: mode: SI
(reg:SI 42)

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg:SI 42)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg:SI 42)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 42)
ret_val true 

mov SI:
(subreg:SI (reg:DI 38 [ D.1920 ]) 4)
(mem:SI (reg/f:SI 42) [0 *v_1(D)+4 S4 A32])

mov SI:
(subreg:SI (reg:DI 43) 0)
(const_int 1 [0x1])

mov SI:
(subreg:SI (reg:DI 43) 4)
(const_int 0 [0])

mov SI:
(reg:SI 45)
(const_int 1 [0x1])

mov SI:
(reg:SI 45)
(const_int 0 [0])

mov SI:
(subreg:SI (reg:DI 44) 4)
(reg:SI 46)

mov SI:
(subreg:SI (reg:DI 39 [ D.1921 ]) 0)
(subreg:SI (reg:DI 44) 0)

mov SI:
(subreg:SI (reg:DI 39 [ D.1921 ]) 4)
(subreg:SI (reg:DI 44) 4)

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(mem/f/c/i:SI (reg/f:SI 33 virtual-stack-vars) [0 v+0 S4 A32])
ret_val false 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(mem/f/c/i:SI (reg/f:SI 33 virtual-stack-vars) [0 v+0 S4 A32])
ret_val false 

legitimize_address:
old: mode: SI
(mem/f/c/i:SI (reg/f:SI 33 virtual-stack-vars) [0 v+0 S4 A32])
new: mode: SI
(mem/f/c/i:SI (reg/f:SI 33 virtual-stack-vars) [0 v+0 S4 A32])

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

mov SI:
(reg:SI 47)
(mem/f/c/i:SI (reg/f:SI 33 virtual-stack-vars) [0 v+0 S4 A32])

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 47)
ret_val true 

menmic_legitimate_address_p
mode: (DI)    : 
address: 
(reg/f:SI 47)
ret_val true 

menmic_legitimate_address_p
mode: (DI)    : 
address: 
(reg/f:SI 47)
ret_val true 

menmic_legitimate_address_p
mode: (DI)    : 
address: 
(reg/f:SI 47)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 47)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 47)
ret_val true 

mov SI:
(mem:SI (reg/f:SI 47) [0 *v_1(D)+0 S4 A64])
(subreg:SI (reg:DI 39 [ D.1921 ]) 0)

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(plus:SI (reg/f:SI 47)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(plus:SI (reg/f:SI 47)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(plus:SI (reg/f:SI 47)
    (const_int 4 [0x4]))
ret_val false 

legitimize_address:
old: mode: SI
(plus:SI (reg/f:SI 47)
    (const_int 4 [0x4]))
new: mode: SI
(reg:SI 48)

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg:SI 48)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg:SI 48)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 48)
ret_val true 

mov SI:
(mem:SI (reg/f:SI 48) [0 *v_1(D)+4 S4 A32])
(subreg:SI (reg:DI 39 [ D.1921 ]) 4)

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 41)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 42)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 47)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 48)
ret_val true 

menmic_incoming_return_addr_rtx
menmic_incoming_return_addr_rtx
menmic_can_eliminate
menmic_can_eliminate
menmic_can_eliminate
menmic_can_eliminate
menmic_can_eliminate
menmic_can_eliminate
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 16 
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 16 
menmic_initial_elimination_offset
menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 41)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 41)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 42)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 42)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 47)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 47)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 48)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 48)
ret_val true 

menmic_can_eliminate
menmic_can_eliminate
menmic_can_eliminate
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 52 
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 52 
menmic_initial_elimination_offset
menmic_legitimate_address_p
mode: (DI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (DI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 12 [0xc]))
ret_val false 

menmic_legitimate_address_p
mode: (DI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 20 [0x14]))
ret_val false 

menmic_legitimate_address_p
mode: (DI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 28 [0x1c]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 28 [0x1c]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 28 [0x1c]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 4 [0x4]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 20 [0x14]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 20 [0x14]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 28 [0x1c]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 28 [0x1c]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 4 [0x4]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 32 [0x20]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 32 [0x20]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 8 [0x8]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 8 [0x8]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 24 [0x18]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 24 [0x18]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 32 [0x20]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 32 [0x20]))
ret_val false 

menmic_initial_elimination_offset
menmic_regs_to_save
offset = 52 
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 52 
menmic_initial_elimination_offset
menmic_can_eliminate
menmic_can_eliminate
menmic_frame_pointer_required_p
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 60 
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 60 
menmic_initial_elimination_offset
menmic_legitimate_address_p
mode: (DI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (DI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 12 [0xc]))
ret_val false 

menmic_legitimate_address_p
mode: (DI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 20 [0x14]))
ret_val false 

menmic_legitimate_address_p
mode: (DI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 28 [0x1c]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 28 [0x1c]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 28 [0x1c]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 4 [0x4]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 20 [0x14]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 20 [0x14]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 28 [0x1c]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 28 [0x1c]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 4 [0x4]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 32 [0x20]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 32 [0x20]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 8 [0x8]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 8 [0x8]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 24 [0x18]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 24 [0x18]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 32 [0x20]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 32 [0x20]))
ret_val false 

menmic_initial_elimination_offset
menmic_regs_to_save
offset = 60 
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 60 
menmic_initial_elimination_offset
menmic_can_eliminate
menmic_can_eliminate
menmic_frame_pointer_required_p
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 60 
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 60 
menmic_initial_elimination_offset
menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 28 [0x1c]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 28 [0x1c]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 4 [0x4]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 20 [0x14]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 20 [0x14]))
ret_val false 

mov SI:
(reg:SI 8 r8)
(const_int 28 [0x1c])

mov SI:
(reg:SI 8 r8)
(const_int 4 [0x4])

mov SI:
(reg:SI 8 r8)
(const_int 20 [0x14])

mov SI:
(reg:SI 9 r9)
(mem/c:SI (plus:SI (reg/f:SI 18 r18)
        (const_int 4 [0x4])) [0 %sfp+4 S4 A32])
after:
(reg:SI 9 r9)
(mem:SI (reg/f:SI 18 r18) [0 S4 A32])

mov SI:
(mem/c:SI (plus:SI (reg/f:SI 18 r18)
        (const_int 28 [0x1c])) [0 %sfp+28 S4 A32])
(reg:SI 9 r9)
after:
(mem:SI (reg/f:SI 18 r18) [0 S4 A32])
(reg:SI 9 r9)

mov SI:
(reg:SI 8 r8)
(mem/c:SI (plus:SI (reg/f:SI 18 r18)
        (const_int 20 [0x14])) [0 %sfp+20 S4 A32])
after:
(reg:SI 8 r8)
(mem:SI (reg/f:SI 18 r18) [0 S4 A32])

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 28 [0x1c]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 28 [0x1c]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 4 [0x4]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 4 [0x4]))
ret_val false 

mov SI:
(reg:SI 9 r9)
(const_int 28 [0x1c])

mov SI:
(reg:SI 9 r9)
(const_int 4 [0x4])

mov SI:
(reg:SI 10 r10)
(mem/c:SI (plus:SI (reg/f:SI 18 r18)
        (const_int 28 [0x1c])) [0 %sfp+28 S4 A32])
after:
(reg:SI 10 r10)
(mem:SI (reg/f:SI 18 r18) [0 S4 A32])

mov SI:
(reg:SI 9 r9)
(mem/c:SI (plus:SI (reg/f:SI 18 r18)
        (const_int 4 [0x4])) [0 %sfp+4 S4 A32])
after:
(reg:SI 9 r9)
(mem:SI (reg/f:SI 18 r18) [0 S4 A32])

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 32 [0x20]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 32 [0x20]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 8 [0x8]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 8 [0x8]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 24 [0x18]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 24 [0x18]))
ret_val false 

mov SI:
(reg:SI 10 r10)
(const_int 32 [0x20])

mov SI:
(reg:SI 10 r10)
(const_int 8 [0x8])

mov SI:
(reg:SI 10 r10)
(const_int 24 [0x18])

mov SI:
(reg:SI 9 r9)
(mem/c:SI (plus:SI (reg/f:SI 18 r18)
        (const_int 8 [0x8])) [0 %sfp+8 S4 A32])
after:
(reg:SI 9 r9)
(mem:SI (reg/f:SI 18 r18) [0 S4 A32])

mov SI:
(mem/c:SI (plus:SI (reg/f:SI 18 r18)
        (const_int 32 [0x20])) [0 %sfp+32 S4 A32])
(reg:SI 9 r9)
after:
(mem:SI (reg/f:SI 18 r18) [0 S4 A32])
(reg:SI 9 r9)

mov SI:
(reg:SI 10 r10)
(mem/c:SI (plus:SI (reg/f:SI 18 r18)
        (const_int 24 [0x18])) [0 %sfp+24 S4 A32])
after:
(reg:SI 10 r10)
(mem:SI (reg/f:SI 18 r18) [0 S4 A32])

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 32 [0x20]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 32 [0x20]))
ret_val false 

mov SI:
(reg:SI 9 r9)
(const_int 32 [0x20])

mov SI:
(reg:SI 9 r9)
(mem/c:SI (plus:SI (reg/f:SI 18 r18)
        (const_int 32 [0x20])) [0 %sfp+32 S4 A32])
after:
(reg:SI 9 r9)
(mem:SI (reg/f:SI 18 r18) [0 S4 A32])

menmic_initial_elimination_offset
menmic_regs_to_save
offset = 60 
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 60 
menmic_initial_elimination_offset
menmic_legitimate_address_p
mode: (SI)  (reload_completed)  (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 4 [0x4]))
ret_val false 


fail.c: In function 'fail':
fail.c:4:1: internal compiler error: in change_address_1, at emit-rtl.c:1933
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Does a target system must support indexing?
  2012-06-01 14:16 Setjem Setjem
@ 2012-06-01 14:56 ` Ian Lance Taylor
  0 siblings, 0 replies; 5+ messages in thread
From: Ian Lance Taylor @ 2012-06-01 14:56 UTC (permalink / raw)
  To: Setjem Setjem; +Cc: Georg-Johann Lay, gcc-help

"Setjem Setjem" <Setjem@gmx.de> writes:

>> Look at TARGET_LEGITIMIZE_ADDRESS and at expand time you can
>> force the [reg+const] addresses into a register.
>
> Thank you very much,
>
> Let me get this right that expand time is the time before reload is in progress? 
>
> Now i have implemeted TARGET_LEGITIMIZE_ADDRESS:

But have you done the "at expand time" part?  That means that you need
to write movMODE as a define_expand that stuffs the address into a
register.

Ian

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Does a target system must support indexing?
@ 2012-06-01 14:16 Setjem Setjem
  2012-06-01 14:56 ` Ian Lance Taylor
  0 siblings, 1 reply; 5+ messages in thread
From: Setjem Setjem @ 2012-06-01 14:16 UTC (permalink / raw)
  To: Georg-Johann Lay; +Cc: gcc-help

[-- Attachment #1: Type: text/plain, Size: 3335 bytes --]

-------- Original-Nachricht --------
> Datum: Fri, 01 Jun 2012 14:38:02 +0200
> Von: Georg-Johann Lay <avr@gjlay.de>
> An: Setjem Setjem <Setjem@gmx.de>
> CC: gcc-help@gcc.gnu.org
> Betreff: Re: Does a target system must support indexing?

> Setjem Setjem wrote:
> > Does a target system must support indexing? I have tried to disable 
> > indexing by setting the following macros:
> > 
> > #define INDEX_REG_CLASS             NO_REGS
> > #define REGNO_OK_FOR_INDEX_P(num)   0
> > 
> > and rejecting all addresses with side effects in the target 
> > hook TARGET_LEGITIMATE_ADDRESS_P.
> > 
> > But it seems that the compiler still trying to use indexes.
> > For example the compiler fails at:
> > 
> > C-code:
> > 
> >   void fail(long long *v)
> >   {
> > 	*v += 1;
> >   }
> > 
> > Failure:
> > 
> >   fail.c: In function 'fail':
> >   fail.c:4:1: internal compiler error: in change_address_1, at
> emit-rtl.c:1933
> >   Please submit a full bug report,
> >   with preprocessed source if appropriate.
> >   See <http://gcc.gnu.org/bugs.html> for instructions.
> > 
> > Last debug info from TARGET_LEGITIMATE_ADDRESS_P:
> > 
> >   legitimate_address_p:
> >     mode: (SI)  (reload_completed)  (reg_renumber):
> >                 (r18 ---> r18)
> >     address:    (plus:SI (reg/f:SI 18 r18)
> >                          (const_int 4 [0x4]))
> >   return false
> 
> This is not indexed addressing.  Indexed addressing would be
> [reg+reg] or [reg + const*reg]

Does that mean in general it is possible to describe a backend without indexed addressing?

> 
> > I am not sure if it fails because of the index or i made 
> > some mistakes in describing the handling of long long values. 
> > But still. Why the compiler tried to use indexing?
> 
> Look at TARGET_LEGITIMIZE_ADDRESS and at expand time you can
> force the [reg+const] addresses into a register.

Thank you very much,

Let me get this right that expand time is the time before reload is in progress? 

Now i have implemeted TARGET_LEGITIMIZE_ADDRESS:

rtx menmic_legitimize_address(rtx x, rtx oldx, enum machine_mode mode)
{
   x = oldx;
#ifdef TARGET_ALL_DEBUG
   fprintf( stderr, "legitimize_address:\nold\tmode: %s\n",   
            GET_MODE_NAME(mode));
   debug_rtx(oldx);
#endif
   if (GET_CODE (oldx) == PLUS && REG_P (XEXP (oldx,0)))
   {
      if (REG_P (XEXP (oldx,1)))
         x = force_reg(GET_MODE (oldx), oldx);
      else if (GET_CODE (XEXP (oldx, 1)) == CONST_INT)
      {
         x = force_reg(GET_MODE (oldx), oldx);
      }
   }
#ifdef TARGET_ALL_DEBUG
   fprintf(stderr, "\nnew\tmode: %s\n", GET_MODE_NAME(mode));
   debug_rtx(x);
#endif
   return x;
}

Unfortunately, the problem still appears and the failure is the same.
It seems that TARGET_LEGITIMIZE_ADDRESS is only used before reload phase and the problem appears while reload is in progress.

I have attached a file with all debug information, maybe it helps to find the problem.

Best regards,
Andreas

PS:
I thought that the compiler could handle this without TARGET_LEGITIMIZE_ADDRESS, because the gcc internal manual says:

"It is not necessary for this hook to come up with a legitimate address.
The compiler has standard ways of doing so in all cases."
-- 
Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de

[-- Attachment #2: debug.txt --]
[-- Type: text/plain, Size: 28942 bytes --]

menmic_option_override
menmic_asm_init_sections
menmic_legitimate_address_p
mode: (QI)    : 
address: 
(mem:SI (plus:SI (reg:SI 38)
        (const_int 4 [0x4])) [0 S4 A32])
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(mem:SI (symbol_ref:SI ("foo")) [0 S4 A32])
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 0 r0))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 1 r1))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 2 r2))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 3 r3))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 4 r4))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 5 r5))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 6 r6))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 7 r7))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 8 r8))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 9 r9))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 10 r10))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 11 r11))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 12 r12))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 13 r13))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 14 r14))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 15 r15))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 16 r16))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 17 r17))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 18 r18))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 19 r19))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 20 r20))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 21 r21))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 22 r22))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 23 r23))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 24 r24))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 25 r25))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 26 r26))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 27 r27))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 28 r28))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 29 r29))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 30 r30))
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (QI)    : 
address: 
(plus:SI (plus:SI (reg:SI 18 r18)
        (reg:SI 31 r31))
    (const_int 4 [0x4]))
ret_val false 

menmic_init_machine_status
menmic_init_machine_status
menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 29 r29)
menmic_regno_ok_for_base_p: return: 29
ret_val false 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 29 r29)
menmic_regno_ok_for_base_p: return: 29
ret_val false 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg:SI 34 virtual-stack-dynamic)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg:SI 34 virtual-stack-dynamic)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg:SI 34 virtual-stack-dynamic)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg:SI 34 virtual-stack-dynamic)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg:SI 34 virtual-stack-dynamic)
ret_val true 

 failmenmic_init_machine_status

Analyzing compilation unit
menmic_init_cumulative_args
menmic_num_arg_regs regnums: 1
menmic_function_arg_advance:
nregs: 3
regno: 21
Performing interprocedural optimizations
 <*free_lang_data> <visibility> <early_local_cleanups> <emutls> <whole-program> <inline>Assembling functions:
 failmenmic_init_cumulative_args
menmic_num_arg_regs regnums: 1
menmic_function_arg
menmic_num_arg_regs regnums: 1
menmic_function_arg_advance:
nregs: 3
regno: 21
menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(mem/f/c/i:SI (reg/f:SI 33 virtual-stack-vars) [0 v+0 S4 A32])
ret_val false 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(mem/f/c/i:SI (reg/f:SI 33 virtual-stack-vars) [0 v+0 S4 A32])
ret_val false 

legitimize_address:
old: mode: SI
(mem/f/c/i:SI (reg/f:SI 33 virtual-stack-vars) [0 v+0 S4 A32])
new: mode: SI
(mem/f/c/i:SI (reg/f:SI 33 virtual-stack-vars) [0 v+0 S4 A32])

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 41)
ret_val true 

menmic_legitimate_address_p
mode: (DI)    : 
address: 
(reg/f:SI 41)
ret_val true 

menmic_legitimate_address_p
mode: (DI)    : 
address: 
(reg/f:SI 41)
ret_val true 

menmic_legitimate_address_p
mode: (DI)    : 
address: 
(reg/f:SI 41)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 41)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 41)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(plus:SI (reg/f:SI 41)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(plus:SI (reg/f:SI 41)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(plus:SI (reg/f:SI 41)
    (const_int 4 [0x4]))
ret_val false 

legitimize_address:
old: mode: SI
(plus:SI (reg/f:SI 41)
    (const_int 4 [0x4]))
new: mode: SI
(reg:SI 42)

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg:SI 42)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg:SI 42)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 42)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(mem/f/c/i:SI (reg/f:SI 33 virtual-stack-vars) [0 v+0 S4 A32])
ret_val false 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(mem/f/c/i:SI (reg/f:SI 33 virtual-stack-vars) [0 v+0 S4 A32])
ret_val false 

legitimize_address:
old: mode: SI
(mem/f/c/i:SI (reg/f:SI 33 virtual-stack-vars) [0 v+0 S4 A32])
new: mode: SI
(mem/f/c/i:SI (reg/f:SI 33 virtual-stack-vars) [0 v+0 S4 A32])

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 47)
ret_val true 

menmic_legitimate_address_p
mode: (DI)    : 
address: 
(reg/f:SI 47)
ret_val true 

menmic_legitimate_address_p
mode: (DI)    : 
address: 
(reg/f:SI 47)
ret_val true 

menmic_legitimate_address_p
mode: (DI)    : 
address: 
(reg/f:SI 47)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 47)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 47)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(plus:SI (reg/f:SI 47)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(plus:SI (reg/f:SI 47)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(plus:SI (reg/f:SI 47)
    (const_int 4 [0x4]))
ret_val false 

legitimize_address:
old: mode: SI
(plus:SI (reg/f:SI 47)
    (const_int 4 [0x4]))
new: mode: SI
(reg:SI 48)

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg:SI 48)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg:SI 48)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 48)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 41)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 42)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 33 virtual-stack-vars)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 47)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    : 
address: 
(reg/f:SI 48)
ret_val true 

menmic_incoming_return_addr_rtx
menmic_incoming_return_addr_rtx
menmic_can_eliminate
menmic_can_eliminate
menmic_can_eliminate
menmic_can_eliminate
menmic_can_eliminate
menmic_can_eliminate
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 16 
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 16 
menmic_initial_elimination_offset
menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 41)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 41)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 42)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 42)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 18 r18)
menmic_regno_ok_for_base_p: return: 18
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 47)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 47)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 48)
ret_val true 

menmic_legitimate_address_p
mode: (SI)    (reg_renumber): 
address: 
(reg/f:SI 48)
ret_val true 

menmic_can_eliminate
menmic_can_eliminate
menmic_can_eliminate
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 52 
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 52 
menmic_initial_elimination_offset
menmic_legitimate_address_p
mode: (DI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (DI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 12 [0xc]))
ret_val false 

menmic_legitimate_address_p
mode: (DI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 20 [0x14]))
ret_val false 

menmic_legitimate_address_p
mode: (DI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 28 [0x1c]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 28 [0x1c]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 28 [0x1c]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 4 [0x4]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 20 [0x14]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 20 [0x14]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 28 [0x1c]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 28 [0x1c]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 4 [0x4]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 32 [0x20]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 32 [0x20]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 8 [0x8]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 8 [0x8]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 24 [0x18]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 24 [0x18]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 32 [0x20]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 32 [0x20]))
ret_val false 

menmic_initial_elimination_offset
menmic_regs_to_save
offset = 52 
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 52 
menmic_initial_elimination_offset
menmic_can_eliminate
menmic_can_eliminate
menmic_frame_pointer_required_p
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 60 
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 60 
menmic_initial_elimination_offset
menmic_legitimate_address_p
mode: (DI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (DI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 12 [0xc]))
ret_val false 

menmic_legitimate_address_p
mode: (DI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 20 [0x14]))
ret_val false 

menmic_legitimate_address_p
mode: (DI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 28 [0x1c]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 28 [0x1c]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 28 [0x1c]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 4 [0x4]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 20 [0x14]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 20 [0x14]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 28 [0x1c]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 28 [0x1c]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 4 [0x4]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 32 [0x20]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 32 [0x20]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 8 [0x8]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 8 [0x8]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 24 [0x18]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 24 [0x18]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 32 [0x20]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 32 [0x20]))
ret_val false 

menmic_initial_elimination_offset
menmic_regs_to_save
offset = 60 
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 60 
menmic_initial_elimination_offset
menmic_can_eliminate
menmic_can_eliminate
menmic_frame_pointer_required_p
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 60 
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 60 
menmic_initial_elimination_offset
menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 28 [0x1c]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 28 [0x1c]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 4 [0x4]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 20 [0x14]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 20 [0x14]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 28 [0x1c]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 28 [0x1c]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 4 [0x4]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 4 [0x4]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 32 [0x20]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 32 [0x20]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 8 [0x8]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 8 [0x8]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 24 [0x18]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 24 [0x18]))
ret_val false 

menmic_legitimate_address_p
mode: (SI) (strict)  (reload_in_progress) (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 32 [0x20]))
ret_val false 

menmic_regno_ok_for_base_p: return: 18
menmic_legitimate_address_p
mode: (SI)   (reload_in_progress) (reg_renumber): (r49 ---> r0)
address: 
(plus:SI (reg:SI 49)
    (const_int 32 [0x20]))
ret_val false 

menmic_initial_elimination_offset
menmic_regs_to_save
offset = 60 
menmic_initial_elimination_offset
menmic_regs_to_save
offset = 60 
menmic_initial_elimination_offset
menmic_legitimate_address_p
mode: (SI)  (reload_completed)  (reg_renumber): (r18 ---> r18)
address: 
(plus:SI (reg/f:SI 18 r18)
    (const_int 4 [0x4]))
ret_val false 


fail.c: In function 'fail':
fail.c:4:1: internal compiler error: in change_address_1, at emit-rtl.c:1933
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-06-04  7:37 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-01 12:00 Does a target system must support indexing? Setjem Setjem
2012-06-01 12:38 ` Georg-Johann Lay
2012-06-01 14:16 Setjem Setjem
2012-06-01 14:56 ` Ian Lance Taylor
2012-06-04  7:37 Setjem Setjem

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).