Skip to content

Reland "[MLGO] Count LR Evictions Rather than Relying on Cascade (#12… #2355

Reland "[MLGO] Count LR Evictions Rather than Relying on Cascade (#12…

Reland "[MLGO] Count LR Evictions Rather than Relying on Cascade (#12… #2355

Workflow file for this run

name: LLVM Premerge Checks
permissions:
contents: read
on:
pull_request:
paths:
- .github/workflows/premerge.yaml
push:
branches:
- 'main'
jobs:
premerge-checks-linux:
if: github.repository_owner == 'llvm'
runs-on: llvm-premerge-linux-runners
concurrency:
group: ${{ github.workflow }}-linux-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
steps:
- name: Checkout LLVM
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1.2.14
with:
max-size: "2000M"
- name: Build and Test
# Mark the job as a success even if the step fails so that people do
# not get notified while the new premerge pipeline is in an
# experimental state.
# TODO(boomanaiden154): Remove this once the pipeline is stable and we
# are ready for people to start recieving notifications.
continue-on-error: true
run: |
git config --global --add safe.directory '*'
modified_files=$(git diff --name-only HEAD~1...HEAD)
modified_dirs=$(echo "$modified_files" | cut -d'/' -f1 | sort -u)
echo $modified_files
echo $modified_dirs
. ./.ci/compute-projects.sh
all_projects="bolt clang clang-tools-extra compiler-rt cross-project-tests flang libc libclc lld lldb llvm mlir openmp polly pstl"
modified_projects="$(keep-modified-projects ${all_projects})"
linux_projects_to_test=$(exclude-linux $(compute-projects-to-test 0 ${modified_projects}))
linux_check_targets=$(check-targets ${linux_projects_to_test} | sort | uniq)
linux_projects=$(add-dependencies ${linux_projects_to_test} | sort | uniq)
linux_runtimes_to_test=$(compute-runtimes-to-test ${linux_projects_to_test})
linux_runtime_check_targets=$(check-targets ${linux_runtimes_to_test} | sort | uniq)
linux_runtimes=$(echo ${linux_runtimes_to_test} | sort | uniq)
if [[ "${linux_projects}" == "" ]]; then
echo "No projects to build"
exit 0
fi
echo "Building projects: ${linux_projects}"
echo "Running project checks targets: ${linux_check_targets}"
echo "Building runtimes: ${linux_runtimes}"
echo "Running runtimes checks targets: ${linux_runtime_check_targets}"
export CC=/opt/llvm/bin/clang
export CXX=/opt/llvm/bin/clang++
./.ci/monolithic-linux.sh "$(echo ${linux_projects} | tr ' ' ';')" "$(echo ${linux_check_targets})" "$(echo ${linux_runtimes} | tr ' ' ';')" "$(echo ${linux_runtime_check_targets})"
premerge-checks-windows:
if: github.repository_owner == 'llvm'
runs-on: llvm-premerge-windows-runners
concurrency:
group: ${{ github.workflow }}-windows-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
defaults:
run:
shell: bash
steps:
- name: Checkout LLVM
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1.2.14
with:
variant: "sccache"
max-size: "2000M"
- name: Compute Projects
id: vars
run: |
modified_files=$(git diff --name-only HEAD~1...HEAD)
modified_dirs=$(echo "$modified_files" | cut -d'/' -f1 | sort | uniq)
echo $modified_files
echo $modified_dirs
. ./.ci/compute-projects.sh
all_projects="bolt clang clang-tools-extra compiler-rt cross-project-tests flang libc libclc lld lldb llvm mlir openmp polly pstl"
modified_projects="$(keep-modified-projects ${all_projects})"
windows_projects_to_test=$(exclude-windows $(compute-projects-to-test 1 ${modified_projects}))
windows_check_targets=$(check-targets ${windows_projects_to_test} | sort | uniq | tr -d '\r' | tr '\n' ' ')
windows_projects=$(add-dependencies ${windows_projects_to_test} | sort | uniq | tr -d '\r' | tr '\n' ';')
if [[ "${windows_projects}" == "" ]]; then
echo "No projects to build"
fi
echo "Building projects: ${windows_projects}"
echo "Running project checks targets: ${windows_check_targets}"
echo "windows-projects=${windows_projects}" >> $GITHUB_OUTPUT
echo "windows-check-targets=${windows_check_targets}" >> $GITHUB_OUTPUT
- name: Build and Test
# Mark the job as a success even if the step fails so that people do
# not get notified while the new premerge pipeline is in an
# experimental state.
# TODO(boomanaiden154): Remove this once the pipeline is stable and we
# are ready for people to start recieving notifications.
continue-on-error: true
if: ${{ steps.vars.outputs.windows-projects != '' }}
shell: cmd
run: |
set MAX_PARALLEL_COMPILE_JOBS=64
set MAX_PARALLEL_LINK_JOBS=64
call C:\\BuildTools\\Common7\\Tools\\VsDevCmd.bat -arch=amd64 -host_arch=amd64
bash .ci/monolithic-windows.sh "${{ steps.vars.outputs.windows-projects }}" "${{ steps.vars.outputs.windows-check-targets }}"