summaryrefslogtreecommitdiff
path: root/chromium/docs/updating_clang.md
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/docs/updating_clang.md
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
downloadqtwebengine-chromium-85-based.tar.gz
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/docs/updating_clang.md')
-rw-r--r--chromium/docs/updating_clang.md67
1 files changed, 27 insertions, 40 deletions
diff --git a/chromium/docs/updating_clang.md b/chromium/docs/updating_clang.md
index 9210b5426ec..72fe848b9ce 100644
--- a/chromium/docs/updating_clang.md
+++ b/chromium/docs/updating_clang.md
@@ -9,50 +9,37 @@ An archive of all packages built so far is at https://is.gd/chromeclang
1. Check that https://ci.chromium.org/p/chromium/g/chromium.clang/console
looks reasonably green.
1. Sync your Chromium tree to the latest revision to pick up any plugin
- changes
-1. Run `python tools/clang/scripts/upload_revision.py NNNN`
- with the target LLVM SVN revision number. This creates a roll CL on a new
- branch, uploads it and starts tryjobs that build the compiler binaries into
- a staging bucket on Google Cloud Storage (GCS).
-1. If the clang upload try bots succeed, copy the binaries from the staging
- bucket to the production one. For example:
+ changes.
+1. Run go/chrome-push-clang-to-goma. This takes a recent dry run CL to update
+ clang, and if the trybots were successful it will copy the binaries from
+ the staging bucket to the production one. Writing to this bucket requires
+ special permissions. File a bug at g.co/bugatrooper if you don't have these
+ already (e.g., https://crbug.com/1034081). Then it will push the packages
+ to goma. If you do not have the necessary credentials to do the upload, ask
+ clang@chromium.org to find someone who does.
+1. Run an exhaustive set of try jobs to test the new compiler. The CL
+ description created previously by upload_revision.py includes
+ `Cq-Include-Trybots:` lines for all needed bots, so it's sufficient to just
+ run `git cl try` (or hit "CQ DRY RUN" on gerrit).
+1. Commit the roll CL from the previous step.
+1. The bots will now pull the prebuilt binary, and goma will have a matching
+ binary, too.
- ```shell
- $ export rev=n123456-abcd1234-1
- $ for x in Linux_x64 Mac Win ; do \
- gsutil.py cp -n -a public-read gs://chromium-browser-clang-staging/$x/clang-$rev.tgz \
- gs://chromium-browser-clang/$x/clang-$rev.tgz ; \
- gsutil.py cp -n -a public-read gs://chromium-browser-clang-staging/$x/clang-$rev-buildlog.txt \
- gs://chromium-browser-clang/$x/clang-$rev-buildlog.txt ; \
- gsutil.py cp -n -a public-read gs://chromium-browser-clang-staging/$x/clang-tidy-$rev.tgz \
- gs://chromium-browser-clang/$x/clang-tidy-$rev.tgz ; \
- gsutil.py cp -n -a public-read gs://chromium-browser-clang-staging/$x/llvmobjdump-$rev.tgz \
- gs://chromium-browser-clang/$x/llvmobjdump-$rev.tgz ; \
- gsutil.py cp -n -a public-read gs://chromium-browser-clang-staging/$x/translation_unit-$rev.tgz \
- gs://chromium-browser-clang/$x/translation_unit-$rev.tgz ; \
- gsutil.py cp -n -a public-read gs://chromium-browser-clang-staging/$x/llvm-code-coverage-$rev.tgz \
- gs://chromium-browser-clang/$x/llvm-code-coverage-$rev.tgz ; \
- gsutil.py cp -n -a public-read gs://chromium-browser-clang-staging/$x/libclang-$rev.tgz \
- gs://chromium-browser-clang/$x/libclang-$rev.tgz ; \
- done && gsutil.py cp -n -a public-read gs://chromium-browser-clang-staging/Mac/lld-$rev.tgz \
- gs://chromium-browser-clang/Mac/lld-$rev.tgz
- ```
+## Performance regressions
- **Note** that writing to this bucket requires special permissions. File a
- bug at g.co/bugatrooper if you don't have these already (e.g.,
- https://crbug.com/1034081).
+After doing a clang roll, you may get a performance bug assigned to you
+([example](https://crbug.com/1094671)). Some performance noise is expected
+while doing a clang roll.
-1. Run the goma package update script to push these packages to goma. If you do
- not have the necessary credentials to do the upload, ask clang@chromium.org
- to find someone who does
-1. Run an exhaustive set of try jobs to test the new compiler. The CL
- description created by upload_revision.py includes `Cq-Include-Trybots:`
- lines for all needed bots, so it's sufficient to just run `git cl try`
- (or hit "CQ DRY RUN" on gerrit).
+You can check all performance data for a clang roll via
+`https://chromeperf.appspot.com/group_report?rev=XXXXXX`, where `XXXXXX` is the
+revision number, e.g. `778090` for the example bug (look in the first message
+of the performance bug to find this). Click the checkboxes to display graphs.
+Hover over points in the graph to see the value and error.
-1. Commit roll CL from the first step
-1. The bots will now pull the prebuilt binary, and goma will have a matching
- binary, too.
+Serious regressions require bisecting upstream commits (TODO: how to repro?).
+If the regressions look insignificant and there is green as well as red, you
+can close the bug as "WontFix" with an explanation.
## Adding files to the clang package