parent
66c50c2ffc
commit
419dbd573d
1 changed files with 4 additions and 1 deletions
|
|
@ -277,8 +277,11 @@ proc canBeMoved(c: Con; t: PType): bool {.inline.} =
|
||||||
else:
|
else:
|
||||||
result = t.attachedOps[attachedSink] != nil
|
result = t.attachedOps[attachedSink] != nil
|
||||||
|
|
||||||
|
proc isNoInit(dest: PNode): bool {.inline.} =
|
||||||
|
result = dest.kind == nkSym and sfNoInit in dest.sym.flags
|
||||||
|
|
||||||
proc genSink(c: var Con; dest, ri: PNode): PNode =
|
proc genSink(c: var Con; dest, ri: PNode): PNode =
|
||||||
if isUnpackedTuple(dest) or isFirstWrite(dest, c):
|
if isUnpackedTuple(dest) or isFirstWrite(dest, c) or isNoInit(dest):
|
||||||
# optimize sink call into a bitwise memcopy
|
# optimize sink call into a bitwise memcopy
|
||||||
result = newTree(nkFastAsgn, dest, ri)
|
result = newTree(nkFastAsgn, dest, ri)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue