Ignore:
Timestamp:
May 30, 2018, 8:57:59 PM (7 years ago)
Author:
[email protected]
Message:

DFG combined liveness needs to say that the machine CodeBlock's arguments are live
https://bugs.webkit.org/show_bug.cgi?id=186121
<rdar://problem/39377796>

Reviewed by Keith Miller.

JSTests:

  • stress/combined-liveness-needs-to-say-arguments-are-live.js: Added.

(baz):
(foo):

Source/JavaScriptCore:

DFG's combined liveness was reporting that the machine CodeBlock's |this|
argument was dead at certain points in the program. However, a CodeBlock's
arguments are considered live for the entire function. This fixes a bug
where object allocation sinking phase skipped materializing an allocation
because it thought that the argument it was associated with, |this|, was dead.

  • dfg/DFGCombinedLiveness.cpp:

(JSC::DFG::liveNodesAtHead):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/dfg/DFGCombinedLiveness.cpp

    r213939 r232334  
    11/*
    2  * Copyright (C) 2015-2016 Apple Inc. All rights reserved.
     2 * Copyright (C) 2015-2018 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    4545   
    4646    AvailabilityMap& availabilityMap = block->ssa->availabilityAtHead;
    47     graph.forAllLocalsLiveInBytecode(
     47    graph.forAllLiveInBytecode(
    4848        block->at(0)->origin.forExit,
    4949        [&] (VirtualRegister reg) {
Note: See TracChangeset for help on using the changeset viewer.