constant_propagation_pass: Prepare for IR matchers

This commit is contained in:
MerryMage
2020-04-20 20:05:32 +01:00
parent 0d7476d3ec
commit 4573511fe3
7 changed files with 203 additions and 73 deletions

View File

@@ -2607,12 +2607,4 @@ void IREmitter::SetTerm(const Terminal& terminal) {
block.SetTerminal(terminal);
}
void IREmitter::SetInsertionPoint(IR::Inst* new_insertion_point) {
insertion_point = IR::Block::iterator{*new_insertion_point};
}
void IREmitter::SetInsertionPoint(IR::Block::iterator new_insertion_point) {
insertion_point = new_insertion_point;
}
} // namespace Dynarmic::IR

View File

@@ -369,8 +369,13 @@ public:
void SetTerm(const Terminal& terminal);
void SetInsertionPoint(IR::Inst* new_insertion_point);
void SetInsertionPoint(IR::Block::iterator new_insertion_point);
void SetInsertionPoint(IR::Inst* new_insertion_point) {
insertion_point = IR::Block::iterator{*new_insertion_point};
}
void SetInsertionPoint(IR::Block::iterator new_insertion_point) {
insertion_point = new_insertion_point;
}
protected:
IR::Block::iterator insertion_point;

View File

@@ -156,6 +156,8 @@ public:
explicit TypedValue(const Value& value) : Value(value) {
ASSERT((value.GetType() & type_) != Type::Void);
}
explicit TypedValue(Inst* inst) : TypedValue(Value(inst)) {}
};
using U1 = TypedValue<Type::U1>;