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 tree-optimization/33761] non-optimal inlining heuristics pessimizes gzip SPEC score at -O3



------- Comment #21 from ubizjak at gmail dot com  2008-02-06 19:10 -------
(In reply to comment #20)

> Since -fo-f-p adds another free reg, it looks that since inlining increases
> register pressure some unlucky heavy-used variable gets allocated to the stack
> slot.


It is "best_len" (and probably some others, too):

[uros@localhost gzip-1.2.4]$ grep best_len fp.s
        movl    %edx, -68(%ebp) #, best_len
        movl    -68(%ebp), %edx # best_len, best_len.494
        movl    %edx, -68(%ebp) # best_len.494, best_len
        movl    -68(%ebp), %edx # best_len,
        movl    -68(%ebp), %edx # best_len,
        movl    -68(%ebp), %edx # best_len, best_len.494
        cmpl    %esi, %edx      # lookahead, best_len.494
        movl    %edx, -108(%ebp)        # best_len.494, match_length
        movl    -68(%ebp), %edx # best_len, best_len.494
        movl    %edx, -88(%ebp) # prev_length.28, best_len
        movl    -88(%ebp), %edx # best_len, best_len.457
        movl    %edx, -88(%ebp) # best_len.457, best_len
        movl    -88(%ebp), %eax # best_len,
        movl    -88(%ebp), %edx # best_len,
        movl    -88(%ebp), %edx # best_len, best_len.457
        cmpl    %esi, %edx      # lookahead, best_len.457
        movl    %edx, -40(%ebp) # best_len.457, match_length.404
        movl    -88(%ebp), %edx # best_len, best_len.457
        leal    (%ecx,%eax), %edx       #, best_len.457
        cmpl    %edx, -88(%ebp) # best_len.457, best_len
        cmpl    -96(%ebp), %edx # nice_match.34, best_len.457
        leal    (%ecx,%eax), %edx       #, best_len.494
        cmpl    %edx, -68(%ebp) # best_len.494, best_len
        cmpl    -76(%ebp), %edx # nice_match.34, best_len.494

[uros@localhost gzip-1.2.4]$ grep best_len no-fp.s
        movl    %edx, 76(%esp)  #, best_len
        movl    76(%esp), %edx  # best_len,
        movl    76(%esp), %edx  # best_len, best_len.494
        movl    %edx, 76(%esp)  # best_len.494, best_len
        movl    76(%esp), %eax  # best_len,
        movl    76(%esp), %edx  # best_len, best_len.494
        movl    %edx, %ebp      # best_len.494, match_length
        movl    76(%esp), %edx  # best_len, best_len.494
        movl    %edx, %ebp      # prev_length.28, best_len
        movl    %ebp, %edx      # best_len, best_len.457
        movl    %edx, %ebp      # best_len.457, best_len
        movl    %ebp, %edx      # best_len, best_len.457
        cmpl    %esi, %edx      # lookahead, best_len.457
        movl    %ebp, %edx      # best_len, best_len.457
        leal    (%ecx,%eax), %edx       #, best_len.494
        cmpl    %edx, 76(%esp)  # best_len.494, best_len
        cmpl    68(%esp), %edx  # nice_match.34, best_len.494
        leal    (%ecx,%eax), %edx       #, best_len.457
        cmpl    %edx, %ebp      # best_len.457, best_len
        cmpl    52(%esp), %edx  # nice_match.34, best_len.457


-- 


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


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