Skip to content

We lose the dso_local attribute on globals and functions #1301

@haved

Description

@haved

When the input LLVM IR has dso_local (which clang seemingly puts on all non-static functions), the result after running jlm-opt does not have the dso_local.

The LLVM LangRef says that the lack of dso_local implies dso_preemptable, which is a less strict guarantee.
The compiler must assume that the function body can be replaced at runtime.

In my testing this did not affect how function calls end up looking in the final object file, but I'm writing it down here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions