[11.0.0 Release] The release branch is here; trunk is now 12.0.0

Hello everyone,

The release branch for LLVM 11 was created from the trunk at
2e10b7a39b930ef8d9c4362509d8835b221fbc0a, and the trunk version was
bumped to 12.0.0.

Release blockers are tracked by https://llvm.org/PR46725 Please mark
any bugs, old or new, that need to be fixed before the release as
blocking that bug.

Please keep me in the loop via email on any bugs, commits, or other
issues that might be relevant for the release. In particular, if
you're currently investigating issues with trunk and working on fixes,
please help me make sure that those fixes end up on the branch also.

To get a change committed to the branch, please commit it to trunk as
per usual, and then request it to be merged -- ideally by filing a
blocker of https://llvm.org/PR46725, or by cc'ing me on the commit
email.

(Please don't report issues or request merges over
IRC/Discord/Discourse; there's a large risk that I'll miss it. Please
use email.)

The first release candidate will be tagged soon (hopefully in a day or
two if the branch looks stable), and testing of that can begin. The
full release schedule can be found under "Upcoming Releases" to the
right at https://llvm.org

Thanks,
Hans

Hi Hans,

The release branch for LLVM 11 was created from the trunk at
2e10b7a39b930ef8d9c4362509d8835b221fbc0a, and the trunk version was
bumped to 12.0.0.

[...]

The first release candidate will be tagged soon (hopefully in a day or
two if the branch looks stable), and testing of that can begin. The
full release schedule can be found under "Upcoming Releases" to the
right at https://llvm.org

I noticed that the test-release.sh script currently lacks support to
include flang in the build. Is this intentional or just an oversight?

  Rainer

It hasn't been added yet since flang wasn't in the tree for the last release.

flang-dev folks: what is the current flang status? Should it be added
to the llvm/utils/release/test-release.sh script so that it gets
testing and prebuilt binaries as part of the release?

Thanks for tagging, Hans. Can I go ahead with the CMake version bump advertised in http://lists.llvm.org/pipermail/llvm-dev/2020-June/142893.html?

This may cause some instability on a few builders that have not upgraded to a recent CMake yet, but I'll iterate as explained in the linked thread. Let me know if it's OK to go ahead now or if you'd prefer that I wait for a few days.

Cheers,
Louis

Hi Hans, Rainer

I can describe the status of Flang, but I am not exactly sure what the criteria is for a sub-project to be ready for release testing. If there is anything missing from my summary please ask.

Functionally, Flang is able to parse Fortran but is not able to generate the corresponding LLVM IR. Flang supports a mode where it unparses the parsed Fortran back to Fortran source and then passes it off to another Fortran compiler that the user can chose to do codegen.

In terms of platform support, flang does not support the full list of LLVM compilers due to its C++17 requirements, so allowances would need to be made for that. We know for sure that Flang does not yet build on Windows yet, so we would need to also make an exception for this in LLVM 11 release. With downstream testing across the community, we believe that Flang should work well for the subset of supported compilers on unix distros on Arm and x86_64. Flang is still not well covered by public buildbots. We have some for Arm on Ubuntu with modern GCC and clang releases but we lack coverage for other distros and other CPU architectures, notably X86_64. We have only just fixed shared library builds (on linux) and we'll be asking to cherry pick those fixes to the LLVM 11 release branch.

Because of the above, flang does not build as a default target and does not build even with -DLLVM_ENABLE_PROJECTS=all.

I believe/assume that there is no Fortran code in LNT. If there is, we certainly have not tested Flang against it so might expect issues. If I am right and there is no Fortran code in the test suite then clearly it is not useful to run it for Flang.

Our thoughts as a community were that we would document the flang status in the LLVM 11 release notes so that folks taking the release as source could experiment with it if they wanted to. I don't think anyone had a strong feeling for whether we should include the pre-built binaries in a release.

I would certainly not be against trying to add flang here and seeing how well it does against the release build and test process and give us feedback for things to work on. On the other hand, I would not want to cause undue disruption to the release effort, so I think there needs to be appetite to try amongst the release testers as well.

@Hans Based on this, do you think it would be a good idea to add flang to the script at this stage?

Ta
Rich

Hello Hans,

Also on the subject of flang, I've pushed a couple of commits today to
allow shared library builds when flang is enabled as a subproject.
Would it be possible to have these merged accross to the release branch
so we can have working shared library builds there?

The commits are
https://reviews.llvm.org/rG1c93671e594d075cb0008dc4f33d863611af9ab9
and
https://reviews.llvm.org/rG920e127e02531640204be0944a37bd3bf449f66b

Thanks!
David Truby

Sounds good to me.

Thanks for the update!

We should add a flag to the script for flang regardless (I'll do
that), but based on what you write I think it makes sense to keep it
off by default. Those who are interested can still build and
experiment with it, but I don't think there's much value in forcing
all testers to build it.

Documenting the status in the release notes sounds great to me.

Thanks,
Hans

Sure! Go ahead and cherry-pick (with the -x option) them to the branch
and push. Or let me know if you'd prefer me to do it.

Thanks,
Hans

Thanks! I've just pushed the commit and will iterate on it until everyone is upgraded.

Happy to finally get this started!
Louis

I've added the test-release.sh flag in
https://github.com/llvm/llvm-project/commit/033ef8420cec57187fffac1f06322f73aa945c4c

Hi Hans

That sounds like a good way forward to me for LLVM 11. Let's see where we are for LLVM 12 and re-evaluate.

Ta
Rich

Hi - do you have a new estimate when that release candidate is coming?
I do see blockers on the tracking bug, but I wasn't sure if that would
delay RC1 entirely.

We're eager to update this for rustc because the build performance has
improved since 10 (I'll share numbers later), but I thought it would be
prudent for us to at least wait for RC1.

Thanks,
Josh

RC1 was tagged earlier today. I'm just doing the final preparations
before sending out the announcement email.

Thanks,
Hans

Great, thank you!