This is the mail archive of the gcc-bugs@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]
Other format: [Raw text]

[Bug rtl-optimization/23523] code size regression on x86


------- Additional Comments From dann at godzilla dot ics dot uci dot edu  2005-08-25 05:43 -------
The issue is the peephole2 pass in 4.1. Before it the insn looks like:

(insn:HI 36 34 37 0 (set (mem/i:SI (symbol_ref:SI ("waiting_for_initial_map")
[flags 0x40] <var_decl 0xb7b71898 waiting_for_initial_map>) [7
waiting_for_initial_map+0 S4 A32])
        (const_int 0 [0x0])) 34 {*movsi_1} (nil)
    (nil))

and after: 

(insn 58 34 59 0 (parallel [
            (set (reg:SI 2 cx)
                (const_int 0 [0x0]))
            (clobber (reg:CC 17 flags))
        ]) -1 (nil)
    (expr_list:REG_UNUSED (reg:CC 17 flags)
        (nil)))

(insn 59 58 37 0 (set (mem/i:SI (symbol_ref:SI ("waiting_for_initial_map")
[flags 0x40] <var_decl 0xb7b71898 waiting_for_initial_map>) [7
waiting_for_initial_map+0 S4 A32])
        (reg:SI 2 cx)) -1 (nil)
    (expr_list:REG_DEAD (reg:SI 2 cx)
        (nil)))

4.0 uses "ax" instead of "cx". %eax is free at that point, so it is strange that 
it's not used in 4.1


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
  BugsThisDependsOn|18427                       |
OtherBugsDependingO|                            |23153
              nThis|                            |
           Keywords|ra                          |


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


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