summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-exegesis/lib/SnippetGenerator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/llvm-exegesis/lib/SnippetGenerator.cpp')
-rw-r--r--llvm/tools/llvm-exegesis/lib/SnippetGenerator.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/llvm/tools/llvm-exegesis/lib/SnippetGenerator.cpp b/llvm/tools/llvm-exegesis/lib/SnippetGenerator.cpp
index 65cc954a469..d1f168fe43b 100644
--- a/llvm/tools/llvm-exegesis/lib/SnippetGenerator.cpp
+++ b/llvm/tools/llvm-exegesis/lib/SnippetGenerator.cpp
@@ -112,7 +112,7 @@ std::vector<RegisterValue> SnippetGenerator::computeRegisterInitialValues(
return 0;
};
// Collect used registers that have never been def'ed.
- for (const Operand &Op : IT.Instr.Operands) {
+ for (const Operand &Op : IT.getInstr().Operands) {
if (Op.isUse()) {
const unsigned Reg = GetOpReg(Op);
if (Reg > 0 && !DefinedRegs.test(Reg)) {
@@ -122,7 +122,7 @@ std::vector<RegisterValue> SnippetGenerator::computeRegisterInitialValues(
}
}
// Mark defs as having been def'ed.
- for (const Operand &Op : IT.Instr.Operands) {
+ for (const Operand &Op : IT.getInstr().Operands) {
if (Op.isDef()) {
const unsigned Reg = GetOpReg(Op);
if (Reg > 0)
@@ -141,7 +141,7 @@ generateSelfAliasingCodeTemplates(const Instruction &Instr) {
std::vector<CodeTemplate> Result;
Result.emplace_back();
CodeTemplate &CT = Result.back();
- InstructionTemplate IT(Instr);
+ InstructionTemplate IT(&Instr);
if (SelfAliasing.hasImplicitAliasing()) {
CT.Info = "implicit Self cycles, picking random values.";
} else {
@@ -160,7 +160,7 @@ generateUnconstrainedCodeTemplates(const Instruction &Instr, StringRef Msg) {
Result.emplace_back();
CodeTemplate &CT = Result.back();
CT.Info = formatv("{0}, repeating an unconstrained assignment", Msg);
- CT.Instructions.emplace_back(Instr);
+ CT.Instructions.emplace_back(&Instr);
return std::move(Result);
}
@@ -218,10 +218,11 @@ void setRandomAliasing(const AliasingConfigurations &AliasingConfigurations,
void randomizeUnsetVariables(const ExegesisTarget &Target,
const BitVector &ForbiddenRegs,
InstructionTemplate &IT) {
- for (const Variable &Var : IT.Instr.Variables) {
+ for (const Variable &Var : IT.getInstr().Variables) {
MCOperand &AssignedValue = IT.getValueFor(Var);
if (!AssignedValue.isValid())
- Target.randomizeMCOperand(IT.Instr, Var, AssignedValue, ForbiddenRegs);
+ Target.randomizeMCOperand(IT.getInstr(), Var, AssignedValue,
+ ForbiddenRegs);
}
}
OpenPOWER on IntegriCloud