This is an archive of the discontinued LLVM Phabricator instance.

[llvm-exegesis] Add predefined floating point values so we can test impact of special values on latency.
ClosedPublic

Authored by gchatelet on Sep 10 2018, 8:15 AM.

Details

Summary

This will be useful to generate many configurations and test instruction regimes (NaN, Inf, subnormal, normal).

Diff Detail

Event Timeline

gchatelet created this revision.Sep 10 2018, 8:15 AM

I suppose that will help de-flake the latency measurements? (i *think* i have only seen the fp ops being flaky)

I suppose that will help de-flake the latency measurements? (i *think* i have only seen the fp ops being flaky)

Yes indeed. For instance SSE/AVX operations may have different regimes depending on their inputs.

Are these the only values you're going to test? For instance many fdiv units have fast paths for some (+/-)pow2 divisors.

Are these the only values you're going to test? For instance many fdiv units have fast paths for some (+/-)pow2 divisors.

I intend to add more as we see fit, but TWO sounds like a useful addition already.

gchatelet updated this revision to Diff 164850.Sep 11 2018, 5:07 AM
  • Add TWO as a predefined floating point value.
courbet added inline comments.Sep 12 2018, 1:25 AM
tools/llvm-exegesis/lib/RegisterValue.cpp
2

missing header

7

getFloatValue

tools/llvm-exegesis/lib/RegisterValue.h
36

style: getFloatValueAsInteger

36

I would call this bitcastFloatValue or something like this.

  • Add TWO as a predefined floating point value.

Cheers - no more comments.

gchatelet updated this revision to Diff 165729.Sep 17 2018, 2:37 AM
  • Address courbet's comments
gchatelet marked 4 inline comments as done.Sep 17 2018, 2:38 AM
courbet accepted this revision.Sep 17 2018, 2:58 AM
This revision is now accepted and ready to land.Sep 17 2018, 2:58 AM
This revision was automatically updated to reflect the committed changes.