public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/104484] New: -freorder-block-and-partition not splitting into sections with __builin_expect()
@ 2022-02-10 11:22 avi at scylladb dot com
  2022-02-10 12:01 ` [Bug rtl-optimization/104484] " pinskia at gcc dot gnu.org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: avi at scylladb dot com @ 2022-02-10 11:22 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104484

            Bug ID: 104484
           Summary: -freorder-block-and-partition not splitting into
                    sections with __builin_expect()
           Product: gcc
           Version: 11.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: avi at scylladb dot com
  Target Milestone: ---

I expected code guarded by __builtin_expect() to be pushed into .text.cold, but
that's not happening:

int f1, f2;

inline int is() {
    return __builtin_expect(f1, 0) && f2;
}

void heavy() {
    extern void very_heavy();
    if (is()) {
        very_heavy();
    }
}


void fun();

void light() {
    fun();
    heavy();
    fun();
}


with -O3 -freorder-blocks-and-partition:


light:
.LFB2:
        .cfi_startproc
        subq    $8, %rsp
        .cfi_def_cfa_offset 16
        xorl    %eax, %eax
        call    fun
        movl    f1(%rip), %edx
        testl   %edx, %edx
        jne     .L8        .p2align 4,,10
        .p2align 3
.L8:
        .cfi_restore_state
        movl    f2(%rip), %eax
        testl   %eax, %eax
        je      .L6
        xorl    %eax, %eax
        call    very_heavy
        jmp     .L6
        .cfi_endproc

.L6:
        xorl    %eax, %eax
        addq    $8, %rsp
        .cfi_remember_state
        .cfi_def_cfa_offset 8
        jmp     fun


I expected .L8 to be in another section, but it isn't.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-02-12 13:22 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-10 11:22 [Bug tree-optimization/104484] New: -freorder-block-and-partition not splitting into sections with __builin_expect() avi at scylladb dot com
2022-02-10 12:01 ` [Bug rtl-optimization/104484] " pinskia at gcc dot gnu.org
2022-02-10 13:02 ` avi at scylladb dot com
2022-02-10 22:19 ` pinskia at gcc dot gnu.org
2022-02-12 13:22 ` avi at scylladb dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).