1. 27 Oct, 2016 22 commits
  2. 26 Oct, 2016 18 commits
    • aseemgarg's avatar
      [wasm] add atomic opcodes · 4156d940
      aseemgarg authored
      R=titzer@chromium.org,binji@chromium.org
      BUG=v8:4614
      
      Review-Url: https://codereview.chromium.org/2423883003
      Cr-Commit-Position: refs/heads/master@{#40606}
      4156d940
    • rob's avatar
      Avoid using stale InspectedContext pointers · cb2a39d3
      rob authored
      BUG=657568
      TEST=Manually, see bug report
      
      Review-Url: https://codereview.chromium.org/2432163004
      Cr-Commit-Position: refs/heads/master@{#40605}
      cb2a39d3
    • cbruni's avatar
      [tools] Support custom script injection for callstats.py · e2effcbc
      cbruni authored
      This is a poor-man's solution to trigger page interactions.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2455623002
      Cr-Commit-Position: refs/heads/master@{#40604}
      e2effcbc
    • bbudge's avatar
      [Turbofan] Add USE for local used only by DCHECK. · 51bbfc7d
      bbudge authored
      LOG=N
      BUG=v8:4124
      
      Review-Url: https://codereview.chromium.org/2453813002
      Cr-Commit-Position: refs/heads/master@{#40603}
      51bbfc7d
    • heimbuef's avatar
      New zone-backed list datastructure to replace ZoneList · 610c0d75
      heimbuef authored
      Since ZoneLists are essentially non-standard ZoneVectors and have a bad
      growing behaviour (ZoneList-allocations make up ~50% of website parse
      zone memory) we should stop using them. The zone-containers are merely
      a clean-up, with none of them actually better suited to be used with
      zones. This new datastructure allows most operations of a LinkedList (
      except pop_first and insertAt/removeAt) but uses about the same memory
      as a well-initialized ZoneVector/ZoneList (<3% overhead with reasonably
      large lists). It also never attempts to free memory again (which would
      not work in zones anyway).
      
      The ZoneChunkList is essentially a doubly-linked-list of arrays of
      variable size.
      
      Some test-results where I tried storing 16k pointers in different list
      types (lists themselves also zone-allocated):
      
      List type                       Zone memory used   Time taken
      -----------------------------------------------------------------------
      Zone array (for comparison)     131072 B
      
      Ideally initialized ZoneList    131088 B           0.062ms
      
      ChunkZoneList                   134744 B           0.052ms <--new thing
      
      ZoneDeque                       141744 B
      
      ZoneLinkedList                  393264 B
      
      Initially empty ZoneList        524168 B           0.171ms <--right now
      
      ChunkZoneList only push_front   524320 B
      
      Review-Url: https://codereview.chromium.org/2449383002
      Cr-Commit-Position: refs/heads/master@{#40602}
      610c0d75
    • titzer's avatar
      [wasm] Remove the "Wasm" object. · 24d38be1
      titzer authored
      BUG=chromium:575167, v8:5507
      
      R=rossberg@chromium.org,bradnelson@chromium.org
      CC=ahaas@chromium.org
      
      Review-Url: https://codereview.chromium.org/2447013004
      Cr-Commit-Position: refs/heads/master@{#40601}
      24d38be1
    • titzer's avatar
      [wasm] Binary 0xD: update encoding of opcodes, types, and add immediates. · 3f207617
      titzer authored
      R=ahaas@chromium.org,rossberg@chromium.org,binji@chromium.org,bradnelson@chromium.org
      BUG=chromium:575167, chromium:659591
      
      Review-Url: https://codereview.chromium.org/2440953002
      Cr-Commit-Position: refs/heads/master@{#40600}
      3f207617
    • clemensh's avatar
      Improve exception printing for debug · ff5194e3
      clemensh authored
      If there is no stack trace (which happens), then at least print the
      location of the message.
      
      R=titzer@chromium.org,ahaas@chromium.org
      
      Review-Url: https://codereview.chromium.org/2450253002
      Cr-Commit-Position: refs/heads/master@{#40599}
      ff5194e3
    • mythria's avatar
      [Interpreter] Tune runtime profiler parameters for turbofan and OSR. · 46a1b34e
      mythria authored
      Turbofan requires a different tuning when compared to crankshaft. Crankshaft
      typically has faster compilation times when compared to turbofan. Hence,
      added a new parameter, so that crankshaft and turbofan can be tuned
      independently.
      
      OSRing too soon is not good for performance, especially for sunspider
      benchmarks. Since they are really small functions and optimizing them is
      more expensive than just executing unoptimized code. Tuning the code size
      threshold of the functions that can be OSRed from ignition.
      
      BUG=v8:4280,chromium:659111
      
      Review-Url: https://codereview.chromium.org/2445203003
      Cr-Commit-Position: refs/heads/master@{#40598}
      46a1b34e
    • bbudge's avatar
      [Turbofan] Add concept of FP register aliasing on ARM 32. · 09ab8e6a
      bbudge authored
      - Modifies RegisterConfiguration to specify complex aliasing on ARM 32.
      - Modifies RegisterAllocator to consider aliasing.
      - Modifies ParallelMove::PrepareInsertAfter to handle aliasing.
      - Modifies GapResolver to split wider register moves when interference
      with smaller moves is detected.
      - Modifies MoveOptimizer to handle aliasing.
      - Adds ARM 32 macro-assembler pseudo move instructions to handle cases where
        split moves don't correspond to actual s-registers.
      - Modifies CodeGenerator::AssembleMove and AssembleSwap to handle moves of
        different widths, and moves involving pseudo-s-registers.
      - Adds unit tests for FP operand interference checking and PrepareInsertAfter.
      - Adds more tests of FP for the move optimizer and register allocator.
      
      LOG=N
      BUG=v8:4124
      
      Review-Url: https://codereview.chromium.org/2410673002
      Cr-Commit-Position: refs/heads/master@{#40597}
      09ab8e6a
    • clemensh's avatar
      [compiler] Remove redundant code · f6c3fd0a
      clemensh authored
      Just stumbled across this while doing
      https://codereview.chromium.org/2457433002/
      
      R=mstarzinger@chromium.org
      
      Review-Url: https://codereview.chromium.org/2449103006
      Cr-Commit-Position: refs/heads/master@{#40596}
      f6c3fd0a
    • rmcilroy's avatar
      [Interpreter] Don't require a CanonicalHandleScope for parse / renumbering · 7db6c79a
      rmcilroy authored
      Removes the need for a CanonicalHandleScope for parsing and renumbering
      phases when using Ignition. Since AST strings are canonicalized by the
      AST value factory, we only need to make sure we use the same canonical
      handles for any other handles we add to the bytecode generator.
      
      This avoids a regression when enabling Ignition for all Turbofan code, and
      improves CodeLoad on for Ignition by about 5%.
      
      BUG=v8:4280
      
      Review-Url: https://codereview.chromium.org/2448323004
      Cr-Commit-Position: refs/heads/master@{#40595}
      7db6c79a
    • neis's avatar
      [modules] Improve error messages. · 038a8197
      neis authored
      For instance, when an import cannot be resolved, actually
      point at the corresponding import statement.
      
      BUG=v8:1569
      
      Review-Url: https://codereview.chromium.org/2451153002
      Cr-Commit-Position: refs/heads/master@{#40594}
      038a8197
    • bjaideep's avatar
      PPC/s390: [crankshaft] Refactor kAllowUndefinedAsNaN to kTruncatingToNumber. · 35b3e013
      bjaideep authored
      Port df981a9f
      
      Original commit message:
      
          The meaning of the HValue::kAllowUndefinedAsNaN is actually ToNumber
          conversion (except for the uses in HBranch and HCompareHoleAndBranch,
          which were confusing and useless anyways), so fix the naming to match
          that.
      
          Also properly integrate the handling of this flag with the existing
          truncation analysis that is run as part of the representation changes
          phase (i.e. where we already deal with truncating to int32 and smi).
      
          This is done in preparation of allowing Crankshaft to handle any kind
          of Oddball in the ToNumber truncation, instead of just undefined for
          truncation ToNumber and undefined or boolean for ToInt32. It also helps
          to make Crankshaft somewhat more compatible with the (saner)
          implementation in TurboFan.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      
      BUG=
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2449373002
      Cr-Commit-Position: refs/heads/master@{#40593}
      35b3e013
    • bmeurer's avatar
      [compiler] Properly validate stable map assumption for globals. · 2bd7464e
      bmeurer authored
      For global object property cells, we did not check that the map on the
      previous object is still the same for which we actually optimized. So
      the optimized code was not in sync with the actual state of the property
      cell. When loading from such a global object property cell, Crankshaft
      optimizes away any map checks (based on the stable map assumption),
      leading to arbitrary memory access in the worst case.
      
      TurboFan has the same bug for stores, but is safe on loads because we
      do appropriate map checks there. However mixing TurboFan and Crankshaft
      still exposes the bug.
      
      R=yangguo@chromium.org
      BUG=chromium:659475
      
      Review-Url: https://codereview.chromium.org/2444233004
      Cr-Commit-Position: refs/heads/master@{#40592}
      2bd7464e
    • gsathya's avatar
      [promises] remove kPending check in RejectPromise · a7a35001
      gsathya authored
      RejectPromise is always called on a pending promise making this a redundant check.
      
      BUG=v8:5343
      
      Review-Url: https://codereview.chromium.org/2446113007
      Cr-Commit-Position: refs/heads/master@{#40591}
      a7a35001
    • mstarzinger's avatar
      [turbofan] Disable bogus lowering of builtin tail-calls. · 2ab2ec22
      mstarzinger authored
      The TurboFan backends currently don't support tail-calls to CPP builtins
      because the semantics of kJavaScriptCallArgCountRegister has different
      semantics for stub call descriptors versus JavaScript call descriptors.
      This is actually a short-coming of the backends and follow-up work will
      make the backends more robust in that regard to fail hard on unsupported
      constructs like that. This just disables the lowering creating such a
      tail-call.
      
      R=bmeurer@chromium.org
      BUG=chromium:658691
      TEST=mjsunit/regress/regress-crbug-658691
      
      Review-Url: https://codereview.chromium.org/2447383002
      Cr-Commit-Position: refs/heads/master@{#40590}
      2ab2ec22
    • gsathya's avatar
      [promises] Remove FulfillPromise · 87ec1673
      gsathya authored
      This patch replaces it with calls to the runtime function and PromiseSet.
      
      This allows us to move PromiseReject to C++ without regressions.
      
      BUG=v8:5343
      
      Review-Url: https://codereview.chromium.org/2451133002
      Cr-Commit-Position: refs/heads/master@{#40589}
      87ec1673