Skip to content
New issue

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

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

Already on GitHub? # to your account

WIP: Rebase to Rust master (LLVM 6.0) #91

Closed
wants to merge 6 commits into from

Conversation

dylanmckay
Copy link
Member

Also brings in LLVM 6.0 support.

Fixes #90.

@shepmaster
Copy link
Member

To be clear, I don't think this will want to be an actual PR, right? We'll just replace our avr-support branch?

@shepmaster
Copy link
Member

Comparing this branch to my local attempt at a rebase (which I never started to compile), everything looks reasonable.

We probably don't want to use github.com/dylanmckay/llvm.git, I'm assuming? Is there a reason to immediately re-fork LLVM at this point? I guess we do already have one PR to improve LLVM that isn't in LLVM master / Rust's fork...

@dylanmckay
Copy link
Member Author

To be clear, I don't think this will want to be an actual PR, right? We'll just replace our avr-support branch?

Yes, I've mostly raised this PR to make it accessible.

We probably don't want to use github.com/dylanmckay/llvm.git, I'm assuming? Is there a reason to immediately re-fork LLVM at this point? I guess we do already have one PR to improve LLVM that isn't in LLVM master / Rust's fork...

I did it on my branch to cherry-pick the fix for #57. As this was only merged yesterday, I suspect we will need to maintain a fork from day 1 in order to do this.

Once this PR is good to go, I will fix up the LLVM submodule to point to the avr-rust org.

@dylanmckay
Copy link
Member Author

Also, I've used the compiler to try and build stock core.

You can see the code on my libcore-6.0-experiment branch.

There is a bug that triggers an assertion error because the post-register allocation pseudo instruction pass attempts expand a COPY from a DREGS to a GPR8. This doesn't make much sense because they are different sizes.

@dylanmckay
Copy link
Member Author

Also, Rust 6.0 adds a new target specification JSON field

It is target-c-int-width" 16 from memory. We will need to add this to all of our projects, and likely also rebuild the libcore repository and update all Xargo.toml references to it.

@dylanmckay
Copy link
Member Author

There is a bug that triggers an assertion error because the post-register allocation pseudo instruction pass attempts expand a COPY from a DREGS to a GPR8. This doesn't make much sense because they are different sizes.

  • myself

I have raised #92 to track this. I suspect it won't affect projects like Arduino, blink, or CHIP-8 because it's choking on a particularly hairy piece of floating point code.

@dylanmckay dylanmckay changed the title WIP: Rebase to Rust master WIP: Rebase to Rust master (LLVM 6.0) Sep 1, 2018
@shepmaster
Copy link
Member

Closing, we skipped all the way to LLVM 8!

@shepmaster shepmaster closed this Nov 3, 2018
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants