Skip to content

Commit 6b93a63

Browse files
committed
Revert "fix: niche: invalid codegen in some cases"
This reverts commit fa960b5.
1 parent fa960b5 commit 6b93a63

File tree

2 files changed

+11
-74
lines changed

2 files changed

+11
-74
lines changed

src/bali/runtime/niche/lowering.nim

Lines changed: 11 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -520,29 +520,13 @@ proc genBinaryOp(
520520

521521
# TODO: recursive IR generation
522522

523-
const MutatorOps = {
524-
BinaryOperation.Add, BinaryOperation.Sub, BinaryOperation.Mult, BinaryOperation.Div
525-
}
526-
527523
let
528524
leftIdx =
529525
if leftTerm.kind == AtomHolder:
530526
runtime.index("left_term", internalIndex(stmt))
531527
elif leftTerm.kind == IdentHolder:
532-
if stmt.op notin MutatorOps:
533-
runtime.index(leftTerm.ident, defaultParams(fn))
534-
else:
535-
block:
536-
# If the op causes [1] to be mutated, we need to copy [1] into a temporary space
537-
# to avoid unforeseen side effects and invariants.
538-
inc runtime.addrIdx
539-
runtime.ir.copyAtom(
540-
runtime.index(leftTerm.ident, defaultParams(fn)), runtime.addrIdx
541-
)
542-
543-
runtime.addrIdx
528+
runtime.index(leftTerm.ident, defaultParams(fn))
544529
else:
545-
unreachable
546530
0
547531

548532
rightIdx =
@@ -551,7 +535,6 @@ proc genBinaryOp(
551535
elif rightTerm.kind == IdentHolder:
552536
runtime.index(rightTerm.ident, defaultParams(fn))
553537
else:
554-
unreachable
555538
0
556539

557540
case stmt.op
@@ -629,15 +612,16 @@ proc genBinaryOp(
629612
warn "emitter: unimplemented binary operation: " & $stmt.op
630613

631614
if *stmt.binStoreIn:
632-
let indexed =
633-
if not internal:
634-
runtime.markLocal(fn, &stmt.binStoreIn)
635-
runtime.addrIdx - 1'u
636-
else:
637-
runtime.index(&stmt.binStoreIn, internalIndex(stmt))
638-
639-
if leftIdx != indexed:
640-
runtime.ir.copyAtom(leftIdx, indexed)
615+
runtime.ir.copyAtom(
616+
leftIdx,
617+
runtime.index(
618+
&stmt.binStoreIn,
619+
if not internal:
620+
defaultParams(fn)
621+
else:
622+
internalIndex(stmt),
623+
),
624+
)
641625
elif *exprStoreIn:
642626
assert *parentStmt
643627
runtime.ir.copyAtom(

tests/tmidtier001.nim

Lines changed: 0 additions & 47 deletions
This file was deleted.

0 commit comments

Comments
 (0)