1. 30 Aug, 2018 1 commit
  2. 28 Aug, 2018 1 commit
  3. 24 Jul, 2018 1 commit
    • Clemens Hammacher's avatar
      Reland "[turboassembler] Introduce hard-abort mode" · d324382e
      Clemens Hammacher authored
      This is a reland of a462a785
      
      Original change's description:
      > [turboassembler] Introduce hard-abort mode
      > 
      > For checks and assertions (mostly for debug code, like stack alignment
      > or zero extension), we had two modes: Emit a call to the {Abort}
      > runtime function (the default), and emit a debug break (used for
      > testing, enabled via --trap-on-abort).
      > In wasm, where we cannot just call a runtime function because code must
      > be isolate independent, we always used the trap-on-abort behaviour.
      > This causes problems for our fuzzers, which do not catch SIGTRAP, and
      > hence do not detect debug code failures.
      > 
      > This CL introduces a third mode ("hard abort"), which calls a C
      > function via {ExternalReference}. The C function still outputs the
      > abort reason, but does not print the stack trace. It then aborts via
      > "OS::Abort", just like the runtime function.
      > This will allow fuzzers to detect the crash and even find a nice error
      > message.
      > 
      > Even though this looks like a lot of code churn, it is actually not.
      > Most added lines are new tests, and other changes are minimal.
      > 
      > R=mstarzinger@chromium.org
      > 
      > Bug: chromium:863799
      > Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
      > Reviewed-on: https://chromium-review.googlesource.com/1142163
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54592}
      
      Bug: chromium:863799
      Change-Id: I7729a47b4823a982a8e201df36520aa2b6ef5326
      Reviewed-on: https://chromium-review.googlesource.com/1146100Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54656}
      d324382e
  4. 20 Jul, 2018 2 commits
    • Sigurd Schneider's avatar
      Speculatively revert "[turboassembler] Introduce hard-abort mode" · 039c18e1
      Sigurd Schneider authored
      This reverts commit a462a785.
      
      Reason for revert: Breaks a TurboAssembler test:
      https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Arm/7726
      
      Original change's description:
      > [turboassembler] Introduce hard-abort mode
      > 
      > For checks and assertions (mostly for debug code, like stack alignment
      > or zero extension), we had two modes: Emit a call to the {Abort}
      > runtime function (the default), and emit a debug break (used for
      > testing, enabled via --trap-on-abort).
      > In wasm, where we cannot just call a runtime function because code must
      > be isolate independent, we always used the trap-on-abort behaviour.
      > This causes problems for our fuzzers, which do not catch SIGTRAP, and
      > hence do not detect debug code failures.
      > 
      > This CL introduces a third mode ("hard abort"), which calls a C
      > function via {ExternalReference}. The C function still outputs the
      > abort reason, but does not print the stack trace. It then aborts via
      > "OS::Abort", just like the runtime function.
      > This will allow fuzzers to detect the crash and even find a nice error
      > message.
      > 
      > Even though this looks like a lot of code churn, it is actually not.
      > Most added lines are new tests, and other changes are minimal.
      > 
      > R=​mstarzinger@chromium.org
      > 
      > Bug: chromium:863799
      > Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
      > Reviewed-on: https://chromium-review.googlesource.com/1142163
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54592}
      
      TBR=mstarzinger@chromium.org,clemensh@chromium.org
      
      Change-Id: I60c011cfe262ccebbb9abf32699a9fe17e72a3c8
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:863799
      Reviewed-on: https://chromium-review.googlesource.com/1145431
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54597}
      039c18e1
    • Clemens Hammacher's avatar
      [turboassembler] Introduce hard-abort mode · a462a785
      Clemens Hammacher authored
      For checks and assertions (mostly for debug code, like stack alignment
      or zero extension), we had two modes: Emit a call to the {Abort}
      runtime function (the default), and emit a debug break (used for
      testing, enabled via --trap-on-abort).
      In wasm, where we cannot just call a runtime function because code must
      be isolate independent, we always used the trap-on-abort behaviour.
      This causes problems for our fuzzers, which do not catch SIGTRAP, and
      hence do not detect debug code failures.
      
      This CL introduces a third mode ("hard abort"), which calls a C
      function via {ExternalReference}. The C function still outputs the
      abort reason, but does not print the stack trace. It then aborts via
      "OS::Abort", just like the runtime function.
      This will allow fuzzers to detect the crash and even find a nice error
      message.
      
      Even though this looks like a lot of code churn, it is actually not.
      Most added lines are new tests, and other changes are minimal.
      
      R=mstarzinger@chromium.org
      
      Bug: chromium:863799
      Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
      Reviewed-on: https://chromium-review.googlesource.com/1142163
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54592}
      a462a785
  5. 05 Jun, 2018 1 commit
  6. 08 May, 2018 1 commit
  7. 25 Apr, 2018 1 commit
    • Simon Zünd's avatar
      [typedarray] Implement TypedArray.p.sort using Torque. · 3ea1ad23
      Simon Zünd authored
      This CL implements TypedArray.p.sort in Torque. The Torque
      version works basically the same as the existing JS builtin:
      
      When no comparison function is provided, the C++ fast path builtin
      is used. Otherwise a quicksort written in Torque is used, with
      a InsertionSort fallback for smaller arrays.
      
      The JS quicksort implementation also containes a more elaborate
      third pivot calculation for larger arrays. This is currently not done.
      
      Reported benchmark results are only for those, where a custom
      comparison function is provided. The numbers for the C++ path stayed
      the same.
      
      Benchmark   Current (JS)       Torque    Speedup
      
      IntTypes            83.9        263.7        3.1
      BigIntTypes         32.1         54.6        1.7
      FloatTypes          99.3        138.7        1.4
      
      R=danno@chromium.org, jgruber@chromium.org
      
      Bug: v8:7382
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: I7abe7ceff525bab24f302d2f06b5961cca770d24
      Reviewed-on: https://chromium-review.googlesource.com/1021691
      Commit-Queue: Simon Zünd <szuend@google.com>
      Reviewed-by: 's avatarDaniel Clifford <danno@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52776}
      3ea1ad23
  8. 16 Apr, 2018 1 commit
    • Daniel Clifford's avatar
      Torque: Implement a DSL for CSA · a3353da8
      Daniel Clifford authored
      An overview of motivation behind Torque and some of its principles
      can be found here: https://bit.ly/2qAI5Ep
      
      Note that there is quite a bit of work left to do in order to get
      Torque production-ready for any non-trivial amount of code, but
      landing the prototype as-is will allow for much faster iteration.
      
      Bugs will be filed for all of the big-ticket items that are not
      landing blockers but called out in this patch as important to fix.
      
      Cq-Include-Trybots: luci.v8.try:v8_linux_nosnap_rel;luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: Ib07af70966d5133dc57344928885478b9c6b8b73
      Reviewed-on: https://chromium-review.googlesource.com/845682
      Commit-Queue: Daniel Clifford <danno@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52618}
      a3353da8
  9. 28 Mar, 2018 3 commits
  10. 26 Mar, 2018 1 commit
  11. 23 Mar, 2018 1 commit
    • Victor Costan's avatar
      Roll googletest to 1.8.0+. · 539e9072
      Victor Costan authored
      This is the V8 equivalent to https://crrev.com/2779193002 and must be landed
      before //build/secondary/{gtest,gmock} are removed from Chromium. This started
      out as https://crrev.com/2847693002
      
      The changes in tools/ were authored by yangguo@chromium.org and
      initially shared in http://crrev.com/2849783003.
      
      GoogleTest (gtest) and GoogleMock (gmock) are now hosted into the same
      googletest repository. In order to cope with this, the googletest
      repository is now sourced at third_party/googletest.
      
      The file/directory layout of Google Test is not yet considered stable.
      To minimize disruption while Google Test stabilizes, Chromium code will
      be insulated from third_party/googletest.
      
      * testing/gtest/include/gtest/ and testing/gmock/include/gmock have
        been populated with headers that forward into the appropriate
        locations of third_party/googletest
      
      * testing/BUILD.gn has been populated with the targets
        //testing/gtest(:gtest_main) and //testing/gmock(:gmock_main),
        which depend on the appropriate //third_party/googletest targets.
      
      All Chromium code should keep depending on the targets and
      headers in testing/{gtest,gmock} for now.
      
      BUG=chromium:630705
      
      Change-Id: I12b07ae78c8039aeff6ada7a3335e4e2b5d308ab
      Reviewed-on: https://chromium-review.googlesource.com/639953Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Victor Costan <pwnall@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52170}
      539e9072
  12. 12 Feb, 2018 1 commit
  13. 30 Jan, 2018 1 commit
  14. 23 Jan, 2018 1 commit
  15. 21 Oct, 2017 1 commit
  16. 11 Aug, 2017 1 commit
  17. 24 Apr, 2017 1 commit
  18. 05 Apr, 2017 1 commit
  19. 16 Feb, 2017 2 commits
  20. 15 Feb, 2017 1 commit
    • clemensh's avatar
      [gcmole] Avoid hardcoded maximum of 256 locals · b8787e34
      clemensh authored
      This CL changes the datastructure to store live variables from a
      std::bitset<256> to a std::vector<bool> to support an arbitrary number
      of locals. Unfortunately, std::vector<bool> does not define |= and &=
      operators, so I added them on the Environment class.
      
      R=vegorov@chromium.org, mstarzinger@chromium.org, machenbach@chromium.org
      BUG=v8:5970
      
      Review-Url: https://codereview.chromium.org/2694103005
      Cr-Commit-Position: refs/heads/master@{#43216}
      b8787e34
  21. 21 Sep, 2016 1 commit
    • machenbach's avatar
      [gn] Add gn support to gcmole · a8951a96
      machenbach authored
      This also adds sources missing for PPC and x87, fixes a few
      missing files in gyp due to wrong quotation and a few that
      were simply not included.
      
      The gn files are now authoritative, but the gcmole gyp and
      gn source lists are enforced to match exactly.
      
      This additional enforcement helped finding the bugs above
      and will be removed when we deprecate the gyp files.
      
      BUG=614645
      NOTRY=true
      
      Review-Url: https://codereview.chromium.org/2352103002
      Cr-Commit-Position: refs/heads/master@{#39592}
      a8951a96
  22. 03 Aug, 2016 1 commit
  23. 28 Jun, 2016 1 commit
  24. 14 Jun, 2016 1 commit
  25. 29 Apr, 2016 1 commit
  26. 25 Apr, 2016 1 commit
    • machenbach's avatar
      [build] Prepare moving v8.gyp to src/ · cb855fe7
      machenbach authored
      This will allow to pull in gyp as a deps to the same location
      as chromium (tools/gyp not build/gyp), needed for gn switch.
      
      This is the first step of a 3-way move.
      1) Copy v8.gyp in v8
      2) Update references in embedders (follow up)
      3) Remove old v8.gyp (follow up)
      
      BUG=chromium:474921
      LOG=n
      NOTRY=true
      
      Review URL: https://codereview.chromium.org/1920793002
      
      Cr-Commit-Position: refs/heads/master@{#35760}
      cb855fe7
  27. 01 Mar, 2016 1 commit
  28. 17 Feb, 2016 4 commits
  29. 16 Feb, 2016 1 commit
    • machenbach's avatar
      [Swarming] Bundle gcmole tools. · 3ec14170
      machenbach authored
      This enables downloading all gcmole dependencies from
      google storage on demand, controlled by a gyp flag
      "gcmole=1". This makes the analysis portable to any linux64
      host. The archive contains a prebuilt clang in the needed
      version, the gcmole plugin and a lua binary.
      
      The tool can be run through a new wrapper that sets up the
      environment. This'll ease running it on swarming.
      
      BUG=chromium:535160
      LOG=n
      
      Review URL: https://codereview.chromium.org/1703533002
      
      Cr-Commit-Position: refs/heads/master@{#34046}
      3ec14170
  30. 18 Feb, 2015 2 commits
  31. 08 Aug, 2014 1 commit
  32. 07 Aug, 2014 1 commit
    • svenpanne@chromium.org's avatar
      Update gcmole to a more recent clang/llvm. · 6e75bfc3
      svenpanne@chromium.org authored
      * Changes for 2.9:
           * Use CXX in Makefile instead of hardwired g++, we need a more
             modern GCC than 4.6 later, anyway.
      
      * Changes for 3.0:
           * Use llvm namespace.
           * Diagnostic => DiagnosticsEngine.
      
      * Changes for 3.1:
           * The BlockDeclRefExpr AST node is gone.
           * The structure of the CXXNewExpr AST node has changed.
           * Path changed from Release to Release+Asserts.
           * Use clang++ instead of -cc1, otherwise we lose the system include
             paths.
      
      * Changes for 3.2:
           none needed
      
      * Changes for 3.3:
           * Use lookup_iterator::begin/end instead of first/second.
      
      * Changes for 3.4:
           * createItaniumMangleContext => ItaniumMangleContext::create.
      
      * Changes for 3.5:
           * clang uses <type_traits> now, so -std=c++0x is needed.
           * Type-trait-related AST changes.
           * getCustomDiagID signature changed.
           * We must link the C++ library statically now.
      
      R=mstarzinger@chromium.org
      
      Review URL: https://codereview.chromium.org/445983002
      
      git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      6e75bfc3