This is an archive of the discontinued LLVM Phabricator instance.

[llvm-exegesis] Finish plumbing the `Config` field.
ClosedPublic

Authored by courbet on Oct 8 2019, 12:04 AM.

Details

Summary

Right now there are no snippet generators that emit the Config Field,
but I plan to add it to investigate LEA operands for PR32326.

What was broken was:

  • Config Was not propagated up until the BenchmarkResult::Key.
  • Clustering should really consider different configs as measuring different things, so we should stabilize on (Opcode, Config) instead of just Opcode.

Diff Detail

Event Timeline

courbet created this revision.Oct 8 2019, 12:04 AM
Herald added a project: Restricted Project. · View Herald TranscriptOct 8 2019, 12:04 AM
Herald added a subscriber: tschuett. · View Herald Transcript
gchatelet added inline comments.Oct 8 2019, 1:08 AM
llvm/tools/llvm-exegesis/lib/Clustering.cpp
241

Not related to this patch but why a question mark here?

247

How about factoring Tie:

inline auto Tie() const { return std::tie(Opcode, *Config); }
bool operator<(const A &O) const { return Tie() < O.Tie(); }
bool operator==(const A &O) const { return Tie() == O.Tie(); }
295

maybe add the != operator to the struct, with the Tie() function it's a no brainer.

courbet updated this revision to Diff 223803.Oct 8 2019, 1:53 AM
courbet marked 3 inline comments as done.

Addres comments

llvm/tools/llvm-exegesis/lib/Clustering.cpp
241

Not sure, but that doe snot bother me too much :)

courbet updated this revision to Diff 223805.Oct 8 2019, 2:02 AM

remove spurious edit

gchatelet accepted this revision.Oct 8 2019, 2:02 AM
This revision is now accepted and ready to land.Oct 8 2019, 2:02 AM
This revision was automatically updated to reflect the committed changes.