tum-ei-eda / etiss

Extendable Translating Instruction Set Simulator
https://tum-ei-eda.github.io/etiss/
Other
29 stars 36 forks source link

add SelectiveSysWrapper and MemMappedPeriph #126

Closed rafzi closed 9 months ago

rafzi commented 1 year ago

SelectiveSysWrapper: Only wraps some of the System calls to avoid unnecessary intermediate calls.

MemMappedPeriph: Currently unused, but useful as a base for lightweight memory mapped peripherals.

The Logger plugin was changed to use the SelectiveSysWrapper, so that it only has to override the dwrite System call. This improves performance by about 10% while the Logger is active.

rafzi commented 1 year ago

The CI issue is a bit puzzling. It complains about:

D:\a\etiss\etiss\src\IntegratedLibrary\errorInjection\Plugin.cpp(155,31): error C2589: 'constant': illegal token on right side of '::' [D:\a\etiss\build\ETISS.vcxproj]

Which refers to:

https://github.com/tum-ei-eda/etiss/blob/52650d03e6ca332f9cfc63242a501fda818f3e1b/src/IntegratedLibrary/errorInjection/Plugin.cpp#L155

It seems related to the issue that some Windows headers define this macro. However, everytime these return codes are referenced, they should include this header which is supposed to take care of that:

https://github.com/tum-ei-eda/etiss/blob/52650d03e6ca332f9cfc63242a501fda818f3e1b/include_c/etiss/jit/ReturnCode.h#L157-L160

This PR doesn't touch any of those files or files that they include.

github-actions[bot] commented 1 year ago

Performance Statistics

Status for the gcc Just-In-Time Engine (for commit 52d835ad): No significant performance change Current dhrystone MIPS for gcc JIT : 91.76 Previous best for gcc JIT (recorded in commit 4d2d26fb): 108.31, difference -15.27%

Status for the llvm Just-In-Time Engine (for commit 52d835ad): Regressed since commit 78716e7f Current dhrystone MIPS for llvm JIT : 24.89 Previous best for llvm JIT (recorded in commit 940dbdd7): 36.11, difference -31.07%

Status for the tcc Just-In-Time Engine (for commit 52d835ad): No significant performance change Current dhrystone MIPS for tcc JIT : 58.54 Previous best for tcc JIT (recorded in commit 40c0b920): 62.38, difference -6.14%

This comment was created automatically, please do not change!

PhilippvK commented 1 year ago

@rafzi Do you know if there are any problems which need to be resolved before this can be merged?

rafzi commented 1 year ago

@PhilippvK no, this is ready to merge