Hi, I am analyzing some performance issue and see that the push instruction in function prologue taking long CPU time. I noticed with 4.4.3 compiler I used to see mov instruction where as in 4.8.3 compiler I am seeing push instructions in prologue. Can anyone please let me know what decides which instructions to use? I see below prologue RTL in 4.4.3, (insn/f 98 12 99 2 stphjin.c:913 (set (mem:DI (plus:DI (reg/f:DI 7 sp) (const_int -48 [0xffffffffffffffd0])) [0 S8 A8]) (reg:DI 3 bx)) -1 (nil)) (insn/f 99 98 100 2 stphjin.c:913 (set (mem:DI (plus:DI (reg/f:DI 7 sp) (const_int -40 [0xffffffffffffffd8])) [0 S8 A8]) (reg:DI 6 bp)) -1 (nil)) (insn/f 100 99 101 2 stphjin.c:913 (set (mem:DI (plus:DI (reg/f:DI 7 sp) (const_int -32 [0xffffffffffffffe0])) [0 S8 A8]) (reg:DI 41 r12)) -1 (nil)) (insn/f 101 100 102 2 stphjin.c:913 (set (mem:DI (plus:DI (reg/f:DI 7 sp) (const_int -24 [0xffffffffffffffe8])) [0 S8 A8]) (reg:DI 42 r13)) -1 (nil)) (insn/f 102 101 103 2 stphjin.c:913 (set (mem:DI (plus:DI (reg/f:DI 7 sp) (const_int -16 [0xfffffffffffffff0])) [0 S8 A8]) (reg:DI 43 r14)) -1 (nil)) (insn/f 103 102 104 2 stphjin.c:913 (set (mem:DI (plus:DI (reg/f:DI 7 sp) (const_int -8 [0xfffffffffffffff8])) [0 S8 A8]) (reg:DI 44 r15)) -1 (nil)) (insn/f 104 103 105 2 stphjin.c:913 (parallel [ (set (reg/f:DI 7 sp) (plus:DI (reg/f:DI 7 sp) (const_int -56 [0xffffffffffffffc8]))) (clobber (reg:CC 17 flags)) (clobber (mem:BLK (scratch) [0 A8])) ]) -1 (nil)) Where as in 4.8.3 the prologue RTL is as below (note 12 1 101 2 [bb 2] NOTE_INSN_BASIC_BLOCK) (insn/f 101 12 102 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) (reg:DI 44 r15)) stphjin.c:1039 -1 (nil)) (insn/f 102 101 103 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) (reg:DI 43 r14)) stphjin.c:1039 -1 (nil)) (insn/f 103 102 104 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) (reg:DI 42 r13)) stphjin.c:1039 -1 (nil)) (insn/f 104 103 105 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) (reg:DI 41 r12)) stphjin.c:1039 -1 (nil)) (insn/f 105 104 106 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) (reg:DI 6 bp)) stphjin.c:1039 -1 (nil)) (insn/f 106 105 107 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) (reg:DI 3 bx)) stphjin.c:1039 -1 (nil)) (insn/f 107 106 108 2 (parallel [ (set (reg/f:DI 7 sp) (plus:DI (reg/f:DI 7 sp) (const_int -24 [0xffffffffffffffe8]))) (clobber (reg:CC 17 flags)) (clobber (mem:BLK (scratch) [0 A8])) ]) stphjin.c:1039 -1 (expr_list:REG_CFA_ADJUST_CFA (set (reg/f:DI 7 sp) (plus:DI (reg/f:DI 7 sp) (const_int -24 [0xffffffffffffffe8]))) (nil))) (note 108 107 2 2 NOTE_INSN_PROLOGUE_END) Thanks and Best Regards, C Jaiprakash