Skip to content

Llvm 20#22

Merged
zbeekman merged 16 commits intomainfrom
llvm-20
Mar 8, 2026
Merged

Llvm 20#22
zbeekman merged 16 commits intomainfrom
llvm-20

Conversation

@zbeekman
Copy link
Member

@zbeekman zbeekman commented Mar 7, 2026

Upgrade to LLVM 20

zbeekman added 3 commits March 5, 2026 21:00
…ang symlink

Replace `ARG CI` with `ARG PHASED_BUILD=true` so the OOM-aware phased
LLVM build is controlled explicitly rather than piggy-backing on the CI
environment variable. Add newly discovered memory-hungry Flang/MLIR
targets (flang driver, fir-opt, fir-lsp-server, tco,
MLIRCAPIRegisterEverything, MLIRLinalgTransforms) to the Phase 2 list.
Fix flang binary detection for LLVM >= 20 where `flang` is a symlink
to `flang-20` by passing `-L` to find.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades the LLVM version from 19 to 20 in the Docker-based build infrastructure. The primary driver is the LLVM 20 rename of flang-new to flang, which requires adjustments across the Dockerfile build targets, binary verification, TAU installation, and CI tagging.

Changes:

  • Bumps LLVM_VER from 19 to 20 and adapts all flang binary/target references with version-conditional logic for backward compatibility
  • Replaces the CI build-arg toggle with PHASED_BUILD (defaulting to true) for OOM-aware phased builds, and expands the OOM-fragile target list with newly identified memory-hungry LLVM 20 targets
  • Adds LLVM-version-suffixed Docker image tags in CI and passes LLVM_VER as a build argument

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
Dockerfile Upgrades LLVM_VER to 20; adds version-conditional flang binary/target names; replaces CI with PHASED_BUILD; expands OOM-fragile grep pattern; updates flang verification logic
.github/workflows/CI.yml Adds LLVM_VER env var; passes it as Docker build-arg; generates LLVM-version-suffixed image tags; moves Checkout step before Docker meta
CLAUDE.md Streamlines command block; updates gotchas for PHASED_BUILD; updates security convention note; removes stale gotchas
.claude/skills/build/SKILL.md Adds --builder salt-8cpu to local build commands

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

zbeekman added 3 commits March 7, 2026 14:27
Seven new Claude Code hooks enforce conventions automatically:
- check-unicode-lookalikes: flag non-ASCII doppelgangers (em/en dashes, smart quotes, NBSP)
- check-trailing-whitespace: flag trailing whitespace (markdown line-break aware)
- check-lint-registration: warn on missing or stale lint.sh manifest entries
- check-shell-strict-mode: require set -euo pipefail in shell scripts
- check-dockerfile-heredoc-strict: require set -euo pipefail in Dockerfile RUN heredocs
- check-workflow-expressions: flag bare ${{ }} in GitHub Actions run blocks
- lint-changed-file: run single-file lint on save

Enhance lint.sh with --file single-file mode, --warn-untracked flag
for discovering unlisted lintable files, manifest validation that
errors on missing files, and a CONFIG_FILES array for tool configs.

Promote block-pipe-to-shell to user-level hook; remove from project.
Delete vestigial docker-cache action scripts and redundant lint skill.
Update README to use ./script instead of bash script.
Trim CLAUDE.md now that hooks enforce conventions directly.
Replace Unicode em dashes (—) with ASCII double-dashes (--) across
all project files. Add .gitattributes with text=auto for consistent
line-ending normalization. Remove trailing whitespace in .actionlint.yaml.
Add /.gitattributes to dev-tooling exclusions. Exclude *.tgz to
prevent loose archives from inflating the build context.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 29 out of 30 changed files in this pull request and generated 8 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

zbeekman and others added 7 commits March 7, 2026 14:55
Add dorny/paths-filter to CI workflow so doc-only or tooling-only
pushes skip the expensive LLVM Docker build. Lint and changes jobs
run in parallel; build-base gates on both. Schedule and tag events
bypass the filter and always build.

Add ci_filter_check to lint.sh that verifies every Dockerfile
COPY/ADD source, Dockerfile, and submodule gitlink is covered by
the CI path-filter -- catches filter drift automatically.

Fix missing 'patches' gitlink entry (patches/** alone misses
submodule pointer updates).
Add missing final newline in .gitignore. Fix lost space in CLAUDE.md
em-dash conversion (--only -> -- only). Quote ${LLVM_VER} in
Dockerfile arithmetic comparisons to guard against empty values.
fix spacing

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
fix indent

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
fix space

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
fix var name change

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Add set -uo pipefail to lint.sh (-e omitted so all checks run before
summary). Guard --file against missing argument to prevent infinite
loop.

Remove block-pipe-to-shell.sh from project hooks and lint manifest
(promoted to user-level). Update strict-mode hook to accept set -uo
pipefail for lint.sh while requiring set -euo pipefail everywhere else.
Use set -euo pipefail in lint-changed-file.sh (was set -o pipefail).
Remove unused ARG CI=false from Dockerfile and update debug echo to
print PHASED_BUILD. Quote $FLANG_CMD in installtau calls.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 29 out of 30 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Replace CI=true with PHASED_BUILD=true in cache-warmup build step
- Remove stale Source: CLAUDE.md references from hook comments
@zbeekman zbeekman requested a review from Copilot March 7, 2026 21:27
@zbeekman zbeekman marked this pull request as ready for review March 7, 2026 21:28
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 29 out of 30 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@zbeekman zbeekman requested a review from Copilot March 8, 2026 14:21
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 29 out of 30 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@zbeekman zbeekman merged commit 8213a87 into main Mar 8, 2026
12 checks passed
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

Successfully merging this pull request may close these issues.

2 participants