1. 22 Nov, 2016 1 commit
    • marja's avatar
      Preparse inner functions: fix maybe_assigned · d2e90c5d
      marja authored
      ... but be less pessimistic about context allocation (see below).
      
      We might have just (pessimistically) context-allocated a variable based
      on references coming from an inner function, but after that we still
      need to set maybe_assigned (pessimistically).
      
      This makes test-parsing/InnerAssignment pass with
      FLAG_lazy_inner_functions.
      
      This was undetected until now because we didn't have lazy parsing enabled
      for small scripts.
      
      Less pessimistic approach: now that inner functions laziness decisions
      are stable (if we have once compiled a piece of code with lazy inner
      functions, we never compile the same code with eager inner functions),
      we don't need to be as pessimistic with context allocation as before.
      
      BUG=v8:5501
      
      Review-Url: https://codereview.chromium.org/2521513004
      Cr-Commit-Position: refs/heads/master@{#41183}
      d2e90c5d
  2. 21 Nov, 2016 3 commits
  3. 18 Nov, 2016 1 commit
    • mstarzinger's avatar
      [ast] Fix typo in {Scope::set_asm_function} method. · 28d7c1fb
      mstarzinger authored
      This fixes the bogus implementation of the function in question and adds
      test coverage for the deserialization of the corresponding flags from
      the serialized scope info. Note that the tests so far only cover cases
      where the module and the function contain context-allocated variables.
      
      R=verwaest@chromium.org
      TEST=cctest/test-parsing/AsmFunctionFlag
      BUG=v8:5653
      
      Review-Url: https://codereview.chromium.org/2507063004
      Cr-Commit-Position: refs/heads/master@{#41093}
      28d7c1fb
  4. 17 Nov, 2016 2 commits
  5. 16 Nov, 2016 2 commits
  6. 15 Nov, 2016 1 commit
    • mstarzinger's avatar
      [ast] Change printing of {Variable::maybe_assigned}. · 1a36eaea
      mstarzinger authored
      This reverses the printing scheme for the flag in question to make it
      print the "positive" analysis results (i.e. variable never assigned)
      instead of the "negative" results (i.e. variable maybe assigned). This
      helps to spot false-positives which are much more dangerous in practice
      compared to missed optimization opportunities.
      
      R=neis@chromium.org
      
      Review-Url: https://codereview.chromium.org/2498353002
      Cr-Commit-Position: refs/heads/master@{#40993}
      1a36eaea
  7. 14 Nov, 2016 4 commits
    • rmcilroy's avatar
      Only treat possible eval calls going through 'with' as special. · be9b820c
      rmcilroy authored
      This removes the POSSIBLY_EVAL_CALL call type, and instead uses OTHER_CALL
      or WITH_CALL to decide whether to do the special LOOKUP_SLOT_CALL runtime
      call to find the callee and possibly update the receiver with the with-object.
      This means that eval calls out of 'with' blocks can now just do a normal
      LdaLookupGlobalSlot operation, which can check the context chain for eval
      extentions and fast-path the lookup if none exist.
      
      BUG=661556
      
      Review-Url: https://codereview.chromium.org/2487483004
      Cr-Commit-Position: refs/heads/master@{#40965}
      be9b820c
    • neis's avatar
      Revert of [ast] Simplify FetchFreeVariables. (patchset #1 id:1 of... · 8538143c
      neis authored
      Revert of [ast] Simplify FetchFreeVariables. (patchset #1 id:1 of https://codereview.chromium.org/2491373004/ )
      
      Reason for revert:
      It's probably needed after all but we're lacking tests.
      
      Original issue's description:
      > [ast] Simplify FetchFreeVariables.
      >
      > This CL removes the ParseInfo argument from FetchFreeVariables, since it seems
      > to have become unnecessary.
      >
      > R=verwaest@chromium.org
      > BUG=
      
      TBR=verwaest@chromium.org
      # Not skipping CQ checks because original CL landed more than 1 days ago.
      BUG=
      
      Review-Url: https://codereview.chromium.org/2495293002
      Cr-Commit-Position: refs/heads/master@{#40964}
      8538143c
    • verwaest's avatar
      Only treat lookup-slot-calls going through 'with' special · 733af7eb
      verwaest authored
      This replaces LOOKUP_SLOT_CALL with WITH_CALL, and relies on regular lookup-slot handling in variable load to support other lookup slots (variables resolved in the context of sloppy eval). This allows optimizations for such variable loads to kick in for calls as well. We only need special handling for function calls in the context of with, since it changes the receiver of the call from undefined/global to the with-object.
      
      This currently doesn't yet make it work for the direct eval call itself, since the POSSIBLY_EVAL_CALL flag is also used to deal with direct eval later.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2480253006
      Cr-Commit-Position: refs/heads/master@{#40962}
      733af7eb
    • yangguo's avatar
      Compiling an array literal should be context-independent. · 08f09ed7
      yangguo authored
      We are removing use of the debugger context. When the debugger triggers
      compilation, we may not have a context from which to create a JSArray.
      
      R=ishell@chromium.org
      BUG=chromium:664577
      
      Review-Url: https://codereview.chromium.org/2479123002
      Cr-Commit-Position: refs/heads/master@{#40956}
      08f09ed7
  8. 11 Nov, 2016 1 commit
  9. 10 Nov, 2016 3 commits
  10. 09 Nov, 2016 2 commits
  11. 08 Nov, 2016 2 commits
  12. 07 Nov, 2016 2 commits
  13. 04 Nov, 2016 3 commits
  14. 03 Nov, 2016 1 commit
    • verwaest's avatar
      Turn Scope::locals_ into a ThreadedList · 4fa2ebcb
      verwaest authored
      This turns the ZoneList with minimum 6 words overhead into a linked list through variables, using 2 words for the empty list. Additionally the average number of pointers per entry goes down to the optimal 1 per variable that's in a list.
      
      This does introduce 1 pointer unnecessary overhead for dynamic variables. If that becomes a problem we could distinguish between variables in lists and variables not in lists. We can distinguish them at construction-time.
      
      BUG=v8:5209
      
      Review-Url: https://codereview.chromium.org/2475433002
      Cr-Commit-Position: refs/heads/master@{#40714}
      4fa2ebcb
  15. 02 Nov, 2016 1 commit
    • verwaest's avatar
      Thread decls-list through Declaration using a ThreadedList · 5a18685e
      verwaest authored
      This reduces per-scope overhead from minimally 6 words to 2 words, with one additional pointer per entry, rather than an average of 2 per entry for larger-than-4 element lists. For temp zone parsed functions it additionally makes the declaration-list actually freeable.
      
      This introduces ThreadedList to implement the details of dealing with such a list.
      
      BUG=v8:5209
      
      Review-Url: https://codereview.chromium.org/2457393003
      Cr-Commit-Position: refs/heads/master@{#40703}
      5a18685e
  16. 28 Oct, 2016 1 commit
  17. 27 Oct, 2016 1 commit
  18. 26 Oct, 2016 3 commits
  19. 25 Oct, 2016 5 commits
  20. 24 Oct, 2016 1 commit
    • adamk's avatar
      [full-codegen] Eliminate unnecessary hole checks for stores · 231c8ac0
      adamk authored
      Loads already used source position elimination to avoid unnecessary hole checks,
      but for reasons unknown stores did not. This CL corrects that, making full-codegen's
      hole elimination equivalent to ignition's.
      
      Also introduced a HoleCheckMode enum class to avoid more bool flags and updated
      VariableProxy and BytecodeGenerator appropriately.
      
      Review-Url: https://codereview.chromium.org/2441543005
      Cr-Commit-Position: refs/heads/master@{#40522}
      231c8ac0