8000 Does this whole optimization machinery really only improve performance by 25%? · Issue #37 · libfirm/libfirm · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Does this whole optimization machinery really only improve performance by 25%? #37
Open
@rochus-keller

Description

@rochus-keller

What I did:

  1. Downloaded and built cparser 1.22.1 and libfirm 1.22 (I had to use commit 20c5dd7 of libfirm to avoid the Python issue); my test machine is a HP EliteBook 2530p with 4 GB RAM and 32 bit Linux kernel 3.13.
  2. Run this benchmark with different optimization levels:
    awfy_c99_benchmark.tar.gz. I used the Oberon+ version of the Are-we-fast-yet benchmark suite, transpiled to C99. The benchmark depends only on the Boehm GC and the standard library. The ia32 backend of libfirm was in charge.

What I measured:

There is a spreadsheet with the detailed results, and here is a brief summary:

  • When compared to gcc 4.8 (both -O2), the executable generated by cparser/libfirm is only ~8% slower than the gcc generated one, but the build with cparser/libfirm takes factor 4.3 longer than with gcc.
  • When comparing the cparser/libfirm optimization levels -O3 and -O0, then the executable built with -O3 is only ~25% faster than the one built with -O0 (while -O0 switches off all optimizations, even constant folding).

That's a pretty small performance improvement compared to the estimated development effort (~123 kSLOC plain libfirm with only the ia32 backend, developed over ~16 years).

Has anyone else measured different results? What am I doing wrong?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0