[llvm-branch-commits] [llvm] 2bddb10 - [llvm-exegesis] Minor changes for downstream consumers
Aiden Grossman via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Sat Dec 2 14:22:08 PST 2023
Author: Aiden Grossman
Date: 2023-12-02T14:20:11-08:00
New Revision: 2bddb1011489651cb2e5f2f94d5fae89ddf63216
URL: https://github.com/llvm/llvm-project/commit/2bddb1011489651cb2e5f2f94d5fae89ddf63216
DIFF: https://github.com/llvm/llvm-project/commit/2bddb1011489651cb2e5f2f94d5fae89ddf63216.diff
LOG: [llvm-exegesis] Minor changes for downstream consumers
This patch adjust the runConfiguration function to allow passing a
parameter to force returning SnippetCrashes as errors rather than
serializing them as strings in the returned Benchmark object. In
addition, this patch adds a getter for the signal information address in
the SnippetCrash object.
These are both needed to allow for downstream consumption of the
exegesis library within Gematria.
Added:
Modified:
llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp
llvm/tools/llvm-exegesis/lib/BenchmarkRunner.h
llvm/tools/llvm-exegesis/lib/Error.h
Removed:
################################################################################
diff --git a/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp b/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp
index f5d73a8bd6a31..51c9c6cd09358 100644
--- a/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp
+++ b/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp
@@ -545,9 +545,10 @@ BenchmarkRunner::createFunctionExecutor(
llvm_unreachable("ExecutionMode is outside expected range");
}
-Expected<Benchmark> BenchmarkRunner::runConfiguration(
- RunnableConfiguration &&RC,
- const std::optional<StringRef> &DumpFile) const {
+Expected<Benchmark>
+BenchmarkRunner::runConfiguration(RunnableConfiguration &&RC,
+ const std::optional<StringRef> &DumpFile,
+ bool ErrorOnSnippetCrash /*= false*/) const {
Benchmark &InstrBenchmark = RC.InstrBenchmark;
object::OwningBinary<object::ObjectFile> &ObjectFile = RC.ObjectFile;
diff --git a/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.h b/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.h
index 24f2086289408..eb8c9f55722ca 100644
--- a/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.h
+++ b/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.h
@@ -65,9 +65,9 @@ class BenchmarkRunner {
unsigned NumRepetitions, unsigned LoopUnrollFactor,
const SnippetRepetitor &Repetitor) const;
- Expected<Benchmark>
- runConfiguration(RunnableConfiguration &&RC,
- const std::optional<StringRef> &DumpFile) const;
+ Expected<Benchmark> runConfiguration(RunnableConfiguration &&RC,
+ const std::optional<StringRef> &DumpFile,
+ bool ErrorOnSnippetCrash = false) const;
// Scratch space to run instructions that touch memory.
struct ScratchSpace {
diff --git a/llvm/tools/llvm-exegesis/lib/Error.h b/llvm/tools/llvm-exegesis/lib/Error.h
index 8d3f394ed8d6e..8c95439d63ac6 100644
--- a/llvm/tools/llvm-exegesis/lib/Error.h
+++ b/llvm/tools/llvm-exegesis/lib/Error.h
@@ -52,6 +52,8 @@ class SnippetCrash : public ErrorInfo<SnippetCrash> {
std::error_code convertToErrorCode() const override;
+ intptr_t GetCrashAddress() const { return SIAddress; }
+
private:
std::string Msg;
intptr_t SIAddress;
More information about the llvm-branch-commits
mailing list