Unable to remove stall at shed2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I am compiling my test case with my compiler (gcc 4.2.4) for a 16 bit
processor, with the below command:
./cc1.exe  -O2 -frename-registers -fschedule-insns  -fdump-rtl-all
/cygdrive/d/test.c 
In the assembly of main stalls are getting generated :
	mov r3, (ar6,-52) //write to r3
	mov (ar0)+, r3 //use r3
	mov r2, (ar6,-48)
	mov (ar0)+, r2
	mov r1, (ar6,-44)
	mov (ar0)+, r1

In my md file I have defined pipeline description indicating stall between
two instructions.	
On analyzing the output of sched1 found that there are no stalls gets
generated

 	40 r73=[ar6-0x34]                   
	36 [r70++]=r71                     
	 43 r74=[ar6-0x30]                    
	 39 [r70++]=r72                       
	 50  r75=[ar6-0x2c]                    
	42 [r70++]=r73                       
	
 

In the output of .lreg file  instruction 205 is hown which is not present in
shed1 output

(insn 205 39 42 2 (set (reg:SI 73 [ gameobjs+8 ])
        (mem/s:SI (plus:SI (reg/f:SI 22 ar6)
                (const_int -52 [0xffffffcc])) [4 gameobjs+8 S4 A32])) (nil)
    (expr_list:REG_EQUIV (mem/s:SI (plus:SI (reg/f:SI 22 ar6)
                (const_int -52 [0xffffffcc])) [4 gameobjs+8 S4 A32])
        (nil)))

(insn 42 205 204 2 (set (mem:SI (post_inc:SI (reg/f:SI 70)) [0 S4 A32])
        (reg:SI 73 [ gameobjs+8 ])) (nil)
    (expr_list:REG_DEAD (reg:SI 73 [ gameobjs+8 ])
        (expr_list:REG_INC (reg/f:SI 70)
            (nil))))

I suspect that this instruction 205 is getting generated due to spilling but
I am not sure
This stall is not getting removed in sched2 also  
r0=[ar6-0x34]                     
[ar0++]=r0                        
 ar2=[ar6-0x30]                    
[ar0++]=ar2                       
 ar1=[ar6-0x2c]                    
 [ar0++]=ar1                       

Please guide how to remove stall in this case 

-- 
View this message in context: http://old.nabble.com/Unable-to-remove-stall-at-shed2-tp34271197p34271197.html
Sent from the gcc - Help mailing list archive at Nabble.com.



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux