Tim Northover
2014-Mar-28 22:06 UTC
[LLVMdev] Contributing the Apple ARM64 compiler backend
> Are these two backends ABI compatible?They should be, where there's overlap. AArch64 doesn't have any MachO support at the moment. ARM64 does have ELF support (obviously with less testing than AArch64's). Any ABI discrepancy would be considered a bug.> If I have a toolchain setup for the existing aarch64-linux-gnu triple, could > I try the new backend and still have clang find the linker and other object > files in the lib/gcc directories?I believe so. You *should* be able to take any command-line you now have with "--target aarch64-X-Y-Z", replace it with "--target arm64-X-Y-Z" and it will just work. Once the merge really gets started, that's a property everyone wants to make sure is preserved: no regressions with existing commands for trunk, and the final backend should be a drop-in replacement for both iOS and ELF targets. Hopefully strictly better in both cases. A big choice approaching is exactly how we go about the merge. In my opinion trying an actual merge on .td files isn't going to work (massive inconsistency even if we could make it happen technically) so we're going to have to pick one of the two as a core for the final backend, and strip all the useful bits out of the other one cherry-pick style. Cheers. Tim.
----- Original Message -----> From: "Tim Northover" <t.p.northover at gmail.com> > To: "Hal Finkel" <hfinkel at anl.gov> > Cc: "LLVM Developers Mailing List" <LLVMdev at cs.uiuc.edu>, "Renato Golin" <renato.golin at linaro.org> > Sent: Friday, March 28, 2014 5:06:11 PM > Subject: Re: [LLVMdev] Contributing the Apple ARM64 compiler backend > > > Are these two backends ABI compatible? > > They should be, where there's overlap. AArch64 doesn't have any MachO > support at the moment. ARM64 does have ELF support (obviously with > less testing than AArch64's). Any ABI discrepancy would be considered > a bug. > > > If I have a toolchain setup for the existing aarch64-linux-gnu > > triple, could > > I try the new backend and still have clang find the linker and > > other object > > files in the lib/gcc directories? > > I believe so. You *should* be able to take any command-line you now > have with "--target aarch64-X-Y-Z", replace it with "--target > arm64-X-Y-Z" and it will just work.Okay, thanks!> > Once the merge really gets started, that's a property everyone wants > to make sure is preserved: no regressions with existing commands for > trunk, and the final backend should be a drop-in replacement for both > iOS and ELF targets. Hopefully strictly better in both cases. > > A big choice approaching is exactly how we go about the merge. In my > opinion trying an actual merge on .td files isn't going to work > (massive inconsistency even if we could make it happen technically) > so > we're going to have to pick one of the two as a core for the final > backend, and strip all the useful bits out of the other one > cherry-pick style.Yep, I'd suspect as much. In any case, I agree with everyone else ;) -- go ahead and commit it. -Hal> > Cheers. > > Tim. >-- Hal Finkel Assistant Computational Scientist Leadership Computing Facility Argonne National Laboratory
On Mar 28, 2014, at 3:06 PM, Tim Northover <t.p.northover at gmail.com> wrote:>> Are these two backends ABI compatible? > > They should be, where there's overlap. AArch64 doesn't have any MachO > support at the moment. ARM64 does have ELF support (obviously with > less testing than AArch64's). Any ABI discrepancy would be considered > a bug.It depends on what you mean. The ARM64 backend supports the standard AAPCS64 ABI, and as Tim says, any discrepancies are bugs. It also supports a slightly different ABI that Apple uses. We settled on a calling convention before the standard was fully specified, and we ended up not adopting all of the changes that came later. The places where we diverge are documented here: https://developer.apple.com/library/ios/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARM64FunctionCallingConventions.html> >> If I have a toolchain setup for the existing aarch64-linux-gnu triple, could >> I try the new backend and still have clang find the linker and other object >> files in the lib/gcc directories? > > I believe so. You *should* be able to take any command-line you now > have with "--target aarch64-X-Y-Z", replace it with "--target > arm64-X-Y-Z" and it will just work. > > Once the merge really gets started, that's a property everyone wants > to make sure is preserved: no regressions with existing commands for > trunk, and the final backend should be a drop-in replacement for both > iOS and ELF targets. Hopefully strictly better in both cases. > > A big choice approaching is exactly how we go about the merge. In my > opinion trying an actual merge on .td files isn't going to work > (massive inconsistency even if we could make it happen technically) so > we're going to have to pick one of the two as a core for the final > backend, and strip all the useful bits out of the other one > cherry-pick style. > > Cheers. > > Tim. > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Kipping, David
2014-Mar-28 22:33 UTC
[LLVMdev] Contributing the Apple ARM64 compiler backend
The upcoming EuroLLVM meeting is an opportune time as many of those who have been working on the ARMv8 backends from Apple, ARM, and QuIC will be attending. I suggest those and anyone else interested from the community, get together at the Hacker's Lab to work in person. Likely more than 3 hours are needed, so perhaps working together the day before and/or the day after EuroLLVM might be possible.
Chandler Carruth
2014-Mar-28 22:42 UTC
[LLVMdev] Contributing the Apple ARM64 compiler backend
On Fri, Mar 28, 2014 at 3:33 PM, Kipping, David <dkipping at qti.qualcomm.com>wrote:> The upcoming EuroLLVM meeting is an opportune time as many of those who > have been working on the ARMv8 backends from Apple, ARM, and QuIC will be > attending. I suggest those and anyone else interested from the community, > get together at the Hacker's Lab to work in person. Likely more than 3 > hours are needed, so perhaps working together the day before and/or the day > after EuroLLVM might be possible.This sounds like a really cool idea, but I'm curious, what phases of Jim's plan would you try to work on there? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140328/6b731aef/attachment.html>
Tim Northover
2014-Mar-29 19:27 UTC
[LLVMdev] Contributing the Apple ARM64 compiler backend
Hi David, On 28 March 2014 22:33, Kipping, David <dkipping at qti.qualcomm.com> wrote:> The upcoming EuroLLVM meeting is an opportune time as many of those who have been working on the ARMv8 backends from Apple, ARM, and QuIC will be attending. I suggest those and anyone else interested from the community, get together at the Hacker's Lab to work in person. Likely more than 3 hours are needed, so perhaps working together the day before and/or the day after EuroLLVM might be possible.Sounds like a very good idea to meet up and talk through any issues, though I think I'm leaving around lunch on the Wednesday unfortunately so pre/post meetings aren't likely to work. There's always the evenings! Tim.
Unfortunately I don't believe there will be any Apple representatives. Evan> On Mar 28, 2014, at 3:33 PM, "Kipping, David" <dkipping at qti.qualcomm.com> wrote: > > The upcoming EuroLLVM meeting is an opportune time as many of those who have been working on the ARMv8 backends from Apple, ARM, and QuIC will be attending. I suggest those and anyone else interested from the community, get together at the Hacker's Lab to work in person. Likely more than 3 hours are needed, so perhaps working together the day before and/or the day after EuroLLVM might be possible. > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Kipping, David
2014-Apr-06 10:56 UTC
[LLVMdev] Contributing the Apple ARM64 compiler backend
Just a reminder that those interested in the ARMv8 backend will be getting together at the hackers lab on Monday. Also, many of the ARMv8 backend contributors (Tim, Ana, Bradley, Kristof, James, Vinod) will be getting together on Wednesday in Edinburgh after EuroLLVM to discuss the merge in detail; other community members are welcome to join. Codeplay has graciously offered to host this meeting. Could you let me know directly if you are planning on attending so I can make sure there is enough space/connectivity/food.