forked from OSchip/llvm-project
[AliasSet] Fix UnknownInstructions printing
Summary: AliasSet::print uses `I->printAsOperand` to print UnknownInstructions. The problem is that not all UnknownInstructions have names (e.g. call instructions). When such instructions are printed, they appear as `<badref>` in AliasSets, which is very confusing, as the values are perfectly valid. This patch fixes that by printing UnknownInstructions without a name using `print` instead of `printAsOperand`. Reviewers: asbirlea, chandlerc, sanjoy, grosser Reviewed By: asbirlea Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D48609 llvm-svn: 335751
This commit is contained in:
parent
7b7b5eb60d
commit
555e41bbf2
|
@ -639,8 +639,12 @@ void AliasSet::print(raw_ostream &OS) const {
|
||||||
OS << "\n " << UnknownInsts.size() << " Unknown instructions: ";
|
OS << "\n " << UnknownInsts.size() << " Unknown instructions: ";
|
||||||
for (unsigned i = 0, e = UnknownInsts.size(); i != e; ++i) {
|
for (unsigned i = 0, e = UnknownInsts.size(); i != e; ++i) {
|
||||||
if (i) OS << ", ";
|
if (i) OS << ", ";
|
||||||
if (auto *I = getUnknownInst(i))
|
if (auto *I = getUnknownInst(i)) {
|
||||||
|
if (I->hasName())
|
||||||
I->printAsOperand(OS);
|
I->printAsOperand(OS);
|
||||||
|
else
|
||||||
|
I->print(OS);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
OS << "\n";
|
OS << "\n";
|
||||||
|
|
Loading…
Reference in New Issue