Skip to content

Commit 7941f08

Browse files
committed
Update README
Update to racfed+eddi test names
1 parent 74a9dac commit 7941f08

File tree

2 files changed

+29
-17
lines changed

2 files changed

+29
-17
lines changed

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ The toolchain has been tested with the following versions:
1313
- CMake 3.22.1
1414
- LLVM 16.0.0
1515

16+
> RASM, RACFED and EDDI algorithm are already patched to LLVM 21.
17+
> Patching of the other algorithms will is being done in branch patch-16-to-21.
18+
1619
During the development of ASPIS, done mostly on LLVM 15, we discovered a bug in the [`splitBasicBlock()`](https://llvm.org/doxygen/classllvm_1_1BasicBlock.html#a2bc5caaabd6841e4ab97237ebcaeb86d) procedure. The bug has been fixed in LLVM 16, so we recommend using it rather than applying the patch to the previous versions.
1720

1821
## Building
@@ -80,6 +83,9 @@ ASPIS does not compile the annotated function or does not duplicate the annotate
8083
## Built-in compilation pipeline
8184
`aspis.sh` is a simple command-line interface that allows users to run the entire compilation pipeline specifying a few command-line arguments. The arguments that are not recognised are passed directly to the front-end, hence all the `clang` arguments are admissible.
8285
86+
> RASM, RACFED and EDDI algorithm are already patched to LLVM 21.
87+
> Patching of the other algorithms will is being done in branch patch-16-to-21.
88+
8389
### Options
8490
- `-h`, `--help`: Display available options.
8591
- `-o <file>`: Write the compilation output to `<file>`.
@@ -95,6 +101,7 @@ ASPIS does not compile the annotated function or does not duplicate the annotate
95101
- `--cfcss`: **(Default)** Enable CFCSS.
96102
- `--rasm`: Enable RASM.
97103
- `--inter-rasm`: Enable inter-RASM with the default signature `-0xDEAD`.
104+
- `--racfed`: Enable RACFED.
98105
99106
### Example
100107
@@ -184,6 +191,11 @@ opt --enable-new-pm=0 -S -load </path/to/ASPIS/>build/passes/libEDDI.so -duplica
184191
clang out.ll -o out.elf
185192
```
186193

194+
> With newer versions of LLVM:
195+
> --enable-new-pm is no longer valid.
196+
> -load has been replaced by -load-pass-plugin=</path/to/ASPIS/>build/passes/lib*.so -passes="passname"
197+
198+
187199
## References
188200
If you are using this tool in scientific works, please cite the following article:
189201
- Davide Baroffio, Federico Reghenzani, and William Fornaciari. 2024. Enhanced Compiler Technology for Software-based Hardware Fault Detection. ACM Trans. Des. Autom. Electron. Syst. 29, 5, Article 91 (September 2024), 23 pages. https://doi.org/10.1145/3660524

testing/config/racfed+eddi.toml

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,101 +1,101 @@
11
[[tests]]
2-
test_name = "racfed_ml_add_eddi"
2+
test_name = "racfed_eddi_ml_add"
33
source_file = "c/multi_instruction/add.c"
44
expected_output = "30"
55
aspis_options = "--eddi --racfed"
66

77
[[tests]]
8-
test_name = "racfed_ml_function_call_eddi"
8+
test_name = "racfed_eddi_ml_function_call"
99
source_file = "c/multi_instruction/function.c"
1010
expected_output = "foo() 25"
1111
aspis_options = "--eddi --racfed"
1212

1313
[[tests]]
14-
test_name = "racfed_preserve_runtime_sig_eddi"
14+
test_name = "racfed_eddi_preserve_runtime_sig"
1515
source_file = "c/multi_instruction/call_less_two.c"
1616
expected_output = "0"
1717
aspis_options = "--eddi --racfed"
1818

1919
[[tests]]
20-
test_name = "racfed_ml_if_then_else_eddi"
20+
test_name = "racfed_eddi_ml_if_then_else"
2121
source_file = "c/multi_instruction/if_then_else.c"
2222
expected_output = "1001"
2323
aspis_options = "--eddi --racfed"
2424

2525
[[tests]]
26-
test_name = "racfed_ml_phi_instruction_eddi"
26+
test_name = "racfed_eddi_ml_phi_instruction"
2727
source_file = "c/multi_instruction/phi.c"
2828
expected_output = "1"
2929
aspis_options = "--eddi --racfed"
3030

3131
[[tests]]
32-
test_name = "racfed_function_pointer_eddi"
32+
test_name = "racfed_eddi_function_pointer"
3333
source_file = "c/control_flow/function_pointer.c"
3434
expected_output = "42"
3535
aspis_options = "--eddi --racfed"
3636

3737
[[tests]]
38-
test_name = "racfed_loop_exit_eddi"
38+
test_name = "racfed_eddi_loop_exit"
3939
source_file = "c/control_flow/loop_exit.c"
4040
expected_output = "2"
4141
aspis_options = "--eddi --racfed"
4242

4343
[[tests]]
44-
test_name = "racfed_nested-branch_eddi"
44+
test_name = "racfed_eddi_n-branch_eddi"
4545
source_file = "c/control_flow/nested-branch.c"
4646
expected_output = "6"
4747
aspis_options = "--eddi --racfed"
4848

4949
[[tests]]
50-
test_name = "racfed_simple-branch_eddi"
50+
test_name = "racfed_eddi_s-branch_eddi"
5151
source_file = "c/control_flow/simple-branch.c"
5252
expected_output = "OK"
5353
aspis_options = "--eddi --racfed"
5454

5555
[[tests]]
56-
test_name = "racfed_switch-case_eddi"
56+
test_name = "racfed_eddi_s-case_eddi"
5757
source_file = "c/control_flow/switch-case.c"
5858
expected_output = "300"
5959
aspis_options = "--eddi --racfed"
6060

6161
[[tests]]
62-
test_name = "racfed_data_dep_branches_eddi"
62+
test_name = "racfed_eddi_data_dep_branches"
6363
source_file = "c/data_duplication_integrity/data_dep_branches.c"
6464
expected_output = "7"
6565
aspis_options = "--eddi --racfed"
6666

6767
[[tests]]
68-
test_name = "racfed_global_var_across_functions_eddi"
68+
test_name = "racfed_eddi_global_var_across_functions"
6969
source_file = "c/data_duplication_integrity/global_var_across_functions.c"
7070
expected_output = "2"
7171
aspis_options = "--eddi --racfed"
7272

7373
[[tests]]
74-
test_name = "racfed_misc_data_dup_eddi"
74+
test_name = "racfed_eddi_misc_data_dup"
7575
source_file = "c/data_duplication_integrity/misc_data_dup.c"
7676
expected_output = "OK"
7777
aspis_options = "--eddi --racfed"
7878

7979
[[tests]]
80-
test_name = "racfed_volatile_io_eddi"
80+
test_name = "racfed_eddi_volatile_io"
8181
source_file = "c/data_duplication_integrity/volatile_io.c"
8282
expected_output = "42"
8383
aspis_options = "--eddi --racfed"
8484

8585
[[tests]]
86-
test_name = "racfed_arit_pipeline_eddi"
86+
test_name = "racfed_eddi_arit_pipeline"
8787
source_file = "c/misc_math/arit_pipeline.c"
8888
expected_output = "3"
8989
aspis_options = "--eddi --racfed"
9090

9191
[[tests]]
92-
test_name = "racfed_mixed_ops_eddi"
92+
test_name = "racfed_eddi_mixed_ops"
9393
source_file = "c/misc_math/mixed_ops.c"
9494
expected_output = "14.5"
9595
aspis_options = "--eddi --racfed"
9696

9797
[[tests]]
98-
test_name = "racfed_xor_cypher_eddi"
98+
test_name = "racfed_eddi_xor_cypher"
9999
source_file = "c/misc_math/xor_cypher.c"
100100
expected_output = "SUCCESS"
101101
aspis_options = "--eddi --racfed"

0 commit comments

Comments
 (0)