1. 16 Oct, 2017 1 commit
  2. 13 Oct, 2017 1 commit
  3. 11 Oct, 2017 1 commit
    • Pierre Langlois's avatar
      [cctest] Record execution of parallel moves. · dabd1c0a
      Pierre Langlois authored
      This patch is a first step towards target independent tests for the
      CodeGenerator's AssembleMove and AssembleSwap methods.
      
      The tests on top of which this builds would only make sure that no assertions
      were triggered while generating moves, and that the hardware is happy executing
      them. We want to do more and check that the generated code performs correctly.
      
      In a nutshell, this introduces a facility that can do the following:
      
        - Setup an environment with registers and stack slots initialised with random
          values.
        - Perform a list of randomly generated moves and/or swaps on those.
        - Return the resulting environment.
      
      This is a first step and therefore is lacking a few things which will be
      implemented as follow-ups:
      
        - Support for kSimd128 moves and swaps.
        - Support large offsets for stack moves, as well as positive and negative.
        - Compare the resulting environment against the result of a reference
          simulation.
      
      For more background information, see this design document:
      https://docs.google.com/document/d/1KpioxCmtiB_9RaPaRidZPVtKlZ2BaNKGPYUjKFihhK0
      
      Bug: v8:6848
      Change-Id: Ie7dc837f4444df010ab58c64b722d40ee5d2af72
      Reviewed-on: https://chromium-review.googlesource.com/677398Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
      Cr-Commit-Position: refs/heads/master@{#48459}
      dabd1c0a
  4. 09 Oct, 2017 1 commit
  5. 05 Oct, 2017 1 commit
  6. 29 Sep, 2017 4 commits
  7. 28 Sep, 2017 2 commits
    • Enrico Bacis's avatar
      [wasm] Introduce the WasmContext · 6cd7a5a7
      Enrico Bacis authored
      The WasmContext struct introduced in this CL is used to store the
      mem_size and mem_start address of the wasm memory. These variables can
      be accessed at C++ level at graph build time (e.g., initialized during
      instance building). When the GrowMemory runtime is invoked, the context
      variables can be changed in the WasmContext at C++ level so that the
      generated code will load the correct values.
      
      This requires to insert a relocatable pointer only in the
      JSToWasmWrapper (and in the other wasm entry points), the value is then
      passed from function to function as an automatically added additional
      parameter. The WasmContext is then dropped when creating an Interpreter
      Entry or when invoking a JavaScript function. This removes the need of
      patching the generated code at runtime (i.e., when the memory grows)
      with respect to WASM_MEMORY_REFERENCE and WASM_MEMORY_SIZE_REFERENCE.
      However, we still need to patch the code at instance build time to patch
      the JSToWasmWrappers; in fact the address of the WasmContext is not
      known during compilation, but only when the instance is built.
      
      The WasmContext address is passed as the first parameter. This has the
      advantage of not having to move the WasmContext around if the function
      does not use many registers. This CL also changes the wasm calling
      convention so that the first parameter register is different from the
      return value register. The WasmContext is attached to every
      WasmMemoryObject, to share the same context with multiple instances
      sharing the same memory. Moreover, the nodes representing the
      WasmContext variables are cached in the SSA environment, similarly to
      other local variables that might change during execution.  The nodes are
      created when initializing the SSA environment and refreshed every time a
      grow_memory or a function call happens, so that we are sure that they
      always represent the correct mem_size and mem_start variables.
      
      This CL also removes the WasmMemorySize runtime (since it's now possible
      to directly retrieve mem_size from the context) and simplifies the
      GrowMemory runtime (since every instance now has a memory_object).
      
      R=ahaas@chromium.org,clemensh@chromium.org
      CC=gdeepti@chromium.org
      
      Change-Id: I3f058e641284f5a1bbbfc35a64c88da6ff08e240
      Reviewed-on: https://chromium-review.googlesource.com/671008
      Commit-Queue: Enrico Bacis <enricobacis@google.com>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48209}
      6cd7a5a7
    • Michael Starzinger's avatar
      [objects] Remove obsolete uses of {ReplaceCode} methods. · 4ba6f15e
      Michael Starzinger authored
      R=rmcilroy@chromium.org
      
      Change-Id: Id568afef0d6ac68170faa33ad9ab4bba97d40ce9
      Reviewed-on: https://chromium-review.googlesource.com/690294
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48202}
      4ba6f15e
  8. 26 Sep, 2017 1 commit
  9. 25 Sep, 2017 2 commits
  10. 21 Sep, 2017 3 commits
  11. 13 Sep, 2017 1 commit
  12. 11 Sep, 2017 1 commit
  13. 08 Sep, 2017 2 commits
  14. 01 Sep, 2017 1 commit
  15. 31 Aug, 2017 3 commits
    • Benedikt Meurer's avatar
      Revert "[cctest] Add fuzz tests for generating parallel moves." · 5dfacfed
      Benedikt Meurer authored
      This reverts commit c6b153fd.
      
      Reason for revert: Doesn't compile on the tree.
      
      Original change's description:
      > [cctest] Add fuzz tests for generating parallel moves.
      > 
      > These new tests are somewhat similar to the existing gap resolver tests except
      > we use the code generator and eventually run the generated code. The main idea
      > is to cover cases that are difficult to hit, such as move from/to slots which
      > are out of range of loads and stores, but may happen nonetheless.
      > 
      > At this time, the tests only make sure the code generator actually generated
      > some code, and that this code runs. In the future, it would be great to also
      > check that the moves were actually performed.
      > 
      > Bug: v8:6553
      > Change-Id: I089a25fa05b3a20649658bb8952926ab11f91d68
      > Reviewed-on: https://chromium-review.googlesource.com/574850
      > Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
      > Reviewed-by: Bill Budge <bbudge@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47733}
      
      TBR=bbudge@chromium.org,danno@chromium.org,jarin@chromium.org,pierre.langlois@arm.com,bmeurer@chromium.org
      
      Change-Id: I875ab38e039fdbf58b8f08658c391147d2ec01fa
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6553
      Reviewed-on: https://chromium-review.googlesource.com/645446Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47734}
      5dfacfed
    • Pierre Langlois's avatar
      [cctest] Add fuzz tests for generating parallel moves. · c6b153fd
      Pierre Langlois authored
      These new tests are somewhat similar to the existing gap resolver tests except
      we use the code generator and eventually run the generated code. The main idea
      is to cover cases that are difficult to hit, such as move from/to slots which
      are out of range of loads and stores, but may happen nonetheless.
      
      At this time, the tests only make sure the code generator actually generated
      some code, and that this code runs. In the future, it would be great to also
      check that the moves were actually performed.
      
      Bug: v8:6553
      Change-Id: I089a25fa05b3a20649658bb8952926ab11f91d68
      Reviewed-on: https://chromium-review.googlesource.com/574850
      Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
      Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47733}
      c6b153fd
    • Sathya Gunasekaran's avatar
      [Modules] Introduce ScriptOrModule and HostDefinedOptions · dbfe4a49
      Sathya Gunasekaran authored
      This patch introduces a new container type ScriptOrModule which
      provides the name and the host defined options of the script/module.
      
      This patch also introduces a new PrimitivesArray that can hold
      Primitive values, which the embedder can use to store metadata.
      
      The HostDefinedOptions is passed to V8 through the ScriptOrigin, and
      passed back to the embedder through HostImportModuleDynamically for
      module loading.
      
      Bug: v8:5785, v8:6658, v8:6683
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I56c26fc9a680b273ac0a6691e5ad75f15b8dc80a
      Reviewed-on: https://chromium-review.googlesource.com/622158Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47724}
      dbfe4a49
  16. 28 Aug, 2017 1 commit
  17. 23 Aug, 2017 1 commit
  18. 18 Aug, 2017 1 commit
  19. 17 Aug, 2017 3 commits
    • Ross McIlroy's avatar
      Reland "[Compiler] Remove CompileDebugCode and EnsureBytecode and replace with Compile" · 73ec5598
      Ross McIlroy authored
      This is a reland of 21da12a9
      Original change's description:
      > [Compiler] Remove CompileDebugCode and EnsureBytecode and replace with Compile
      > 
      > Removes the Compiler::CompileDebugCode and Compiler::EnsureBytecode functions
      > and replaces them with a Compiler::Compile(Handle<SharedFunctionInfo> shared)
      > function. The code in compiler.cc is refactored to use this function to compile
      > the SharedFunctionInfo when compiling a JSFunction.
      > 
      > Also does some other cleanup:
      >  - Removes CompileUnoptimizedFunction and inlines into new Compiler function
      >  - Moves code to create top level SharedFunctionInfo into CompilerTopLevel and
      >    out of FinalizeUnoptimizedCompile.
      > 
      > BUG=v8:6409
      > 
      > Change-Id: Ic54afcd8eb005c17f3ae6b2355060846e3091ca3
      > Reviewed-on: https://chromium-review.googlesource.com/613760
      > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47394}
      
      TBR=yangguo@chromium.org
      TBR=jarin@chromium.org
      
      Bug: v8:6409
      Change-Id: If2eae66a85f129e746a5ca5c04935540f3f86b04
      Reviewed-on: https://chromium-review.googlesource.com/618886Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47399}
      73ec5598
    • Ross McIlroy's avatar
      Revert "[Compiler] Remove CompileDebugCode and EnsureBytecode and replace with Compile" · 0f40415b
      Ross McIlroy authored
      This reverts commit 21da12a9.
      
      Reason for revert: Failing on arm64 simulator
      
      Original change's description:
      > [Compiler] Remove CompileDebugCode and EnsureBytecode and replace with Compile
      > 
      > Removes the Compiler::CompileDebugCode and Compiler::EnsureBytecode functions
      > and replaces them with a Compiler::Compile(Handle<SharedFunctionInfo> shared)
      > function. The code in compiler.cc is refactored to use this function to compile
      > the SharedFunctionInfo when compiling a JSFunction.
      > 
      > Also does some other cleanup:
      >  - Removes CompileUnoptimizedFunction and inlines into new Compiler function
      >  - Moves code to create top level SharedFunctionInfo into CompilerTopLevel and
      >    out of FinalizeUnoptimizedCompile.
      > 
      > BUG=v8:6409
      > 
      > Change-Id: Ic54afcd8eb005c17f3ae6b2355060846e3091ca3
      > Reviewed-on: https://chromium-review.googlesource.com/613760
      > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47394}
      
      TBR=rmcilroy@chromium.org,yangguo@chromium.org,jarin@chromium.org,leszeks@chromium.org
      
      Change-Id: I4ba63e82417a185f1528ff2633eb6c8872fbbfe5
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6409
      Reviewed-on: https://chromium-review.googlesource.com/618687Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47397}
      0f40415b
    • Ross McIlroy's avatar
      [Compiler] Remove CompileDebugCode and EnsureBytecode and replace with Compile · 21da12a9
      Ross McIlroy authored
      Removes the Compiler::CompileDebugCode and Compiler::EnsureBytecode functions
      and replaces them with a Compiler::Compile(Handle<SharedFunctionInfo> shared)
      function. The code in compiler.cc is refactored to use this function to compile
      the SharedFunctionInfo when compiling a JSFunction.
      
      Also does some other cleanup:
       - Removes CompileUnoptimizedFunction and inlines into new Compiler function
       - Moves code to create top level SharedFunctionInfo into CompilerTopLevel and
         out of FinalizeUnoptimizedCompile.
      
      BUG=v8:6409
      
      Change-Id: Ic54afcd8eb005c17f3ae6b2355060846e3091ca3
      Reviewed-on: https://chromium-review.googlesource.com/613760
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47394}
      21da12a9
  20. 14 Aug, 2017 1 commit
  21. 10 Aug, 2017 3 commits
  22. 09 Aug, 2017 1 commit
  23. 04 Aug, 2017 2 commits
  24. 03 Aug, 2017 2 commits