3:11:13drmeisterIt's one dial with possible values 0,1,2,3 that means -Ox wherever I can pass a -Ox level to llvm or clang/linker and I use it to turn off and on manual inlining here...
4:31:18drmeisterI'm looking at what llvm is doing when I turn off optimization
4:31:27drmeister(time (dotimes (i 50000) (compile 'nil '(lambda (x y) (+ x y)))))
4:32:03drmeisterThen I use dtrace to profile the code and then: ./prune -i /tmp/out-symbol-46440.user_stacks -o /tmp/out-symbol-46440.user_stacks_pruned -s JIT-ADD-MODULE-RETURN-FUNCTION
4:32:21drmeisterThat extracts backtraces that contain JIT-ADD-MODULE-RETURN-FUNCTION
4:38:03drmeister62% of the time is in JIT-ADD-MODULE-RETURN-FUNCTION and it's mostly in code generation with about 10% of the time looking up symbols in the module.
4:40:16drmeisterThere doesn't look like there is any wasted effort here.