Shader_IR: mark labels as unused for partial decompile.
This commit is contained in:
parent
47e4f6a52c
commit
0366c18d87
|
@ -497,9 +497,7 @@ void ASTManager::Decompile() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (can_remove) {
|
if (can_remove) {
|
||||||
auto& manager = label->GetManager();
|
label->MarkLabelUnused();
|
||||||
manager.Remove(label);
|
|
||||||
labels.erase(it);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,6 +112,7 @@ class ASTLabel {
|
||||||
public:
|
public:
|
||||||
ASTLabel(u32 index) : index{index} {}
|
ASTLabel(u32 index) : index{index} {}
|
||||||
u32 index;
|
u32 index;
|
||||||
|
bool unused{};
|
||||||
};
|
};
|
||||||
|
|
||||||
class ASTGoto {
|
class ASTGoto {
|
||||||
|
@ -204,6 +205,13 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MarkLabelUnused() const {
|
||||||
|
auto inner = std::get_if<ASTLabel>(&data);
|
||||||
|
if (inner) {
|
||||||
|
inner->unused = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Expr GetIfCondition() const {
|
Expr GetIfCondition() const {
|
||||||
auto inner = std::get_if<ASTIfThen>(&data);
|
auto inner = std::get_if<ASTIfThen>(&data);
|
||||||
if (inner) {
|
if (inner) {
|
||||||
|
|
Loading…
Reference in a new issue