aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-exegesis/lib/Target.cpp
diff options
context:
space:
mode:
authorClement Courbet <courbet@google.com>2020-01-22 15:49:10 +0100
committerClement Courbet <courbet@google.com>2020-01-23 11:08:44 +0100
commit04fd20415612f02c4b09da526f19d24e6fe18e7e (patch)
treed6860d92fab6828ae78bbad3911b3c99833f2db3 /llvm/tools/llvm-exegesis/lib/Target.cpp
parent5c02fe1faabd5519c48ded170fe849f9b2c8d10f (diff)
downloadllvm-04fd20415612f02c4b09da526f19d24e6fe18e7e.zip
llvm-04fd20415612f02c4b09da526f19d24e6fe18e7e.tar.gz
llvm-04fd20415612f02c4b09da526f19d24e6fe18e7e.tar.bz2
[llvm-exegesis] Allow the randomizer to fail nicely...
Summary: ... instead of crashing. On typical exmaple is when there are no available registers. Reviewers: gchatelet Subscribers: tschuett, mstojanovic, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73196
Diffstat (limited to 'llvm/tools/llvm-exegesis/lib/Target.cpp')
-rw-r--r--llvm/tools/llvm-exegesis/lib/Target.cpp24
1 files changed, 0 insertions, 24 deletions
diff --git a/llvm/tools/llvm-exegesis/lib/Target.cpp b/llvm/tools/llvm-exegesis/lib/Target.cpp
index 40021e2..701ff14 100644
--- a/llvm/tools/llvm-exegesis/lib/Target.cpp
+++ b/llvm/tools/llvm-exegesis/lib/Target.cpp
@@ -99,30 +99,6 @@ ExegesisTarget::createUopsBenchmarkRunner(const LLVMState &State) const {
return std::make_unique<UopsBenchmarkRunner>(State);
}
-void ExegesisTarget::randomizeMCOperand(const Instruction &Instr,
- const Variable &Var,
- MCOperand &AssignedValue,
- const BitVector &ForbiddenRegs) const {
- const Operand &Op = Instr.getPrimaryOperand(Var);
- switch (Op.getExplicitOperandInfo().OperandType) {
- case MCOI::OperandType::OPERAND_IMMEDIATE:
- // FIXME: explore immediate values too.
- AssignedValue = MCOperand::createImm(1);
- break;
- case MCOI::OperandType::OPERAND_REGISTER: {
- assert(Op.isReg());
- auto AllowedRegs = Op.getRegisterAliasing().sourceBits();
- assert(AllowedRegs.size() == ForbiddenRegs.size());
- for (auto I : ForbiddenRegs.set_bits())
- AllowedRegs.reset(I);
- AssignedValue = MCOperand::createReg(randomBit(AllowedRegs));
- break;
- }
- default:
- break;
- }
-}
-
static_assert(std::is_pod<PfmCountersInfo>::value,
"We shouldn't have dynamic initialization here");
const PfmCountersInfo PfmCountersInfo::Default = {nullptr, nullptr, nullptr,