------- Comment #2 from jakub at gcc dot gnu dot org  2008-11-17 09:21 -------
Web pass changes:
(insn 14 13 16 2 920929-1.c:5 (parallel [
            (set (reg:SI 70)
                (unspec_volatile:SI [
                        (reg:SI 70)
                    ] 1))
            (set (reg/f:SI 7 sp)
                (minus:SI (reg/f:SI 7 sp)
                    (reg:SI 70)))
            (clobber (reg:CC 17 flags))
        ]) 672 {allocate_stack_worker_32} (nil))
into:
(insn 14 13 16 2 920929-1.c:5 (parallel [
            (set (reg:SI 80)
                (unspec_volatile:SI [
                        (reg:SI 70)
                    ] 1))
            (set (reg/f:SI 7 sp)
                (minus:SI (reg/f:SI 7 sp)
                    (reg:SI 70)))
            (clobber (reg:CC 17 flags))
        ]) 672 {allocate_stack_worker_32} (nil))
Is this correct (given that the pattern uses match_dup)?  Also, is there a
reason why the allocate_stack_worker_{32,64} patterns use match_dup for between
the output register and input register?  I'd say using
(match_operand:SI 0 "register_operand" "=a") for the output reg and
(match_operand:SI 1 "register_operand" "a") for the input reg (match_dup 1)ed
into the sp adjustment would give the RA more freedom.


-- 


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

Reply via email to