• Jakob Gruber's avatar
    Revert "[compiler] Optionally apply an offset to stack checks" · ba72dc08
    Jakob Gruber authored
    This reverts commit 4a16305b.
    
    Reason for revert: Need to revalidate assumptions behind the CHECK.
    
    Original change's description:
    > [compiler] Optionally apply an offset to stack checks
    > 
    > The motivation behind this change is that the frame size of an optimized
    > function and its unoptimized version may differ, and deoptimization
    > may thus trigger a stack overflow. The solution implemented in this CL
    > is to optionally apply an offset to the stack check s.t. the check
    > becomes 'sp - offset > limit'. The offset is applied to stack checks at
    > function-entry, and is set to the difference between the optimized and
    > unoptimized frame size.
    > 
    > A caveat: OSR may not be fully handled by this fix since we've already
    > passed the function-entry stack check. A possible solution would be to
    > *not* skip creation of function-entry stack checks for inlinees.
    > 
    > This CL: 1. annotates stack check nodes with the stack check kind, where
    > kind is one of {function-entry,iteration-body,unknown}. 2. potentially
    > allocates a temporary register to store the result of the 'sp - offset'
    > in instruction selection (and switches input registers to 'unique'
    > mode). 3. Applies the offset in code generation.
    > 
    > Drive-by: Add src/compiler/globals.h for compiler-specific globals.
    > 
    > Bug: v8:9534,chromium:1000887
    > Change-Id: I257191c4a4978ccb60cfa5805ef421f30f0e9826
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1762521
    > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    > Reviewed-by: Georg Neis <neis@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#63701}
    
    TBR=neis@chromium.org,sigurds@chromium.org,jgruber@chromium.org
    
    Change-Id: Iebf46d5256b6dee13451741781ef85a5fe9b1628
    No-Presubmit: true
    No-Tree-Checks: true
    No-Try: true
    Bug: v8:9534, chromium:1000887
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1800565Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#63706}
    ba72dc08
code-generator.cc 48.5 KB