Skip to content

since Clang 17 -ffast-math prevents tail call optimization for math.h functions #111950

@namniav

Description

@namniav

https://godbolt.org/z/Ea5ccfebr

#include <math.h>

float foo(float x) {
    return expf(x);
}

Clang 17.0.1 -O3 -ffast-math:

foo:
        push    rax
        call    expf@PLT
        pop     rax
        ret

Clang 17.0.1 -O3:

foo:
        jmp     expf@PLT

Clang 16.0.0 -O3 -ffast-math:

foo:
        jmp     expf@PLT

GCC 14.2 -O3 -ffast-math:

foo:
        jmp     expf

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions