1:25:48drmeisterI tried to get rid of it - I'll keep trying.
1:47:04karloszi was able to make the ast by faking up another function and replacing its node with the node i want, but when i graph it it seems like its not inlining properly
1:47:24Bikeyeah that's problem number two, inlining doesn't work in cst-to-ast at the moment.
1:47:36Bikeyou can try generate-ast, which is old but more functional
2:28:19karloszis there a reason why so many are generated?
2:28:38karloszit would make sense if there was an ssa sort of invariant being kept
2:29:13Bikein this case, the ast inlining generates assignments to match the parsing of the lambda list of the function being inlined.
2:29:26Bikethere are also several generated because of how ast-to-hir works.
2:29:46Bikei've spent a fair bit of time trying to figure out a way to generate less, but i haven't come up with much.
2:31:56karloszyeah, but even when there was no inling, just things like using a lexical location to a function would have to go through an assign instruction
2:31:56karloszsbcl uses a singlue use single set lvars where that makes sense
2:59:35Bikekarlosz: it generates more assignments and temporaries than it needs to, for sure. it's because of how ast-to-hir works. i couldn't think of a way to write it that avoided that while being understandable.
3:03:05karloszi think it wouldn't be so bad doing it in a separate coalescing pass if you have an interference graph
3:12:59karloszhm, it seems like this inlining approach can't work for functions with rest arguments
3:13:43karloszthe number of arguments the node is going to take is already precomputed ahead of time
3:14:02karloszwhen creating the IR in the function info
3:18:40Bikerest is tricky because you need to create a list at runtime
3:35:04karloszso even though the number of arguments is known at inlining time, its not possible to just make a HIR node with the right number of inputs?
3:35:35karloszthat would fit clisp's calling convention better than explicitly making a list in the hir graph
3:39:44karloszi don't understand. the funcall instruction can take any number of inputs, without creating a list. ie (+ 1 2 3) creates a hir node with 3 inputs
4:01:09karloszyeah, that's more what im looking for
4:01:36karloszis there a way to that done via cleavir?
4:02:03Bikeif you don't want to define an clisp-normal compiler macro function, you can have function-info just make one up like you're already doing with ASTs
4:02:49karloszoh, right. just spoof the host environment