-
Notifications
You must be signed in to change notification settings - Fork 112
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Extend basic block without aggressive memory copy
Due to the significant overhead associated with using aggressive memory copy, we opted to use a pointer to the begin of IR array of the basic block we intend to merge, rather than copying whole IR array to the basic block we wish to extend. The performance results obtained from running CoreMark using different implementation strategies for EBB are presented below. As we can see, aggressive memory copy substantially degrades performance. |Test| aggressive memcpy|Compiler | Iterations / Sec |Speedup| |----+------------------+---------+------------------+-------| | BB | |clang-15 | 971.951 | | |----+------------------+---------+------------------+-------| | BB | | gcc-12 | 963.336 | | |----+------------------+---------+------------------+-------| | EBB| O |clang-15 | 1013.070 | +4.2% | |----+------------------+---------+------------------+-------| | EBB| O | gcc-12 | 1020.391 | +6% | |----+------------------+---------+------------------+-------| | EBB| X |clang-15 | 1160.894 | +19.4%| |----+------------------+---------+------------------+-------| | EBB| X | gcc-12 | 1167.938 | +21.2%|
- Loading branch information
Showing
2 changed files
with
123 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters