Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend basic block without aggressive memory copy #121

Merged
merged 1 commit into from
Apr 5, 2023

Commits on Apr 4, 2023

  1. 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%|
    qwe661234 committed Apr 4, 2023
    Configuration menu
    Copy the full SHA
    9b81f4d View commit details
    Browse the repository at this point in the history