0:17:46drmeisterkarlosz: Yes - you generate code that is not SSA and then run it through optimization passes. One in particular is called mem2reg - it converts alloca's to registers with PHI nodes when possible.
1:38:02karloszthits abstracted away by the bytecode vm
1:38:35drmeisterWell - if you ever do this is what clasp does: https://github.com/drmeister/clasp/blob/cst-catch/src/lisp/kernel/cleavir/setup.lisp#L53
1:39:01Bikethat's not totally helpful since it just calls another function...
1:39:31karloszthanks -- but it seems like the bytecodes are high level enought hat i can just deal with constants as a uniform blob
1:39:36Bikealso the immediate-literal thing is kind of weird. our load time value machinery is still sorta weird
1:44:26karloszalso, what is that extra gensym output to enter-instruction doing there? the docs dont mention anything about it
1:45:36karloszno, it only mentions the outputs associated with parameters
1:46:01Bikeit represents the closed over variables. the only thing it can be used for is an input to a fetch-instruction. cleavir-hir-transformations:process-captured-variables takes care of inserting the instructions
1:46:12Bikeyou'll need to implement translations for fetch, write-cell, read-cell, and create-cell
1:46:26Bikewhere a cell is just a thing you can read and write a value to, like an ML ref.
1:46:45karloszyeah, im familiar with how closures are usually implemented
1:46:55Bikei have no idea how clisp does it, natch
1:47:19karloszthey just have a vector bundled up with the function object