1. 22 Sep, 2015 1 commit
    • dpranke's avatar
      Split the GN 'snapshot_toolchain' logic out into an include file. · 7d5d1570
      dpranke authored
      We need to build parts of v8 with a toolchain that might be different
      from both the default (target) toolchain and the regular host toolchain,
      because we need the snapshot to have the same bit-width as the target.
      V8's build defines a 'snapshot_toolchain' setting for this.
      
      It turns out that we need the value of this toolchain to be exposed
      to the Chromium build because some of the test targets (in browser_tests)
      depend on d8 and need to be able to built using the same toolchain.
      
      R=brett@chromium.org, jochen@chromium.org
      BUG=
      
      Review URL: https://codereview.chromium.org/1350223004
      
      Cr-Commit-Position: refs/heads/master@{#30854}
      7d5d1570
  2. 18 Sep, 2015 2 commits
  3. 15 Sep, 2015 2 commits
  4. 14 Sep, 2015 1 commit
  5. 11 Sep, 2015 1 commit
    • brettw's avatar
      Optionally use new GN optimization config. · ea8cfa92
      brettw authored
      The GN default optimization flag is changing from being specific to the
      debug/release status of the build to always being "default_optimization" so
      it's easier to override without being conditional on the exact setup in
      BUILDCONFIG.gn. See https://codereview.chromium.org/1324623005/
      
      Since V8 is DEPS-ed in, it will need to support both modes to allow a landing.
      This patch uses a temporary transitional flag I added to BUILDCONFIG to
      indicate which variant should be used. After the patch is landed, we can remove
      the new conditions and just remove default_optimization.
      
      Review URL: https://codereview.chromium.org/1333963002
      
      Cr-Commit-Position: refs/heads/master@{#30703}
      ea8cfa92
  6. 10 Sep, 2015 2 commits
  7. 08 Sep, 2015 2 commits
    • ulan's avatar
      Use idle task to perform incremental marking steps. · 057514d3
      ulan authored
      This moves incremental marking steps from gc-idle-time-handler and heap to the new incremental marking task.
      
      BUG=chromium:490559
      LOG=NO
      
      Review URL: https://codereview.chromium.org/1265423002
      
      Cr-Commit-Position: refs/heads/master@{#30641}
      057514d3
    • vogelheim's avatar
      Remove all gyp BUILD rules with multiple outputs. · 244cc0a6
      vogelheim authored
      - Modify js2c to accept --js and --nojs,
      - modify mksnapshot to accept --startup_src
        (instead of a positional parameter, so that it can be omitted),
      - modify v8.gyp to use the above so that no target has multiple
        output dependencies, and
      - update GN to use the switches above.
      
      (I have not succeeded in fixing the GYP->make translator to properly map
       multi-output rules, so that they work as expected in all edge cases.
       This CL signals defeat on that front, and instead I rewrite the GYP
       file to avoid that situation in the first place.)
      
      R=jochen@chromium.org
      BUG=v8:4382
      LOG=N
      
      Review URL: https://codereview.chromium.org/1310273009
      
      Cr-Commit-Position: refs/heads/master@{#30640}
      244cc0a6
  8. 07 Sep, 2015 2 commits
  9. 03 Sep, 2015 1 commit
    • mlippautz's avatar
      Adds atomic utilities (based on raw atomic operations) for your convenience: · 47d42a9a
      mlippautz authored
      {AtomicValue}: A simple integer value that can be atomically
      read/set/incremented.
      
      {AtomicEnumSet}: Similar to EnumSet this set basically represents an atomic
      bitfield based on enums. Atomic operations guarantee that setting one bit does
      not race with setting other bits.
      
      {AtomicEnumFlag}: A flag that is based on an enum that can be read and
      (attempted to be) changed atomically.
      
      BUG=chromium:524425
      LOG=N
      
      Review URL: https://codereview.chromium.org/1310993004
      
      Cr-Commit-Position: refs/heads/master@{#30560}
      47d42a9a
  10. 02 Sep, 2015 1 commit
  11. 01 Sep, 2015 3 commits
  12. 28 Aug, 2015 1 commit
  13. 26 Aug, 2015 1 commit
  14. 25 Aug, 2015 1 commit
    • mtrofin's avatar
      [turbofan] Deferred blocks splintering. · 5d954d65
      mtrofin authored
      This change encompasses what is necessary to enable stack checks in loops without suffering large regressions.
      
      Primarily, it consists of a new mechanism for dealing with deferred blocks by "splintering", rather than splitting, inside deferred blocks.
      
      My initial change was splitting along deferred block boundaries, but the regression introduced by stackchecks wasn't resolved conclusively. After investigation, it appears that just splitting ranges along cold block boundaries leads to a greater opportunity for moves on the hot path, hence the suboptimal outcome.
      
      The alternative "splinters" ranges rather than splitting them. While splitting creates 2 ranges and links them (parent-child), in contrast, splintering creates a new independent range with no parent-child relation to the original. The original range appears as if it has a liveness hole in the place of the splintered one. All thus obtained ranges are then register allocated with no change to the register allocator.
      
      The splinters (cold blocks) do not conflict with the hot path ranges, by construction. The hot path ones have less pressure to split, because we remove a source of conflicts. After allocation, we merge the splinters back to their original ranges and continue the pipeline. We leverage the previous changes made for deferred blocks (determining where to spill, for example).
      
      Review URL: https://codereview.chromium.org/1305393003
      
      Cr-Commit-Position: refs/heads/master@{#30357}
      5d954d65
  15. 24 Aug, 2015 1 commit
  16. 21 Aug, 2015 1 commit
  17. 20 Aug, 2015 2 commits
    • mstarzinger's avatar
      Separate UnicodeCache out into an own file. · 4e39437a
      mstarzinger authored
      This make inclusion of unicode-inl.h in object.h absolete. Now most
      compilation units don't require that header. It also breaks a cycle
      within declarations of the scanner.h header.
      
      This tries to remove includes of "-inl.h" headers from normal ".h"
      headers, thereby reducing the chance of any cyclic dependencies and
      decreasing the average size of our compilation units.
      
      Note that this change still leaves 3 violations of that rule in the
      code, checked with the "tools/check-inline-includes.sh" tool.
      
      R=yangguo@chromium.org
      
      Review URL: https://codereview.chromium.org/1287893006
      
      Cr-Commit-Position: refs/heads/master@{#30268}
      4e39437a
    • domenic's avatar
      Add experimental, non-snapshotted V8 extras · 6f582f08
      domenic authored
      Embedders would use these for features which must be able to be turned
      off at runtime, despite being compiled into V8. They can be turned on
      and off by the embedder using the --experimental_extras flag, e.g. via
      v8::SetFlagsFromString.
      
      R=yangguo@chromium.org, mlippautz@chromium.org, hpayer@chromium.org
      BUG=chromium:507137
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1284413002
      
      Cr-Commit-Position: refs/heads/master@{#30260}
      6f582f08
  18. 18 Aug, 2015 5 commits
    • mstarzinger's avatar
      Remove empty string-search.cc file. · e1ad0237
      mstarzinger authored
      R=titzer@chromium.org
      
      Review URL: https://codereview.chromium.org/1295333002
      
      Cr-Commit-Position: refs/heads/master@{#30234}
      e1ad0237
    • danno's avatar
      [turbofan] Unify referencing of stack slots · cbbaf9ea
      danno authored
      Previously, it was not possible to specify StackSlotOperands for all
      slots in both the caller and callee stacks. Specifically, the region
      of the callee's stack including the saved return address, frame
      pointer, function pointer and context pointer could not be addressed
      by the register allocator/gap resolver.
      
      In preparation for better tail call support, which will use the gap
      resolver to reconcile outgoing parameters, this change makes it
      possible to address all slots on the stack, because slots in the
      previously inaccessible dead zone may become parameter slots for
      outgoing tail calls. All caller stack slots are accessible as they
      were before, with slot -1 corresponding to the last stack
      parameter. Stack slot indices >= 0 access the callee stack, with slot
      0 corresponding to the callee's saved return address, 1 corresponding
      to the saved frame pointer, 2 corresponding to the current function
      context, 3 corresponding to the frame marker/JSFunction, and slots 4
      and above corresponding to spill slots.
      
      The following changes were specifically	needed:
      
      * Frame	has been changed to explicitly manage three areas of the
        callee frame, the fixed header, the spill slot area, and the
        callee-saved register area.
      * Conversions from stack slot indices to fp offsets all now go through
        a common bottleneck: OptimizedFrame::StackSlotOffsetRelativeToFp
      * The generation of deoptimization translation tables has been changed
        to support the new stack slot indexing scheme. Crankshaft, which
        doesn't support the new slot numbering in its register allocator,
        must adapt the indexes when creating translation tables.
      * Callee-saved parameters are now kept below spill slots, not above,
        to support saving only the optimal set of used registers, which is
        only known after register allocation is finished and spill slots
        have been allocated.
      
      Review URL: https://codereview.chromium.org/1261923007
      
      Cr-Commit-Position: refs/heads/master@{#30224}
      cbbaf9ea
    • mstarzinger's avatar
      Remove inline header includes from natives.h header. · 366262e6
      mstarzinger authored
      R=yangguo@chromium.org
      
      Review URL: https://codereview.chromium.org/1303463002
      
      Cr-Commit-Position: refs/heads/master@{#30222}
      366262e6
    • oth's avatar
      [Interpreter] Minimal bytecode generator. · 238397c1
      oth authored
      Bytecode generator for local assignment and basic binary operations.
      
      Command-line flag for printing bytecodes.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1294543002
      
      Cr-Commit-Position: refs/heads/master@{#30221}
      238397c1
    • yangguo's avatar
      Native context: run prologue.js before runtime.js · f3059c43
      yangguo authored
      R=mvstanton@chromium.org
      
      Review URL: https://codereview.chromium.org/1294803004
      
      Cr-Commit-Position: refs/heads/master@{#30217}
      f3059c43
  19. 14 Aug, 2015 1 commit
    • vogelheim's avatar
      Rework startup-data-util. · c69e2eae
      vogelheim authored
      - Make the API look like v8::V8::InitializeICU.
        (That is: A static method call, not an object to be created on the stack.)
      - Fix path separator on Windows, by calling base::OS::isPathSeparator.
      - Move into API, so that it can be called by hello-world & friends.
      - Actually call it from hello-world and friends.
      
      R=jochen@chromium.org
      BUG=
      
      Review URL: https://codereview.chromium.org/1292053002
      
      Cr-Commit-Position: refs/heads/master@{#30174}
      c69e2eae
  20. 13 Aug, 2015 1 commit
  21. 12 Aug, 2015 1 commit
  22. 07 Aug, 2015 1 commit
  23. 06 Aug, 2015 1 commit
  24. 05 Aug, 2015 1 commit
  25. 04 Aug, 2015 3 commits
  26. 31 Jul, 2015 1 commit