This shows you the differences between two versions of the page.
iothings:proiecte:2022sric:ub-benchmark [2023/06/01 22:02] lucian_ioan.popescu [References] |
iothings:proiecte:2022sric:ub-benchmark [2023/06/01 22:09] (current) lucian_ioan.popescu [Running the Benchmarks] |
||
---|---|---|---|
Line 64: | Line 64: | ||
Next I will present all configurations used for this experiment. I used a total of 13 configurations based on various flags that change the behavior of the compiler with regards to exploiting UB. | Next I will present all configurations used for this experiment. I used a total of 13 configurations based on various flags that change the behavior of the compiler with regards to exploiting UB. | ||
- | ^ UB flag ^ Description ^ | + | ^ No ^ UB flag ^ Description ^ |
- | | -fwrapv | Treat signed overflow as two's complement | | + | | 1 | -fwrapv | Treat signed overflow as two's complement | |
- | | -fno-strict-aliasing | Don't use type based alias analysis | | + | | 2 | -fno-strict-aliasing | Don't use type based alias analysis | |
- | | -fstrict-enums | Enable optimizations that take advantage of enum's value range | | + | | 3 | -fstrict-enums | Enable optimizations that take advantage of enum's value range | |
- | | -fno-delete-null-pointer-checks | Assume that programs can safely dereference null pointers | | + | | 4 | -fno-delete-null-pointer-checks | Assume that programs can safely dereference null pointers | |
- | | -fno-finite-loops | Don't assume that all loops are finite | | + | | 5 | -fno-finite-loops | Don't assume that all loops are finite | |
- | | -fconstrain-shift-value | Constrain shift RHS so it doesn't produce undefined results when RHS >= bitwitdh | | + | | 6 | -fconstrain-shift-value | Constrain shift RHS so it doesn't produce undefined results when RHS >= bitwitdh | |
- | | -fno-constrain-bool-value | Don't constrain bool values in {0,1} | | + | | 7 | -fno-constrain-bool-value | Don't constrain bool values in {0,1} | |
- | | all + -O2 | All flags from above + -O2 | | + | | 8 | all + -O2 | All flags from above + -O2 | |
- | | all + -Os | All flags from above + -Os | | + | | 9 | all + -Os | All flags from above + -Os | |
- | | base + -O2 | No flag from above + -O2 | | + | | 10 | base + -O2 | No flag from above + -O2 | |
- | | base + -Os | No flag from above + -Os | | + | | 11 | base + -Os | No flag from above + -Os | |
- | | -fno-use-default-alignment | Use alignment of one for all memory operations | | + | | 12 | -fno-use-default-alignment | Use alignment of one for all memory operations | |
==== Results ==== | ==== Results ==== |