Skip to content
  • fpizlo@apple.com's avatar
    Compress DFG stack layout · a62d4829
    fpizlo@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=122024
    
    Reviewed by Oliver Hunt.
            
    The DFG needs to be able to store things at a known offset from frame pointer so that
    the runtime can read those things. Prior to this patch, the DFG would use the exact
    offsets that the bytecode asked for, even in the case of inlining, where it would use
    the callsite stack offset to shift all of the inlined function's variables over just as
    they would have been if a bytecode interpreter had really made the call.
            
    But this won't work once WebKit-LLVM integration is complete. LLVM has no notion of
    storing things at a fixed offset from the frame pointer. We could try to hack LLVM to do
    that, but it would seriously complicate LLVM's stack layout. But what we might be able
    to do is have LLVM tell us (via an addressof intrinsic and a side-channel) where some
    alloca landed relative to the frame pointer. Hence if the DFG can put all of its flushed
    variables in a contiguous range that can be expresse...
    a62d4829