Cleanup in advance of reworking codegen
Joe Savona committed
Nov 8, 2022 at 14:45 UTC
e665f6b877ec5f6ce29ccac50c25ab30e9ad1165
2 files changed
+8
-9
compiler/forget/src/HIR/BuildHIR.ts
+6
-7
@@ -156,8 +156,7 @@ function lowerStatement(
156
test,
157
consequent: consequentBlock,
158
alternate: alternateBlock,
159
- fallthrough:
160
- alternateBlock !== continuationBlock.id ? continuationBlock.id : null,
159
+ fallthrough: continuationBlock.id,
160
};
161
builder.terminateWithContinuation(terminal, continuationBlock);
162
return;
@@ -226,7 +225,7 @@ function lowerStatement(
225
test,
226
consequent: loopBlock,
227
alternate: continuationBlock.id,
229
- fallthrough: continuationBlock.id, // TODO: improve loop handling
228
+ fallthrough: continuationBlock.id,
229
};
230
builder.terminateWithContinuation(terminal, continuationBlock);
231
return;
@@ -276,7 +275,7 @@ function lowerStatement(
275
test,
276
consequent: loopBlock,
277
alternate: continuationBlock.id,
279
- fallthrough: continuationBlock.id, // TODO: improve loop handling
278
+ fallthrough: continuationBlock.id,
279
};
280
builder.terminateWithContinuation(terminal, continuationBlock);
281
return;
@@ -346,7 +345,7 @@ function lowerStatement(
345
test: lowerExpressionToPlace(builder, test),
346
consequent: loopBlock,
347
alternate: continuationBlock.id,
349
- fallthrough: continuationBlock.id, // TODO: improve loop handling
348
+ fallthrough: continuationBlock.id,
349
};
350
} else {
351
/**
@@ -379,7 +378,7 @@ function lowerStatement(
378
test,
379
consequent: loopBlock,
380
alternate: continuationBlock.id,
382
- fallthrough: continuationBlock.id, // TODO: improve loop handling
381
+ fallthrough: continuationBlock.id,
382
};
383
return terminal;
384
});
@@ -433,7 +432,7 @@ function lowerStatement(
432
test,
433
consequent: loopBlock,
434
alternate: continuationBlock.id,
436
- fallthrough: continuationBlock.id, // TODO: improve loop handling
435
+ fallthrough: continuationBlock.id,
436
};
437
// Complete the conditional and continue with code after the loop
438
builder.terminateWithContinuation(terminal, continuationBlock);
compiler/forget/src/HIR/HIRBuilder.ts
+2
-2
@@ -499,7 +499,7 @@ function markInstructionIds(func: HIR) {
499
500
function markPredecessors(func: HIR) {
501
const visited: Set<BlockId> = new Set();
502
- function visit(blockId: BlockId, prevBlock?: BasicBlock) {
502
+ function visit(blockId: BlockId, prevBlock: BasicBlock | null) {
503
const block = func.blocks.get(blockId)!;
504
if (prevBlock) {
505
block.preds.add(prevBlock);
@@ -542,7 +542,7 @@ function markPredecessors(func: HIR) {
542
}
543
}
544
}
545
- visit(func.entry);
545
+ visit(func.entry, null);
546
}
547
548
/**