mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
Revert "[llvm-exegesis] Save target state before running the benchmark."
_fxsave64 is not available on some buildbots. This reverts commit 274de447fe9621082a523a7227157aeb84702a7d.
This commit is contained in:
parent
0a181c6ec2
commit
230b955ed6
@ -1,6 +0,0 @@
|
||||
# RUN: llvm-exegesis -mode=uops -opcode-name=FLDENVm,FLDL2E -repetition-mode=duplicate | FileCheck %s
|
||||
|
||||
CHECK: mode: uops
|
||||
CHECK-NEXT: key:
|
||||
CHECK-NEXT: instructions:
|
||||
CHECK-NEXT: FLDENVm
|
@ -71,10 +71,10 @@ private:
|
||||
SmallVector<StringRef, 2> CounterNames;
|
||||
StringRef(Counters).split(CounterNames, '+');
|
||||
char *const ScratchPtr = Scratch->ptr();
|
||||
const ExegesisTarget &ET = State.getExegesisTarget();
|
||||
for (auto &CounterName : CounterNames) {
|
||||
CounterName = CounterName.trim();
|
||||
auto CounterOrError = ET.createCounter(CounterName, State);
|
||||
auto CounterOrError =
|
||||
State.getExegesisTarget().createCounter(CounterName, State);
|
||||
|
||||
if (!CounterOrError)
|
||||
return CounterOrError.takeError();
|
||||
@ -93,7 +93,6 @@ private:
|
||||
.concat(std::to_string(Reserved)));
|
||||
Scratch->clear();
|
||||
{
|
||||
auto PS = ET.withSavedState();
|
||||
CrashRecoveryContext CRC;
|
||||
CrashRecoveryContext::Enable();
|
||||
const bool Crashed = !CRC.RunSafely([this, Counter, ScratchPtr]() {
|
||||
@ -102,7 +101,6 @@ private:
|
||||
Counter->stop();
|
||||
});
|
||||
CrashRecoveryContext::Disable();
|
||||
PS.reset();
|
||||
if (Crashed) {
|
||||
std::string Msg = "snippet crashed while running";
|
||||
#ifdef LLVM_ON_UNIX
|
||||
|
@ -147,8 +147,6 @@ const PfmCountersInfo &ExegesisTarget::getPfmCounters(StringRef CpuName) const {
|
||||
return *Found->PCI;
|
||||
}
|
||||
|
||||
ExegesisTarget::SavedState::~SavedState() {} // anchor.
|
||||
|
||||
namespace {
|
||||
|
||||
// Default implementation.
|
||||
|
@ -172,16 +172,6 @@ public:
|
||||
// counters are defined for this CPU).
|
||||
const PfmCountersInfo &getPfmCounters(StringRef CpuName) const;
|
||||
|
||||
// Saves the CPU state that needs to be preserved when running a benchmark,
|
||||
// and returns and RAII object that restores the state on destruction.
|
||||
// By default no state is preserved.
|
||||
struct SavedState {
|
||||
virtual ~SavedState();
|
||||
};
|
||||
virtual std::unique_ptr<SavedState> withSavedState() const {
|
||||
return std::make_unique<SavedState>();
|
||||
}
|
||||
|
||||
private:
|
||||
virtual bool matchesArch(Triple::ArchType Arch) const = 0;
|
||||
|
||||
|
@ -23,7 +23,6 @@
|
||||
#include "llvm/Support/Error.h"
|
||||
#include "llvm/Support/FormatVariadic.h"
|
||||
|
||||
#include <immintrin.h>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
@ -595,25 +594,6 @@ void ConstantInliner::initStack(unsigned Bytes) {
|
||||
|
||||
namespace {
|
||||
|
||||
class X86SavedState : public ExegesisTarget::SavedState {
|
||||
public:
|
||||
X86SavedState() { _fxsave64(FPState); }
|
||||
|
||||
~X86SavedState() {
|
||||
// Restoring the X87 state does not flush pending exceptions, make sure
|
||||
// these exceptions are flushed now.
|
||||
#if defined(_MSC_VER)
|
||||
_clearfp();
|
||||
#elif defined(__GNUC__)
|
||||
asm volatile("fwait");
|
||||
#endif
|
||||
_fxrstor64(FPState);
|
||||
}
|
||||
|
||||
private:
|
||||
alignas(16) char FPState[512];
|
||||
};
|
||||
|
||||
class ExegesisX86Target : public ExegesisTarget {
|
||||
public:
|
||||
ExegesisX86Target() : ExegesisTarget(X86CpuPfmCounters) {}
|
||||
@ -711,10 +691,6 @@ private:
|
||||
#endif
|
||||
}
|
||||
|
||||
std::unique_ptr<SavedState> withSavedState() const override {
|
||||
return std::make_unique<X86SavedState>();
|
||||
}
|
||||
|
||||
static const unsigned kUnavailableRegisters[4];
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user