@@ -12,77 +12,103 @@ jobs:
12
12
# Using the patched Valgrind from the KyberSlash paper to detect divisions
13
13
# In case the patch no longer applies after an update, we may want to switch back
14
14
# to stock valgrind added in https://github.com/pq-code-package/mlkem-native/pull/687
15
- name : CT test ${{ matrix.nix-shell }} ${{ matrix.system }}
15
+ name : CT test ${{ matrix.nix-shell.shell }} ${{ matrix.system }}
16
16
strategy :
17
17
fail-fast : false
18
18
max-parallel : 10
19
19
matrix :
20
20
system : [ubuntu-latest, pqcp-arm64]
21
21
nix-shell :
22
- - ci_valgrind-varlat_clang14
23
- - ci_valgrind-varlat_clang15
24
- - ci_valgrind-varlat_clang16
25
- - ci_valgrind-varlat_clang17
26
- - ci_valgrind-varlat_clang18
27
- - ci_valgrind-varlat_clang19
28
- - ci_valgrind-varlat_clang20
29
- - ci_valgrind-varlat_gcc48
30
- - ci_valgrind-varlat_gcc49
31
- - ci_valgrind-varlat_gcc7
32
- - ci_valgrind-varlat_gcc11
33
- - ci_valgrind-varlat_gcc12
34
- - ci_valgrind-varlat_gcc13
35
- - ci_valgrind-varlat_gcc14
22
+ - shell : ci_valgrind-varlat_clang14
23
+ ctllvm : True
24
+ - shell : ci_valgrind-varlat_clang15
25
+ ctllvm : True
26
+ - shell : ci_valgrind-varlat_clang16
27
+ ctllvm : True
28
+ - shell : ci_valgrind-varlat_clang17
29
+ ctllvm : True
30
+ - shell : ci_valgrind-varlat_clang18
31
+ ctllvm : True
32
+ - shell : ci_valgrind-varlat_clang19
33
+ ctllvm : True
34
+ - shell : ci_valgrind-varlat_clang20
35
+ ctllvm : True
36
+ - shell : ci_valgrind-varlat_gcc48
37
+ ctllvm : False
38
+ - shell : ci_valgrind-varlat_gcc49
39
+ ctllvm : False
40
+ - shell : ci_valgrind-varlat_gcc7
41
+ ctllvm : False
42
+ - shell : ci_valgrind-varlat_gcc11
43
+ ctllvm : False
44
+ - shell : ci_valgrind-varlat_gcc12
45
+ ctllvm : False
46
+ - shell : ci_valgrind-varlat_gcc13
47
+ ctllvm : False
48
+ - shell : ci_valgrind-varlat_gcc14
49
+ ctllvm : False
36
50
runs-on : ${{ matrix.system }}
37
51
steps :
38
52
- uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
39
53
- name : Setup nix
40
54
uses : ./.github/actions/setup-shell
41
55
with :
42
56
gh_token : ${{ secrets.GITHUB_TOKEN }}
43
- nix-shell : ${{ matrix.nix-shell }}
57
+ nix-shell : ${{ matrix.nix-shell.name }}
44
58
nix-cache : true
59
+ - name : Build CT-LLVM Plugin
60
+ if : ${{ matrix.nix-shell.ctllvm }}
61
+ run : |
62
+ make -C test/ctllvm
45
63
- name : Build and run test (-Oz)
46
64
# -Oz got introduced in gcc12
47
65
if : ${{ matrix.nix-shell != 'ci_valgrind-varlat_gcc48' && matrix.nix-shell != 'ci_valgrind-varlat_gcc49' && matrix.nix-shell != 'ci_valgrind-varlat_gcc7' && matrix.nix-shell != 'ci_valgrind-varlat_gcc11'}}
48
66
uses : ./.github/actions/ct-test
49
67
with :
50
68
cflags : -Oz -DMLK_KEYGEN_PCT
51
69
valgrind_flags : --variable-latency-errors=yes
70
+ ctllvm : ${{ matrix.nix-shell.ctllvm }}
52
71
- name : Build and run test (-Os)
53
72
uses : ./.github/actions/ct-test
54
73
with :
55
74
cflags : -Os -DMLK_KEYGEN_PCT
56
75
valgrind_flags : --variable-latency-errors=yes
76
+ ctllvm : ${{ matrix.nix-shell.ctllvm }}
57
77
- name : Build and run test (-O3)
58
78
uses : ./.github/actions/ct-test
59
79
with :
60
80
cflags : -O3 -DMLK_KEYGEN_PCT
61
81
valgrind_flags : --variable-latency-errors=yes
82
+ ctllvm : ${{ matrix.nix-shell.ctllvm }}
62
83
- name : Build and run test (-Ofast)
63
84
# -Ofast got deprecated in clang19; -O3 -ffast-math should be used instead
64
85
if : ${{ matrix.nix-shell != 'ci_valgrind-varlat_clang19' && matrix.nix-shell != 'ci_valgrind-varlat_clang20' }}
65
86
uses : ./.github/actions/ct-test
66
87
with :
67
88
cflags : -Ofast -DMLK_KEYGEN_PCT
68
89
valgrind_flags : --variable-latency-errors=yes
90
+ ctllvm : ${{ matrix.nix-shell.ctllvm }}
69
91
- name : Build and run test (-O3 -ffast-math)
70
92
uses : ./.github/actions/ct-test
71
93
with :
72
94
cflags : -O3 -ffast-math -DMLK_KEYGEN_PCT
73
95
valgrind_flags : --variable-latency-errors=yes
96
+ ctllvm : ${{ matrix.nix-shell.ctllvm }}
74
97
- name : Build and run test (-O2)
75
98
uses : ./.github/actions/ct-test
76
99
with :
77
100
cflags : -O2 -DMLK_KEYGEN_PCT
78
101
valgrind_flags : --variable-latency-errors=yes
102
+ ctllvm : ${{ matrix.nix-shell.ctllvm }}
79
103
- name : Build and run test (-O1)
80
104
uses : ./.github/actions/ct-test
81
105
with :
82
106
cflags : -O1 -DMLK_KEYGEN_PCT
83
107
valgrind_flags : --variable-latency-errors=yes
108
+ ctllvm : ${{ matrix.nix-shell.ctllvm }}
84
109
- name : Build and run test (-O0)
85
110
uses : ./.github/actions/ct-test
86
111
with :
87
112
cflags : -O0 -DMLK_KEYGEN_PCT
88
113
valgrind_flags : --variable-latency-errors=yes
114
+ ctllvm : ${{ matrix.nix-shell.ctllvm }}
0 commit comments