cfallin opened Issue #1657:
Right now, we do not have a notion of "code model", i.e., a set of definitions for ways in which external symbols are referenced. The code model affects which types of relocations we emit, and which address-generation strategies we use: for example, going through a global offset table (GOT) vs. embedding addresses directly, or using PC-relative addressing modes vs. not, or using instructions with differently-sized displacement limits. The closest concept that we have seems to be the
colocated
flag on external function references.Ideally, we would like to add support for this as a global compiler flag so that it can influence codegen.
This came up in #1570; non-x86 architectures (such as AArch64) will need it more urgently as the displacement limits are often lower (e.g., on AArch64, +/- 128MB for calls without going through some sort of indirection or veneer).
bnjbvr labeled Issue #1657:
Right now, we do not have a notion of "code model", i.e., a set of definitions for ways in which external symbols are referenced. The code model affects which types of relocations we emit, and which address-generation strategies we use: for example, going through a global offset table (GOT) vs. embedding addresses directly, or using PC-relative addressing modes vs. not, or using instructions with differently-sized displacement limits. The closest concept that we have seems to be the
colocated
flag on external function references.Ideally, we would like to add support for this as a global compiler flag so that it can influence codegen.
This came up in #1570; non-x86 architectures (such as AArch64) will need it more urgently as the displacement limits are often lower (e.g., on AArch64, +/- 128MB for calls without going through some sort of indirection or veneer).
github-actions[bot] commented on Issue #1657:
Subscribe to Label Action
cc @bnjbvr
<details>
This issue or pull request has been labeled: "cranelift"Thus the following users have been cc'd because of the following labels:
- bnjbvr: cranelift
To subscribe or unsubscribe from this label, edit the <code>.github/subscribe-to-label.json</code> configuration file.
Learn more.
</details>
Last updated: Dec 23 2024 at 13:07 UTC