@@ -17,28 +17,24 @@ std::shared_ptr<NESIRDumpHandler> NESIRDumpHandler::create(std::ostream& out) {
17
17
return std::make_shared<NESIRDumpHandler>(out);
18
18
}
19
19
20
- const BasicBlock* NESIRDumpHandler::getNextLowerOrEqualLevelBasicBlock (const BasicBlock* thenBlock, int ifParentBlockLevel ) {
20
+ const BasicBlock* NESIRDumpHandler::getNextLowerOrEqualLevelBasicBlock (const BasicBlock* thenBlock) {
21
21
auto & terminatorOp = thenBlock->getOperations ().back ();
22
22
if (terminatorOp->getOperationType () == Operation::OperationType::BranchOp) {
23
23
auto branchOp = dynamic_cast <BranchOperation*>(terminatorOp.get ());
24
- if (branchOp->getNextBlockInvocation ().getBlock ()->getScopeLevel () <= (uint32_t ) ifParentBlockLevel) {
25
- return branchOp->getNextBlockInvocation ().getBlock ();
26
- } else {
27
- return getNextLowerOrEqualLevelBasicBlock (branchOp->getNextBlockInvocation ().getBlock (), ifParentBlockLevel);
28
- }
24
+ return getNextLowerOrEqualLevelBasicBlock (branchOp->getNextBlockInvocation ().getBlock ());
29
25
} else if (terminatorOp->getOperationType () == Operation::OperationType::IfOp) {
30
26
auto ifOp = dynamic_cast <IfOperation*>(terminatorOp.get ());
31
27
if (ifOp->getFalseBlockInvocation ().getBlock () != nullptr ) {
32
- return getNextLowerOrEqualLevelBasicBlock (ifOp->getFalseBlockInvocation ().getBlock (), ifParentBlockLevel );
28
+ return getNextLowerOrEqualLevelBasicBlock (ifOp->getFalseBlockInvocation ().getBlock ());
33
29
} else {
34
- return getNextLowerOrEqualLevelBasicBlock (ifOp->getTrueBlockInvocation ().getBlock (), ifParentBlockLevel );
30
+ return getNextLowerOrEqualLevelBasicBlock (ifOp->getTrueBlockInvocation ().getBlock ());
35
31
}
36
32
} else { // ReturnOp todo changed #3234
37
33
return nullptr ;
38
34
}
39
35
}
40
36
41
- void NESIRDumpHandler::dumpHelper (Operation* terminatorOp, int32_t ) {
37
+ void NESIRDumpHandler::dumpHelper (Operation* terminatorOp) {
42
38
switch (terminatorOp->getOperationType ()) {
43
39
case Operation::OperationType::BranchOp: {
44
40
auto branchOp = static_cast <BranchOperation*>(terminatorOp);
@@ -47,8 +43,7 @@ void NESIRDumpHandler::dumpHelper(Operation* terminatorOp, int32_t) {
47
43
}
48
44
case Operation::OperationType::IfOp: {
49
45
auto ifOp = static_cast <IfOperation*>(terminatorOp);
50
- auto lastTerminatorOp = getNextLowerOrEqualLevelBasicBlock (ifOp->getTrueBlockInvocation ().getBlock (),
51
- ifOp->getTrueBlockInvocation ().getBlock ()->getScopeLevel () - 1 ); // todo can lead to error #3234
46
+ auto lastTerminatorOp = getNextLowerOrEqualLevelBasicBlock (ifOp->getTrueBlockInvocation ().getBlock ());
52
47
dumpHelper (ifOp->getTrueBlockInvocation ().getBlock ());
53
48
dumpHelper (ifOp->getFalseBlockInvocation ().getBlock ());
54
49
if (lastTerminatorOp) {
@@ -79,7 +74,7 @@ void NESIRDumpHandler::dumpHelper(const BasicBlock* basicBlock) {
79
74
out << std::string (4 , ' ' ) << operation->toString () << " :" << toString (operation->getStamp ()) << std::endl;
80
75
}
81
76
auto & terminatorOp = basicBlock->getOperations ().back ();
82
- dumpHelper (terminatorOp.get (), basicBlock-> getScopeLevel () );
77
+ dumpHelper (terminatorOp.get ());
83
78
}
84
79
}
85
80
0 commit comments