Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
486 commits
Select commit Hold shift + click to select a range
433f2aa
[lit] Set shlibpath_var on OpenBSD
brad0 Sep 16, 2022
d4bada9
[CodeGen] Don't zero callee-save registers with zero-call-used-regs (…
nikic Sep 15, 2022
43b5b04
[libcxx] Bump libc++ version to 15.0.1
tru Sep 19, 2022
c6d2e8b
[docs] Fix build-docs.sh
tru Sep 19, 2022
d64394b
[libc++] Always query the compiler to find whether a type is always l…
ldionne Sep 6, 2022
c079a29
[LV] Add tests for epilogue vectorization with widened inductions.
fhahn Sep 19, 2022
38b5fa7
[LV] Move new epilog-vectorization-widen-inductions.ll to AArch64 dir.
fhahn Sep 19, 2022
b73d2c8
[LV] Keep track of cost-based ScalarAfterVec in VPWidenPointerInd.
fhahn Sep 19, 2022
5d9fa4d
SPIRV: Fix compilation in NDEBUG.
jyknight Aug 11, 2022
8d802f7
[libc++] Keep unary_function and binary_function in C++17 for one mor…
ldionne Sep 22, 2022
f1ad3ab
[MachineCycle][NFC] add a cache for block and its top level cycle
Sep 16, 2022
a26ef3c
[Hexagon] Add defaulted operator= to classes with defaulted copy ctor
Aug 18, 2022
9d3635c
Exclude check-polly-unittests and check-polly-isl from check-all
efriedma-quic Aug 24, 2022
451e3b6
Bump version to 15.0.2
tru Sep 26, 2022
2eba4dd
[ELF] Rewrite R_RISCV_ALIGN nops when r.addend%4 != 0
MaskRay Sep 26, 2022
e08c165
[clangd] Avoid crash when printing call to string literal operator te…
HighCommander4 Aug 29, 2022
10a5497
Fix build error in StmtPrinterTest.cpp
HighCommander4 Sep 5, 2022
0b41e63
[clang-tidy] adjust treating of array-of-pointers when 'AnalyzePointe…
JonasToth Sep 25, 2022
d3e48d9
[docs] improve documentation for misc-const-correctness
JonasToth Aug 29, 2022
bcb9b9f
[libcxx] Make stdatomic.h work when included from a C source file
ngg Sep 27, 2022
6ba100a
[InstSimplify] Add test for PR58046 (NFC)
nikic Sep 29, 2022
77ff99c
[ValueTracking] Fix CannotBeOrderedLessThanZero() for fdiv (PR58046)
nikic Sep 29, 2022
ebbb544
[Clang] Fix variant crashes from GH58028, GH57370
royjacobson Sep 29, 2022
966e71d
[LV] Convert sve-epilog-vect.ll to use opaque pointers.
fhahn Sep 23, 2022
b3669eb
[LV] Add test for #57912.
fhahn Sep 23, 2022
5f620d0
[LV] Update handling of scalable pointer inductions after b73d2c8.
fhahn Sep 23, 2022
541ea23
[gn build] (manually) port 18b4a8bcf35 more
nico Jul 28, 2022
67ac047
[clang][DebugInfo] Emit debuginfo for non-constant case value
yonghong-song Sep 26, 2022
55d4d86
tweak zstd behavior in cmake and llvm config for better testing
ckissane Sep 1, 2022
4bd3f37
use LLVM_USE_STATIC_ZSTD
ckissane Sep 2, 2022
c0748fe
[clang-tools-extra] [clangd] Respect llvm_shlib_dir in tests
mgorny Oct 3, 2022
61fa709
[LoopVersioning] Invalidate SCEV for phi if new values are added.
fhahn Sep 23, 2022
73ea64f
[clangd] Avoid scanning up to end of file on each comment!
sam-mccall Oct 5, 2022
bd5722b
[X86] Remove AVX512VP2INTERSECT from Sapphire Rapids.
FreddyLeaf Oct 8, 2022
359ef0c
[clangd] Improve inlay hints of things expanded from macros
sam-mccall Sep 15, 2022
27e075f
[Syntax] Fix macro-arg handling in TokenBuffer::spelledForExpanded
sam-mccall Sep 26, 2022
fc47af8
Bump version to 15.0.3
tru Oct 10, 2022
02129ea
[Syntax] avoid using c++17 features on 15.x branch
sam-mccall Oct 10, 2022
6599b6e
Fix LLDB build on old Linux kernels (pre-4.1)
DavidSpickett Oct 5, 2022
f3c5289
Revert "Recommit "[SCEV] Look through single value PHIs." (take 3)"
mstorsjo Oct 5, 2022
d35bc70
[AArch64][SVE] Fix AArch64_SVE_VectorCall calling convention
MDevereau Sep 8, 2022
dfef316
[clang-tidy] Fix a false positive in readability-simplify-boolean-expr
njames93 Sep 24, 2022
e3b0721
[llvm] [lit] Fix use_lld() to respect llvm_shlib_dir
mgorny Oct 6, 2022
6fba785
[llvm] [test] Add missing canonicalization of LLVM_ENABLE_ZSTD
mgorny Oct 6, 2022
b484027
[CMake] Provide Findzstd module
petrhosek Sep 30, 2022
6872509
[libc++] Fix std::function's handling of blocks under Objc ARC
ldionne Oct 11, 2022
f6af957
[clangd] Block clang-tidy misc-const-correctness check
sam-mccall Oct 12, 2022
4a2c05b
[ARM] Fix for MVE i128 vector icmp costs.
davemgreen Oct 14, 2022
086365b
[test] Make Linux/sem_init_glibc.cpp robust
MaskRay Oct 2, 2022
ceee53c
[SROA] Don't speculate phis with different load user types
aeubanks Oct 18, 2022
455e1d7
[InstCombine] Bail out of casting calls when a conversion from/to byv…
glandium Oct 23, 2022
5388da1
Bump version to 15.0.4
tru Oct 24, 2022
5834fe6
[AutoUpgrade] Fix remangling when upgrading struct return type
nikic Oct 21, 2022
dccd061
[ELF] Suppress "duplicate symbol" when resolving STB_WEAK and STB_GNU…
MaskRay Oct 21, 2022
1e1c520
[SystemZ] Relase notes for LLVM 15
tstellar Oct 24, 2022
2d5c43a
[lldb] Automatically unwrap parameter packs in template argument acc…
JDevlieghere Aug 17, 2022
db68723
[clangd] Return earlier when snippet is empty
tom-anders Sep 18, 2022
3010b7e
[clang][driver] Remove dynamic gcc-toolset/devtoolset logic
tbaederr Oct 21, 2022
dd711a9
[lld-macho] Canonicalize personality pointers in EH frames
int3 Oct 12, 2022
9d46557
Take memset_inline into account in analyzeLoadFromClobberingMemInst
gchatelet Oct 26, 2022
08bd84e
[SPARC] Make calls to function with big return values work
koachan Oct 18, 2022
80a9fc8
[clang][Sema] Fix a clang crash with btf_type_tag
yonghong-song Oct 26, 2022
5c68a1c
AMDGPU: Make various vector undefs legal
arsenm Sep 27, 2022
c8e7a87
[CMake] Fix -Wstrict-prototypes
thesamesam Nov 8, 2022
931b6d5
Reenable POSIX builtin library functions in gnu2x mode
AaronBallman Nov 2, 2022
58ba50a
[cmake] Add missing CMakePushCheckState include to FindLibEdit.cmake
mgorny Nov 7, 2022
6750e34
[TypePromotion] Replace Zext to Truncate for the case src bitwidth is…
bcl5980 Nov 8, 2022
d75ae21
Set LLVM_ATOMIC_LIB variable for convenient linking against libatomic
thesamesam Oct 19, 2022
4c3d838
Link liblldCOFF against libatomic when necessary
thesamesam Oct 19, 2022
0988add
Link libclangBasic against libatomic when necessary.
thesamesam Oct 19, 2022
11c3a21
[analyzer] Workaround crash on encountering Class non-type template p…
steakhal Oct 13, 2022
68799e7
[GlobalOpt] Don't remove inalloca from varargs functions
aeubanks Nov 1, 2022
392963b
[lldb] Fix 'error: non-const lvalue...' caused by SWIG 4.1.0
jplesnik Sep 21, 2022
dc8f6ff
[lldb] Get rid of __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS
Sep 29, 2022
a399896
[VectorUtils] Skip interleave members with diff type and alloca sizes.
fhahn Nov 13, 2022
154e88a
Bump version to 15.0.5
tstellar Nov 16, 2022
25a36ca
Bump version to 15.0.6
tstellar Nov 21, 2022
e6e61e9
Revert "Reapply: Add an error message to the default SIGPIPE handler"
bwendling Nov 18, 2022
abcd034
[ELF] Handle GCC collect2 -plugin-opt= on Windows
bwerl Nov 16, 2022
088f336
[CodeGen][ARM] Fix ARMABIInfo::EmitVAAarg crash with empty record typ…
yronglin Nov 17, 2022
a8af9f6
Bump version to 15.0.7
tstellar Jan 6, 2023
74d3ba1
[X86] Don't zero out %eax if both %al and %ah are used
bwendling Dec 13, 2022
67fd0d2
[TypePromotion] Add truncate in ConvertTruncs when the original trunc…
bcl5980 Jan 3, 2023
1095870
[wasm-ld] Define a `__heap_end` symbol marking the end of allocated m…
sunfishcode Oct 17, 2022
948cadd
[RegAllocFast] Handle new debug values for spills
cuviper Jan 4, 2023
939f5a3
libc++: bring back the unsigned in the return type in wcstoull_l
sylvestre Jan 7, 2023
8dfdcc7
[libc++] Fix memory leaks when throwing inside std::vector constructors
philnik777 Nov 17, 2022
04509fa
[TableGen] Add LLVM-style RTTI to Matchers.
jacobly0 Oct 19, 2019
3ee7884
[TableGen] Push cast down to usage.
jacobly0 Oct 19, 2019
09d10c5
[TableGen] [GlobalISel] Add better support for register operands.
jacobly0 Oct 19, 2019
0d85837
[GlobalISel] Improve Legalizer.
jacobly0 Oct 27, 2019
dfc74c8
[GlobalISel][ArtifactCombiner] Bail out on unhandled case.
jacobly0 Nov 14, 2019
098b4c6
[Bugpoint] Don't give up completely when an invalid module gets gener…
jacobly0 Nov 13, 2019
dc7d4cc
Update .gitignore and fix emacs.el.
jacobly0 Oct 20, 2019
4bfb6f4
[cc1] Initialize all of the passes when -mllvm is passed so that -pri…
jacobly0 Apr 13, 2020
852ca7e
Add i24 simple value type and fix resulting target breakage.
jacobly0 Oct 19, 2019
a79235c
[Z80] Add Z80 target.
jacobly0 Oct 20, 2019
9f581db
[Z80] Add Z80 GlobalISel implementation.
jacobly0 Oct 20, 2019
ed36c09
[Z80] Add Z80 support to clang.
jacobly0 Oct 27, 2019
fcf0cd4
[Z80] Change assembler syntax from zds to fasmg-ez80.
jacobly0 Jan 16, 2020
4f84eea
[Z80] Add Z80 tests.
jacobly0 Nov 1, 2019
e299658
Use Github Actions.
jacobly0 Nov 14, 2019
46b45b9
[Combiner] Implement some narrowing optimizations.
jacobly0 Aug 18, 2020
1726396
[Combiner] Improve narrowing optimizations.
jacobly0 Aug 19, 2020
96f024a
[Combiner] Implement ext/trunc combine optimization.
jacobly0 Aug 19, 2020
3ca4e3a
[Z80] Optimize extracts of high register.
jacobly0 Sep 7, 2020
39fb164
[Z80] Fix bugs.
jacobly0 Sep 7, 2020
faf6644
[Z80] Change popcnt calling convention.
jacobly0 Sep 20, 2020
e349493
[Clang] Add -fforce-mangle-main-argc-argv.
jacobly0 Sep 20, 2020
6482b02
[Clang] [Z80] Fix formatting.
jacobly0 Sep 22, 2020
85fbaf6
[ELF] [Z80] Add Z80 ELF support.
jacobly0 Sep 22, 2020
945cf50
[Z80] Add CFI_INSTRUCTION support.
jacobly0 Oct 26, 2020
b10cde6
[Z80] Remove illegal LEAs in Z80 mode.
jacobly0 Dec 11, 2020
176ff3a
[Z80] Maybe actually fix stack offsets.
jacobly0 Jan 14, 2021
735a143
[Z80] Try to build release executable.
jacobly0 Dec 25, 2020
24d95da
[Z80] Various optimizations.
jacobly0 Jun 6, 2021
8801809
[Z80] Disable debug and testing.
jacobly0 Jun 6, 2021
0e006c5
Fix cpu defines.
jacobly0 Jul 1, 2021
3b55ea0
Use word add if carry-in is unset.
jacobly0 Jul 1, 2021
d5e8f72
Use oversized stack slots on ez80.
jacobly0 Jul 1, 2021
8e7f45b
Expand funnel shifts that shift multiple times.
jacobly0 Jul 1, 2021
840980d
Split out conditional instruction detection into new pass.
jacobly0 Jul 1, 2021
fbc25e6
Add fasmg operators.
jacobly0 Jul 2, 2021
3fc6ba0
Retry memory folding after SSA is lost to optimize certain pseudos.
jacobly0 Jul 2, 2021
654cbd1
Fix folding bugs.
jacobly0 Jul 5, 2021
1ed1c69
Merge with upstream.
jacobly0 Aug 11, 2021
8d6ab4a
Add fmin/fmax legalization.
jacobly0 Nov 15, 2021
8e6f9db
Fix build.
jacobly0 Nov 15, 2021
67c424d
Hackfix for combine generating unsupported types.
jacobly0 Nov 20, 2021
5439278
Fix various crashes.
jacobly0 Jan 30, 2022
5f2091b
Fix #22.
jacobly0 Jan 30, 2022
f7cdbf9
Fix CI.
jacobly0 Jan 30, 2022
140a606
Fix #21.
jacobly0 Jan 31, 2022
db2e91a
[Z80] Register definition refactoring
b-s-a Dec 2, 2019
dd97682
Cleanup #6.
jacobly0 Jan 31, 2022
db62cae
[Z80] Add feature to enable SLI/SLL instruction
b-s-a Nov 27, 2019
27eba8b
Fix #2.
jacobly0 Jan 31, 2022
0ec1092
[Z80] Add registers definition I, R, MB
b-s-a Nov 27, 2019
0fb40a6
Fix #1.
jacobly0 Jan 31, 2022
9b919ca
Remove upstream github files.
jacobly0 Jan 31, 2022
efc923a
Update tests and fix crash.
jacobly0 Jan 31, 2022
9038fec
Use correct int size for libcalls.
jacobly0 Feb 1, 2022
fa8d8a1
Fix #24 by legalizing more fp intrinsics.
jacobly0 Feb 2, 2022
bf1c74b
Remove assert which is incorrect because removed kills aren't tracked…
jacobly0 Feb 3, 2022
4958ee5
Flag hax.
jacobly0 Feb 3, 2022
f7c35a1
Add more build artifacts.
jacobly0 Feb 9, 2022
c4afadf
[z80] lower memory operations with loads/stores
mateoconlechuga Feb 13, 2022
18822f8
Cleanup MC operand print.
jacobly0 Feb 15, 2022
728d9fb
Fix workflow file.
jacobly0 Feb 17, 2022
82705d3
Add option to avoid returning sret pointers.
jacobly0 Feb 27, 2022
4520b6d
Fix optimization when setting sp.
jacobly0 Mar 6, 2022
eb35cfa
Fix invalid memoperand access for small memset.
jacobly0 Mar 7, 2022
7cc589f
Don't call SCMP after CMP_*_0.
jacobly0 Mar 7, 2022
9414df4
Fix signed comparision rt calls.
jacobly0 Mar 7, 2022
e8744ae
Optimize flags.
jacobly0 Mar 7, 2022
c0e0258
Handle PreferredCC in fallback.
jacobly0 Mar 7, 2022
f5ef6d6
Implement more optimizations for z80-late-machine-opt.
jacobly0 Mar 9, 2022
22479e5
Fix neg and not opts.
jacobly0 Mar 9, 2022
4c07c16
Fix legalization of G_UMULO, G_SMULO still doesn't work.
jacobly0 Mar 13, 2022
fceaf31
Fix calling convention for s(div|rem)[us].
jacobly0 Mar 19, 2022
fb48b31
Add missing runtime calls.
jacobly0 Mar 20, 2022
7a99fa6
Optimize bit counting operations.
jacobly0 Mar 20, 2022
dd79998
Fix crashes.
jacobly0 Mar 20, 2022
2607f63
Update tests.
jacobly0 Mar 21, 2022
25d5edf
Implement, test, and fix missing intrinsics.
jacobly0 Mar 26, 2022
e89048c
Implement fixed point badly.
jacobly0 Mar 28, 2022
beb28d4
Fixed bug optimizing compares.
jacobly0 Mar 28, 2022
6d32b7b
Call ctlz with zero input.
jacobly0 Mar 28, 2022
fdb4955
Remove debug print.
jacobly0 May 15, 2022
6e825c4
Add option for escaping non-printable characters.
jacobly0 May 22, 2022
f72b436
Add all of the missing instructions andfix size computations.
jacobly0 May 23, 2022
9a9365a
Test instruction size computation.
jacobly0 May 25, 2022
5afc6a8
Add branch selection.
jacobly0 May 25, 2022
84bf0d4
Actually store the tiflags attribute somewhere.
jacobly0 May 27, 2022
b102b04
Fix code style.
jacobly0 May 27, 2022
f0a74f0
Add some missing implicit operands.
jacobly0 May 27, 2022
8b136ac
Optimize branch selector to not need a sparse set.
jacobly0 May 27, 2022
781d02a
Change TSFlags format again to correctly compute instruction sizes in…
jacobly0 May 28, 2022
894ea7b
Run Z80 specific tests after building.
jacobly0 May 28, 2022
77c6f95
Fix overflow lowering bswap.
jacobly0 May 29, 2022
2f6e6c6
Add missing tests.
jacobly0 May 29, 2022
d603efa
Fix Z80 mangling.
jacobly0 May 29, 2022
296a085
Fix alias link-time dependency bug.
jacobly0 Jun 1, 2022
013448c
Optimize bswap.
jacobly0 Jun 1, 2022
846a6bf
Fix identity combine.
jacobly0 Jun 2, 2022
705a23c
Fix some interrupt stuff.
jacobly0 Jun 4, 2022
92f4371
Fix CI build.
jacobly0 Jun 4, 2022
2503142
Fix Z80 ELF defines.
jacobly0 Jun 4, 2022
c69864a
Fold conditions through wider operations.
jacobly0 Jun 5, 2022
22d81a0
Code cleanup.
jacobly0 Jun 5, 2022
28d2954
Fix instruction side effects.
jacobly0 Jun 5, 2022
ce5da1e
Fix folding bug.
jacobly0 Jun 5, 2022
7bd7423
Fix crash introduced by BIT operand reordering.
jacobly0 Jun 5, 2022
00990e2
Fix crash constraining subreg operands.
jacobly0 Jun 5, 2022
c592256
Fix crash legalizing undef bool.
jacobly0 Jun 5, 2022
2080cba
Fix crash with previous constraining subreg operands fix.
jacobly0 Jun 5, 2022
962d6f8
Fix instruction names that can't take index half registers.
jacobly0 Jun 6, 2022
8242764
Opportunistically optimize byte immediates to registers.
jacobly0 Jun 6, 2022
2c9b882
Fix COPY folding.
jacobly0 Jun 12, 2022
5fe9722
Fix pseudo-instruction name case.
jacobly0 Jun 12, 2022
a76b7e8
Also optimize 0 byte immediates to registers.
jacobly0 Jun 12, 2022
03f756f
Optimize sla a to add a,a.
jacobly0 Jun 27, 2022
fe0adb1
Add port address spaces.
jacobly0 Jul 2, 2022
cf32549
Fix align.
jacobly0 Jul 20, 2022
0f6341e
Fix missing case in machine late opt.
jacobly0 Aug 4, 2022
f478b7b
Fix missing reg class check.
jacobly0 Aug 5, 2022
88726bb
Add missing implicit operand.
jacobly0 Feb 1, 2023
6bd1450
Fix CI.
jacobly0 Feb 1, 2023
1fb7148
Implement va_copy.
jacobly0 Feb 4, 2023
c67cef6
Build more versions in CI (compatibility with older OSes)
adriweb Jun 21, 2023
07ff077
fix ci
jacobly0 Oct 29, 2023
679cd84
fix horrible assumptions in clang codegen
jacobly0 Nov 6, 2023
672930a
Remove assertion that isn't always valid
jacobly0 Nov 6, 2023
5692470
Implement legalization for some operations
jacobly0 Nov 16, 2023
667ea5a
[GlobalISel] fix incorrect argument order
jacobly0 Nov 16, 2023
ea531af
Implement 48-bit libcalls
jacobly0 Dec 13, 2023
9256cbd
ci: disable macos-11
adriweb Nov 23, 2023
1c8ea4e
[clang] SyntaxWarning: invalid escape sequence '\s' with Python3.12
adriweb Jul 22, 2024
4788937
fix CI: split linuxmac/win and adjust things (no tests on win)
adriweb Jul 16, 2024
3de989a
Add missing logic for some 48-bit libcalls
calc84maniac Nov 19, 2024
f6ca79a
Revert new add/sub narrowing conditional to avoid test failures for now
calc84maniac Nov 19, 2024
c646831
[CI] update Ubuntu 20.04 to 22.04 and use v4 artifact related actions
adriweb Feb 12, 2025
54d79a5
[rebase fixes] fix z80 Target
adriweb Feb 27, 2025
3b4a160
[rebase fixes] fix GlobalISEL
adriweb Feb 27, 2025
2df38fc
[rebase fixes] fix cc1
adriweb Feb 27, 2025
abc64a0
[rebase fixes] misc fixes
adriweb Feb 27, 2025
c87f4d0
[CI] add rebase-v15 to CI
adriweb Feb 27, 2025
7d7afbe
Add option for GAS-style directives
atirut-w Feb 16, 2025
dd0559c
a few changes
mateoconlechuga Apr 15, 2025
bd5a60c
Fix 64-bit float libcalls which use standard library functions
calc84maniac Mar 27, 2025
0c57895
Define CLZ behavior for zero input on Z80
calc84maniac Apr 8, 2025
d1ad5e5
Prevent despeculation of count-zero operations on Z80
calc84maniac Apr 14, 2025
0b05aee
test: z80 codegen test updates.
adriweb Apr 15, 2025
ed66658
[Z80] improve gas syntax
mateoconlechuga Apr 16, 2025
5318730
More Z80MCAsmInfo fixes
adriweb Apr 16, 2025
628e006
Fix `assume adl=1` on Z80
atirut-w Apr 23, 2025
c195886
Fix fixed-length character arrays producing invalid GAS syntax
atirut-w Apr 21, 2025
390fd31
Correct alignment directive
atirut-w Apr 21, 2025
7da9970
Use tabs for ADL directives
atirut-w Apr 21, 2025
5d10ecb
Do not null out zero directive for GAS
atirut-w Apr 21, 2025
26c058e
String fix v2
atirut-w Apr 23, 2025
1dacf03
Enable interrupts before returning from interrupt handler
atirut-w Apr 29, 2025
e1486dc
Add CTTZ libcalls and use them on Z80 targets
calc84maniac Apr 28, 2025
db91fd7
adjust CI
adriweb Jun 21, 2025
e04f59c
build: explicitly disable building with zstd
adriweb Sep 11, 2025
757a027
SmallVector.h: add stdint include. Fix #8
adriweb Sep 16, 2025
6593d86
ci: windows: disable old wmic-based disk usage fetching.
adriweb Sep 16, 2025
5fc6989
Add pull requests to github workflows
calc84maniac Sep 18, 2025
1cbcc3b
Fix assertion failure on liveness analysis of comparison pseudo-instr…
calc84maniac Sep 18, 2025
629b8d7
Fix invalid comparison codegen for inlined memmove, optimize LDDR path
calc84maniac Sep 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 0 additions & 5 deletions .github/PULL_REQUEST_TEMPLATE.md

This file was deleted.

1 change: 0 additions & 1 deletion .github/workflows/README.md

This file was deleted.

37 changes: 0 additions & 37 deletions .github/workflows/clang-tests.yml

This file was deleted.

13 changes: 0 additions & 13 deletions .github/workflows/closed-issues.yml

This file was deleted.

202 changes: 202 additions & 0 deletions .github/workflows/cmake-windows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
name: "CMake Windows"

on:
push:
branches: [z80]
pull_request:
branches: [z80]

jobs:
build-llvm:
needs: []
strategy:
fail-fast: false
matrix:
runs-on: [windows-latest]
build-type: [Release]
runs-on: ${{matrix.runs-on}}
steps:
- name: Bootstrap Build Environment
run: "cmake -E echo >> $env:GITHUB_ENV ENV=env:"
- name: Prepare Build Environment
run: |
git config --global core.autocrlf false
$path = vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath
cmake -E echo >> $${{env.ENV}}GITHUB_PATH "$(join-path $path 'VC\Tools\Llvm\bin')"
cmd /s /c >> $${{env.ENV}}GITHUB_ENV """$(join-path $path 'Common7\Tools\vsdevcmd.bat')"" > nul && set"
cmake -E echo >> $${{env.ENV}}GITHUB_ENV CC=clang-cl
cmake -E echo >> $${{env.ENV}}GITHUB_ENV CXX=clang-cl
cmake -E echo >> $${{env.ENV}}GITHUB_ENV EXE=.exe
cmake -E echo >> $${{env.ENV}}GITHUB_ENV PY=.py
- name: Prepare Build Configuration
if: matrix.build-type == 'Release'
run: cmake -E echo >> $${{env.ENV}}GITHUB_ENV CMAKE_CONFIG=-DLLVM_TARGETS_TO_BUILD:STRING= -DLLVM_ENABLE_LTO:STRING=OFF -DLLVM_STATIC_LINK_CXX_STDLIB:BOOL=ON

- name: Prepare Build Environment
if: matrix.build-type == 'Debug'
run: cmake -E echo >> $${{env.ENV}}GITHUB_ENV DYLIB=ON
- name: Prepare Build Environment
if: matrix.build-type != 'Debug'
run: cmake -E echo >> $${{env.ENV}}GITHUB_ENV DYLIB=OFF

- name: Install Build Dependencies
run: pip install ninja

- name: Checkout Project
uses: actions/checkout@v4
with:
path: src
- name: Sparse Checkout
working-directory: src
run: |
git version
git sparse-checkout init --cone
git sparse-checkout set cmake third-party llvm clang

- name: Configure LLVM
run: cmake -Ssrc/llvm -Bbuild -GNinja -DCMAKE_BUILD_TYPE:STRING=${{matrix.build-type}} ${{env.CMAKE_CONFIG}} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_INSTALL_PREFIX:PATH="${{github.workspace}}/llvm" -DCMAKE_C_COMPILER:FILEPATH="${{env.CC}}" -DCMAKE_C_FLAGS:STRING="${{env.CFLAGS}}" -DCMAKE_CXX_COMPILER:FILEPATH="${{env.CXX}}" -DCMAKE_CXX_FLAGS:STRING="${{env.CXXFLAGS}}" -DLLVM_PARALLEL_LINK_JOBS:STRING=1 -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD:STRING="Z80" -DLLVM_TARGET_ARCH="ez80" -DLLVM_LINK_LLVM_DYLIB:BOOL=${{env.DYLIB}} -DLLVM_ENABLE_ZSTD:BOOL=OFF -DLLVM_INCLUDE_EXAMPLES:BOOL=OFF -DLLVM_INCLUDE_TESTS:BOOL=OFF -DLLVM_TOOL_DSYMUTIL_BUILD:BOOL=OFF -DLLVM_TOOL_GOLD_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_AS_FUZZER_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_CFI_VERIFY_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_CVTRES_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_DWP_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_EXEGESIS_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_GSYMUTIL_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_IFS_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_ISEL_FUZZER_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_ITANIUM_DEMANGLE_FUZZER_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_JITLINK_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_JITLISTENER_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_LIPO_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_LTO2_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_LTO_BUILD:BOOL=ON -DLLVM_TOOL_LLVM_MCA_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_MC_ASSEMBLE_FUZZER_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_MC_DISASSEMBLE_FUZZER_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_MICROSOFT_DEMANGLE_FUZZER_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_MT_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_OPT_FUZZER_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_PDBUTIL_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_PROFDATA_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_RC_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_SPECIAL_CASE_LIST_FUZZER_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_UNDNAME_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_XRAY_BUILD:BOOL=OFF -DLLVM_TOOL_LLVM_YAML_NUMERIC_PARSER_FUZZER_BUILD:BOOL=OFF -DLLVM_TOOL_SANCOV_BUILD:BOOL=OFF -DLLVM_TOOL_SANSTATS_BUILD:BOOL=OFF -DLLVM_TOOL_VFABI_DEMANGLE_FUZZER_BUILD:BOOL=OFF
- name: Build LLVM
run: cmake --build build --config ${{matrix.build-type}}

- name: Install LLVM
run: |
cmake --build build --config ${{matrix.build-type}} --target install
cmake -E copy build/include/llvm/Config/config.h llvm/include/llvm/Config
- name: Upload LLVM
uses: actions/upload-artifact@v4
with:
name: LLVM${{matrix.runs-on}}${{matrix.build-type}}
path: llvm

- name: Install ez80-link
run: cmake -E copy llvm/bin/llvm-link${{env.EXE}} ez80-link${{env.EXE}}
- name: Upload ez80-link
uses: actions/upload-artifact@v4
with:
name: ez80-link${{env.EXE}}-${{matrix.runs-on}}${{matrix.build-type}}
path: ez80-link${{env.EXE}}

- name: Install ez80-lto
run: cmake -E copy llvm/bin/llvm-lto${{env.EXE}} ez80-lto${{env.EXE}}
- name: Upload ez80-lto
uses: actions/upload-artifact@v4
with:
name: ez80-lto${{env.EXE}}-${{matrix.runs-on}}${{matrix.build-type}}
path: ez80-lto${{env.EXE}}

- name: Install ez80-lto2
run: cmake -E copy llvm/bin/llvm-lto2${{env.EXE}} ez80-lto2${{env.EXE}}
- name: Upload ez80-lto2
uses: actions/upload-artifact@v4
with:
name: ez80-lto2${{env.EXE}}-${{matrix.runs-on}}${{matrix.build-type}}
path: ez80-lto2${{env.EXE}}

# - name: Disk Usage
# run: wmic logicaldisk get size,freespace,caption

build-clang:
needs: [build-llvm]
strategy:
fail-fast: false
matrix:
runs-on: [windows-latest]
build-type: [Release]
runs-on: ${{matrix.runs-on}}
steps:
- name: Bootstrap Build Environment
run: "cmake -E echo >> $env:GITHUB_ENV ENV=env:"
- name: Prepare Build Environment
run: |
git config --global core.autocrlf false
$path = vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath
cmake -E echo >> $${{env.ENV}}GITHUB_PATH "$(join-path $path 'VC\Tools\Llvm\bin')"
cmd /s /c >> $${{env.ENV}}GITHUB_ENV """$(join-path $path 'Common7\Tools\vsdevcmd.bat')"" > nul && set"
cmake -E echo >> $${{env.ENV}}GITHUB_ENV CC=clang-cl
cmake -E echo >> $${{env.ENV}}GITHUB_ENV CXX=clang-cl
cmake -E echo >> $${{env.ENV}}GITHUB_ENV EXE=.exe
- name: Prepare Build Configuration
if: matrix.build-type == 'Release'
run: cmake -E echo >> $${{env.ENV}}GITHUB_ENV CMAKE_CONFIG=-DLLVM_TARGETS_TO_BUILD:STRING= -DLLVM_ENABLE_LTO:STRING=OFF -DLLVM_STATIC_LINK_CXX_STDLIB:BOOL=ON

- name: Prepare Build Environment
if: matrix.build-type == 'Debug'
run: cmake -E echo >> $${{env.ENV}}GITHUB_ENV DYLIB=ON
- name: Prepare Build Environment
if: matrix.build-type != 'Debug'
run: cmake -E echo >> $${{env.ENV}}GITHUB_ENV DYLIB=OFF

- name: Install Build Dependencies
run: pip install ninja

- name: Checkout Project
uses: actions/checkout@v4
with:
path: src
- name: Sparse Checkout
working-directory: src
run: |
git version
git sparse-checkout init --cone
git sparse-checkout set cmake third-party clang

- name: Download LLVM
uses: actions/download-artifact@v4
with:
name: LLVM${{matrix.runs-on}}${{matrix.build-type}}
path: llvm

- name: Configure Clang
run: cmake -Ssrc/clang -Bbuild -GNinja -DCMAKE_BUILD_TYPE:STRING=${{matrix.build-type}} ${{env.CMAKE_CONFIG}} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_INSTALL_PREFIX:PATH="${{github.workspace}}/clang" -DCMAKE_C_COMPILER:FILEPATH="${{env.CC}}" -DCMAKE_C_FLAGS:STRING="${{env.CFLAGS}}" -DCMAKE_CXX_COMPILER:FILEPATH="${{env.CXX}}" -DCMAKE_CXX_FLAGS:STRING="${{env.CXXFLAGS}}" -DLLVM_DIR:PATH="${{github.workspace}}/llvm/lib/cmake/llvm" -DCLANG_LINK_CLANG_DYLIB:BOOL=${{env.DYLIB}} -DLLVM_INCLUDE_EXAMPLES:BOOL=OFF -DLLVM_INCLUDE_TESTS:BOOL=OFF -DCLANG_TOOL_AMDGPU_ARCH_BUILD:BOOL=OFF -DCLANG_TOOL_APINOTES_TEST_BUILD:BOOL=OFF -DCLANG_TOOL_ARCMT_TEST_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_CHECK_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_DIFF_BUILD:BOOL=ON -DCLANG_TOOL_CLANG_EXTDEF_MAPPING_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_FORMAT_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_FORMAT_VS_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_FUZZER_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_IMPORT_TEST_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_LINKER_WRAPPER_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_NVLINK_WRAPPER_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_OFFLOAD_BUNDLER_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_OFFLOAD_PACKAGER_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_OFFLOAD_WRAPPER_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_REFACTOR_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_RENAME_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_REPL_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_SCAN_DEPS_BUILD:BOOL=OFF -DCLANG_TOOL_CLANG_SHLIB_BUILD:BOOL=OFF -DCLANG_TOOL_C_ARCMT_TEST_BUILD:BOOL=ON -DCLANG_TOOL_C_INDEX_TEST_BUILD:BOOL=OFF -DCLANG_TOOL_DIAGTOOL_BUILD:BOOL=OFF -DCLANG_TOOL_DRIVER_BUILD:BOOL=ON -DCLANG_TOOL_LIBCLANG_BUILD:BOOL=ON -DCLANG_TOOL_SCAN_BUILD_BUILD:BOOL=OFF -DCLANG_TOOL_SCAN_BUILD_PY_BUILD:BOOL=OFF -DCLANG_TOOL_SCAN_VIEW_BUILD:BOOL=OFF

- name: Build Clang
run: cmake --build build --config ${{matrix.build-type}}

- name: Install Clang
run: cmake --build build --config ${{matrix.build-type}} --target install
- name: Upload Clang
uses: actions/upload-artifact@v4
with:
name: Clang${{matrix.runs-on}}${{matrix.build-type}}
path: clang

- name: Install ez80-clang
run: cmake -E copy clang/bin/clang${{env.EXE}} ez80-clang${{env.EXE}}
- name: Test ez80-clang
run: cmake -E echo "void test(void){}" | ./ez80-clang${{env.EXE}} -S -xc - -o -
- name: Upload ez80-clang
uses: actions/upload-artifact@v4
with:
name: ez80-clang${{env.EXE}}-${{matrix.runs-on}}${{matrix.build-type}}
path: ez80-clang${{env.EXE}}

# - name: Disk Usage
# run: wmic logicaldisk get size,freespace,caption

nightly:
runs-on: ubuntu-latest
needs: [build-clang]
if: github.ref == 'refs/heads/z80' && github.event_name != 'pull_request'

steps:
- name: Download Windows ez80-clang
uses: actions/download-artifact@v4
with:
name: ez80-clang.exe-windows-latestRelease
path: ${{github.workspace}}
- name: Download Windows ez80-link
uses: actions/download-artifact@v4
with:
name: ez80-link.exe-windows-latestRelease
path: ${{github.workspace}}
- name: zip Windows Artifacts
run: |
zip ez80-clang-link_windows_nightly.zip ez80-clang.exe ez80-link.exe
rm ez80-clang.exe ez80-link.exe
- name: Update nightly release
uses: pyTooling/Actions/releaser@main
with:
tag: nightly
token: ${{secrets.GITHUB_TOKEN}}
files: |
ez80-clang-link_windows_nightly.zip
Loading
Loading