Commit Graph

3 Commits

Author SHA1 Message Date
niklas rojemo
528b8e6d85 IR->bytecode lowering: map and iteration over maps
VerseCLR can now compile verse code with maps, and iterations over maps, to the new VM.
Fix unrelated bug triggered by nested for-iterations over arrays, returning an array of arrays.

#rb Saam.Barati
#rnx

[CL 27582449 by niklas rojemo in ue5-main branch]
2023-09-04 04:06:16 -04:00
saam barati
7157db4ca9 Don't allocate tuples unnecessarily for calls with multiple arguments
#rb markus.breyer

This patch makes it so calls with multiple arguments don't require a tuple allocation. We just allow functions to have multiple arguments and be called normally. However, when such functions are invoked with a tuple, we'll unbox the tuple into the argument slots.

We also allow functions with single-param-as-tuple to be invoked with multiple arguments. And such functions will box the arguments into a tuple when being called.

A function with N arguments now take up the first N register slots in the frame.

This patch also fills out some more of the bytecode generator to make some tests I wrote work.

[CL 27510491 by saam barati in ue5-main branch]
2023-08-30 20:56:02 -04:00
tim smith
d758896471 Move VerseVM to CoreUObject to facilitate the merging of UEGC and VerseGC
#rb saam.barati phil.pizlo

[CL 27374952 by tim smith in ue5-main branch]
2023-08-25 09:08:53 -04:00