Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce loongarch32 target triple and __loongarch_ilp32 #1

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

jiegec
Copy link

@jiegec jiegec commented Aug 8, 2023

Introduce loongarch32 target triples with the same format as loongarch64, but with ilp32[d|f|s] abi. __loongarch_ilp32 macro is added.

@zhuchen1911
Copy link
Collaborator

Thank you for your comments, we are still discussing the specification of LoongArch32.

@jiegec jiegec force-pushed the master-1 branch 4 times, most recently from 1751fd0 to 7da5e03 Compare December 16, 2024 06:07
Introduce loongarch32 target triples with the same format as loongarch64, but with ilp32[d|f|s] abi. `__loongarch_ilp32` macro is added.
@zhuchen1911
Copy link
Collaborator

Thank you for your comment. The related content of Loongarch32 is still under internal evaluation and will be added at the appropriate time in the future.

@xen0n
Copy link

xen0n commented Dec 17, 2024

For the record: I personally would not in general object to Loongson's desire to "polish up" things before declaring them official, but that does NOT mean I would accept postponing things purely according to internal agenda.

Sure, ABI stability and support guarantee are extremely important, but I think it's not implying blocking of progress. For example, we could add a compilation flag like -mloongarch-unstable-feature=20241217 to enable the user:

  • to explicitly opt-in to unstability and corresponding maintenance,
  • to signify the exact behavior they're expecting, even in the face of potential breaking changes in the future,

while still allowing the ABI to freely evolve before stability can be declared.

We can find examples of this approach in the Rust ecosystem:

  • unstable features are only available in the nightly channel;
  • unstable compiler features are specified with -Z xxx instead of -C xxx, and only available with nightly compilers;
  • the gcc-rs frontend is only usable with a rather descriptive -frust-incomplete-and-experimental-compiler-do-not-use flag.

While it can seem very annoying to some, this approach objectively allows stability and free evolution of experimental features at the same time.

@xen0n
Copy link

xen0n commented Dec 17, 2024

And in my opinion, LA32R hardware is still in production and active use, both today and many years to come, and every year newcomer students are going to learn and make LA32R cores for Loongson Cup. Being able to use upstream resources is a huge productivity boost to the LA32R community, and according to loongson-community/discussions#65 it's already ~2 years since I first advocated for upstreaming LA32R support. I don't think it's wise to delay any longer, it will not benefit anyone.

Copy link

@chenhuacai chenhuacai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This work is delayed for too long time, I think it is time to let LoongArch32 be upstream now, and the changes look good to me. Thanks.

@zhuchen1911
Copy link
Collaborator

Modifications to this document are subject to department and company review, and I do not have the authority to approve this merge request.

@xen0n
Copy link

xen0n commented Dec 23, 2024

Modifications to this document are subject to department and company review, and I do not have the authority to approve this merge request.

Then maybe just leave it open? According to community standards closing an issue or a PR basically means "it was rejected by us", but based on your own words, you don't have the authority to do that either.

@FlyGoat
Copy link

FlyGoat commented Dec 23, 2024

+1 for fast forwarding this specification update.

I’m currently working on LA32/32R stuff and had been using LLVM toolchain’s “experimental” ilp32s support for a while. I’d love to see the specification being ratified.

@loongson loongson locked and limited conversation to collaborators Dec 23, 2024
@zhuchen1911
Copy link
Collaborator

After la-toolchain-conventions and la-eabi-specs complete the related content of LoongArch32, there will be a basis for modifying this convention. Because the relevant content of this agreement is quoted from the above specifications.

@zhuchen1911 zhuchen1911 reopened this Dec 24, 2024
@loongson loongson unlocked this conversation Dec 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants