mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 11:42:57 +01:00
Revert "IR: Fix an inverted assertion when replacing resolved operands"
This reverts commit r225738. Maybe the assertion is just plain wrong, but this version fails on WAY more bots. I'll make sure both ways work in a follow-up but I want to get bots green in the meantime. llvm-svn: 225742
This commit is contained in:
parent
9a78f64738
commit
197d61fb5f
@ -444,7 +444,7 @@ void UniquableMDNode::resolveAfterOperandChange(Metadata *Old, Metadata *New) {
|
||||
|
||||
// Check if an operand was resolved.
|
||||
if (!isOperandUnresolved(Old))
|
||||
assert(!isOperandUnresolved(New) && "Operand just became unresolved");
|
||||
assert(isOperandUnresolved(New) && "Operand just became unresolved");
|
||||
else if (!isOperandUnresolved(New))
|
||||
decrementUnresolvedOperandCount();
|
||||
}
|
||||
|
@ -7,7 +7,6 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/ADT/STLExtras.h"
|
||||
#include "llvm/IR/Metadata.h"
|
||||
#include "llvm/IR/Constants.h"
|
||||
#include "llvm/IR/Instructions.h"
|
||||
@ -362,28 +361,6 @@ TEST_F(MDNodeTest, handleChangedOperandRecursion) {
|
||||
EXPECT_EQ(N4, N6->getOperand(0));
|
||||
}
|
||||
|
||||
TEST_F(MDNodeTest, replaceResolvedOperand) {
|
||||
// Check code for replacing one resolved operand with another. If doing this
|
||||
// directly (via replaceOperandWith()) becomes illegal, change the operand to
|
||||
// a global value that gets RAUW'ed.
|
||||
//
|
||||
// Use a temporary node to keep N from being resolved.
|
||||
std::unique_ptr<MDNodeFwdDecl> Temp(MDNodeFwdDecl::get(Context, None));
|
||||
Metadata *Ops[] = {nullptr, Temp.get()};
|
||||
|
||||
MDNode *Empty = MDTuple::get(Context, {});
|
||||
MDNode *N = MDTuple::get(Context, Ops);
|
||||
EXPECT_EQ(nullptr, N->getOperand(0));
|
||||
ASSERT_FALSE(N->isResolved());
|
||||
|
||||
// Check code for replacing resolved nodes.
|
||||
N->replaceOperandWith(0, Empty);
|
||||
EXPECT_EQ(Empty, N->getOperand(0));
|
||||
|
||||
// Remove the reference to Temp; required for teardown.
|
||||
N->replaceOperandWith(1, nullptr);
|
||||
}
|
||||
|
||||
typedef MetadataTest MetadataAsValueTest;
|
||||
|
||||
TEST_F(MetadataAsValueTest, MDNode) {
|
||||
|
Loading…
Reference in New Issue
Block a user