Closed PhilippvK closed 2 years ago
Performance Statistics
Status for the gcc Just-In-Time Engine (for commit 8d5769f8): 🥇 New best performance! Current dhrystone MIPS for gcc JIT : 39.05 Previous best for gcc JIT (recorded in commit 8d5769f8): 39.05, difference 9.21%
Status for the llvm Just-In-Time Engine (for commit 8d5769f8): 🥇 New best performance! Current dhrystone MIPS for llvm JIT : 21.86 Previous best for llvm JIT (recorded in commit 8d5769f8): 21.86, difference 1.58%
Status for the tcc Just-In-Time Engine (for commit 8d5769f8): 🥇 New best performance! Current dhrystone MIPS for tcc JIT : 29.46 Previous best for tcc JIT (recorded in commit 8d5769f8): 29.46, difference 7.70%
This comment was created automatically, please do not change!
we should also add this check for the function that creates segments from the config: https://github.com/tum-ei-eda/etiss/blob/master/src/SimpleMemSystem.cpp#L93
but that one should cause a FATALERROR since such a configuration would be nonsense.
In addition to checking the memory_size
, we also need to check the segment type. The conflicting segment is of type PT_LOPROC
, only segments of type PT_LOAD
are meant to be loaded into memory.
see: https://stackoverflow.com/questions/10871706/why-segments-in-elf-file-can-overlap http://refspecs.linuxbase.org/elf/gabi4+/ch5.pheader.html
A recent version of the RISCV GCC Toolchain caused ETISS crashes due to an unexpected new memory segment added to the ELF:
This PR adds a check to skip empty segments in the
SimpleMemSystem
(as recommended by @rafzi)