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

[CFP] Snapdragon LLVM Toolchain #15

Open
skganesan opened this issue Sep 3, 2021 · 6 comments
Open

[CFP] Snapdragon LLVM Toolchain #15

skganesan opened this issue Sep 3, 2021 · 6 comments

Comments

@skganesan
Copy link

skganesan commented Sep 3, 2021

Title

Snapdragon LLVM Toolchain

Author

Sivakumar Ganesan, sganesa@quicinc.com, Qualcomm Innovation Center

Distribution

Snapdragon LLVM Compiler Toolchain is distributed for building Android NDK and Bare metal images

Abstract (optional)

Snapdragon LLVM Compiler Toolchain, which is available for Android NDK and Bare metal images, enables use of compilers in a broader range of configurations, providing performance and code size advantage particularly on Qualcomm Snapdragon micro-architectures. Snapdragon LLVM compiler has provided performance gains to a variety of Android applications and libraries.
This talk will discuss on how Snapdragon LLVM compiler manages to stay close to the upstream HEAD and challenges faced during the distribution process

What's unique about the environment you package LLVM for? (optional)

What makes your distribution of LLVM unique? (optional)

  • Stay close to upstream HEAD:
    We bring upstream patches and merge it in our source tree via automation. The patches are merged out-of-order as we encounter conflicts, build or test issues while bringing in each commit. We use this concept of drain point to bring in all commits till a commit of interest for distribution is merged
  • Support Windows and Linux Host

What might others learn from your experience? (optional)

There are a wide range of challenges that we face when trying to distribute the toolchain. Some of those challenges include the following issues that are seen with upstream patches:

  • Hard to determine dependencies between patches as upstream no longer uses svn id in commit message
  • Do not know when patches are getting reverted
  • cmake changes resulting in false positive builds, for example, builds missing some output binaries
  • Major upstream code changes causing significant effort to make it downstream compatible

Another distribution challenge that we encounter is with the LLVM toolchain version that Android AOSP builds come with. New AOSP drops at times use a different LLVM upstream toolchain version resulting in build issues because of mismatch between upstream LLVM compiler and Snapdragon LLVM

What could be improved in upstream LLVM to make working with it easier as a downstream packager? (optional)

Anything that makes the HEAD revision more stable: for instance, enforcing precheckin verification for each commit, means to determine dependent patches etc.


Reminder that this is meant to be a 15 minute lightning talk; enough to pique
interests but follow up should be done after. Slides can always include links
to more info; we will ask that you send a PR to this repo with your slides when
they are ready.

@nickdesaulniers
Copy link
Member

Thanks for taking the time to write up a CFP; we'd be overjoyed to have you present at LLVM Distributors Conf 2021! If you still plan on presenting, this is a reminder to get started on your slides for next week. Once they're done, we will contact you about submitting a PDF of your slides as either a pull request to this repository or via email to the organizer. We hope to have a schedule finalized by EOW; we may iterate on the schedule based on whether presenters have conflicts. Please keep this issue open for attendees to ask questions, or close this issue if you no longer plan on attending. Reminder to keep your talk concise (15 minutes); we wont be doing time for questions in order to fit as much content as possible. Attendees should ask questions here in this github issue.

@skganesan skganesan reopened this Sep 16, 2021
@nickdesaulniers
Copy link
Member

@skganesan do you mind switching times with @tstellar ?

Everything ok with your setup?

@skganesan
Copy link
Author

skganesan commented Sep 16, 2021 via email

@nickdesaulniers
Copy link
Member

yes, will do; I can present and you can just say "next slide" and I'll advance them for you.

@skganesan
Copy link
Author

skganesan commented Sep 16, 2021 via email

@skganesan
Copy link
Author

skganesan commented Sep 16, 2021 via email

nickdesaulniers added a commit that referenced this issue Sep 16, 2021
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

No branches or pull requests

2 participants