@@ -78,39 +78,57 @@ jobs:
78
78
config : --enable-middle-end=flambda2 --disable-warn-error
79
79
os : macos-latest
80
80
81
+ - name : flambda2_macos_arm64_runtime5_irc
82
+ config : --enable-middle-end=flambda2 --enable-runtime5 --disable-warn-error
83
+ os : macos-latest
84
+ build_ocamlparam : ' _,w=-46,regalloc=irc'
85
+ ocamlparam : ' _,w=-46,regalloc=irc'
86
+
87
+ - name : flambda2_macos_arm64_runtime5_ls
88
+ config : --enable-middle-end=flambda2 --enable-runtime5 --disable-warn-error
89
+ os : macos-latest
90
+ build_ocamlparam : ' _,w=-46,regalloc=ls'
91
+ ocamlparam : ' _,w=-46,regalloc=ls'
92
+
93
+ - name : flambda2_macos_arm64_gi
94
+ config : --enable-middle-end=flambda2 --disable-warn-error
95
+ os : macos-latest
96
+ build_ocamlparam : ' _,w=-46,regalloc=gi'
97
+ ocamlparam : ' _,w=-46,regalloc=gi'
98
+
81
99
- name : irc
82
100
config : --enable-middle-end=flambda2
83
101
os : ubuntu-latest
84
- build_ocamlparam : ' _,w=-46,regalloc=irc,regalloc-param=SPLIT_LIVE_RANGES:on,regalloc-param=IRC_SPILLING_HEURISTICS:flat-uses,regalloc-validate=1 '
85
- ocamlparam : ' _,w=-46,regalloc=irc,regalloc-param=SPLIT_LIVE_RANGES:on,regalloc-param=IRC_SPILLING_HEURISTICS:flat-uses,regalloc-validate=1 '
102
+ build_ocamlparam : ' _,w=-46,regalloc=irc'
103
+ ocamlparam : ' _,w=-46,regalloc=irc'
86
104
check_arch : true
87
105
88
106
- name : irc_polling
89
107
config : --enable-middle-end=flambda2 --enable-poll-insertion
90
108
os : ubuntu-latest
91
- build_ocamlparam : ' _,w=-46,regalloc=irc,regalloc-param=SPLIT_LIVE_RANGES:on,regalloc-param=IRC_SPILLING_HEURISTICS:flat-uses,regalloc-validate=1 '
92
- ocamlparam : ' _,w=-46,regalloc=irc,regalloc-param=SPLIT_LIVE_RANGES:on,regalloc-param=IRC_SPILLING_HEURISTICS:flat-uses,regalloc-validate=1 '
109
+ build_ocamlparam : ' _,w=-46,regalloc=irc'
110
+ ocamlparam : ' _,w=-46,regalloc=irc'
93
111
check_arch : true
94
112
95
113
- name : irc_frame_pointers
96
114
config : --enable-middle-end=flambda2 --enable-frame-pointers
97
115
os : ubuntu-latest
98
- build_ocamlparam : ' _,w=-46,regalloc=irc,regalloc-param=SPLIT_LIVE_RANGES:on,regalloc-param=IRC_SPILLING_HEURISTICS:flat-uses,regalloc-validate=1 '
99
- ocamlparam : ' _,w=-46,regalloc=irc,regalloc-param=SPLIT_LIVE_RANGES:on,regalloc-param=IRC_SPILLING_HEURISTICS:flat-uses,regalloc-validate=1 '
116
+ build_ocamlparam : ' _,w=-46,regalloc=irc'
117
+ ocamlparam : ' _,w=-46,regalloc=irc'
100
118
check_arch : true
101
119
102
120
- name : ls
103
121
config : --enable-middle-end=flambda2
104
122
os : ubuntu-latest
105
- build_ocamlparam : ' _,w=-46,regalloc=ls,regalloc-param=SPLIT_LIVE_RANGES:on,regalloc-param=LS_ORDER:layout,regalloc-validate=1 '
106
- ocamlparam : ' _,w=-46,regalloc=ls,regalloc-param=SPLIT_LIVE_RANGES:on,regalloc-param=LS_ORDER:layout,regalloc-validate=1 '
123
+ build_ocamlparam : ' _,w=-46,regalloc=ls'
124
+ ocamlparam : ' _,w=-46,regalloc=ls'
107
125
check_arch : true
108
126
109
127
- name : gi
110
128
config : --enable-middle-end=flambda2
111
129
os : ubuntu-latest
112
- build_ocamlparam : ' _,w=-46,regalloc=gi,regalloc-param=SPLIT_LIVE_RANGES:on,regalloc-param=GI_PRIORITY_HEURISTICS:interval-length,regalloc-param=GI_SELECTION_HEURISTICS:first-available,regalloc-param=GI_SPILLING_HEURISTICS:flat-uses,regalloc-validate=1, cfg-cse-optimize=1'
113
- ocamlparam : ' _,w=-46,regalloc=gi,regalloc-param=SPLIT_LIVE_RANGES:on,regalloc-param=GI_PRIORITY_HEURISTICS:interval-length,regalloc-param=GI_SELECTION_HEURISTICS:first-available,regalloc-param=GI_SPILLING_HEURISTICS:flat-uses,regalloc-validate=1, cfg-cse-optimize=1'
130
+ build_ocamlparam : ' _,w=-46,regalloc=gi,cfg-cse-optimize=1'
131
+ ocamlparam : ' _,w=-46,regalloc=gi,cfg-cse-optimize=1'
114
132
check_arch : true
115
133
116
134
- name : cfg-selection
@@ -120,6 +138,13 @@ jobs:
120
138
ocamlparam : ' _,w=-46,regalloc=cfg,cfg-cse-optimize=1,cfg-selection=1,cfg-zero-alloc-checker=1'
121
139
check_arch : true
122
140
141
+ - name : vectorizer
142
+ config : --enable-middle-end=flambda2
143
+ os : ubuntu-latest
144
+ build_ocamlparam : ' _,w=-46,regalloc=cfg,vectorize=1'
145
+ ocamlparam : ' _,w=-46,regalloc=cfg,vectorize=1'
146
+ check_arch : true
147
+
123
148
env :
124
149
J : " 3"
125
150
run_testsuite : " true"
@@ -229,11 +254,20 @@ jobs:
229
254
--with-dune=$GITHUB_WORKSPACE/ocaml-414/_install/bin/dune \
230
255
${{ matrix.config }}
231
256
257
+ - name : Setup for saving core files (not for macOS at the moment)
258
+ if : matrix.os != 'macos-latest'
259
+ run : |
260
+ sudo mkdir /cores
261
+ sudo chmod 777 /cores
262
+ # Core filenames will be of the form executable.pid.timestamp:
263
+ sudo bash -c 'echo "/cores/%e.%p.%t" > /proc/sys/kernel/core_pattern'
264
+
232
265
- name : Build, install and test Flambda backend
233
266
working-directory : flambda_backend
234
267
run : |
235
268
if [ $run_testsuite = true ]; then target=ci; else target=compiler; fi
236
269
export PATH=$GITHUB_WORKSPACE/ocaml-414/_install/bin:$PATH
270
+ ulimit -c unlimited
237
271
make $target \
238
272
|| (if [ $expected_fail = true ]; then exit 0; else exit 1; fi);
239
273
env :
@@ -247,6 +281,25 @@ jobs:
247
281
if : matrix.check_arch == true
248
282
run : |
249
283
PATH=$GITHUB_WORKSPACE/ocaml-414/_install/bin:$PATH make check_all_arches
284
+
285
+ - uses : actions/upload-artifact@v4
286
+ if : ${{ failure() }} && matrix.os != 'macos-latest'
287
+ with :
288
+ name : cores-${{ github.sha }}
289
+ path : /cores
290
+
291
+ - uses : actions/upload-artifact@v4
292
+ if : ${{ failure() }} && matrix.os != 'macos-latest'
293
+ with :
294
+ name : _build-${{ github.sha }}
295
+ path : $GITHUB_WORKSPACE/_build
296
+
297
+ - uses : actions/upload-artifact@v4
298
+ if : ${{ failure() }} && matrix.os != 'macos-latest'
299
+ with :
300
+ name : _runtest-${{ github.sha }}
301
+ path : $GITHUB_WORKSPACE/_runtest
302
+
250
303
concurrency :
251
304
group : ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
252
305
cancel-in-progress : true
0 commit comments