1. 21 Mar, 2022 1 commit
  2. 04 Mar, 2022 1 commit
    • Camillo Bruni's avatar
      [tools] Improve gcmole part II · ecc3cd25
      Camillo Bruni authored
      Prepare gcmole.cc for the next update:
      - Print possible GC locations when discovering stale/dead variables
      - Make error messages less confusing for the modern V8 engineer
      - Prepare gcmole to read suspects.allowlist instead of .whitelist
      - Use more readable variable names
      - Only log non-found types with --verbose
      - Change the currently unusued gccauses format in gcmole.py and
        support loading it back in gcmole.cc
      - Implemented first basic gc call-chain printing (disabled by default)
      
      GCmole packaging:
      - Add debug mode to bootstrap.sh build script
      - Update gcmole.py run instructions in bootstrap.sh and package.sh
      
      Bug: v8:10009
      Change-Id: I369d48baa2980455d2e8f57e7a803d0384fe83f1
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3480095Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79357}
      ecc3cd25
  3. 12 Jan, 2021 1 commit
    • Camillo Bruni's avatar
      [tools] Add DisableGCMole scope · d16a2a68
      Camillo Bruni authored
      Make sure gcmole detects issue in DisallowGarbageCollection scopes.
      
      DisallowGarbageCollection is widely used in the codebase to document
      code that doesn't allocate. However, this has the rather unexpected
      side-effect that gcmole is not run when such a scope is active.
      
      This CL changes the default behavior of gcmole to run even with
      DisallowGarbageCollection scopes present. This will give us the best
      results of both worlds, dynamic checks by the fuzzer, and static
      analysis by gcmole.
      
      To allow crazy local raw pointer operations there is a new
      DisableGCMole scope that explicitly disables gcmole.
      
      Change-Id: I0a78fb3b4ceaad35be9bcf7293d917a41f90c91f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2615419Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72039}
      d16a2a68
  4. 20 Nov, 2020 1 commit
  5. 17 Nov, 2020 1 commit
    • Leszek Swirski's avatar
      [asserts] Add combination assert scopes · 076687ab
      Leszek Swirski authored
      Add a "combination" assert scope class, which combines multiple existing
      assert scopes.  This will allow scopes with functional overlap, e.g.
      DisallowGarbageCollection and DisallowHeapAllocation, to share an assert
      type rather than rather than requiring users to remember to set both. To
      demonstrate this, this redefines DisallowGarbageCollection to a
      combination of DisallowHeapAllocation and a new DisallowSafepoints, and
      some of the DCHECKs checking both are simplified to only check one or
      the other, as appropriate.
      
      The combination classes become subclasses of the existing assert scopes,
      so that they can be used in their place as e.g. a function parameter,
      e.g. DisallowGarbageCollection can be passed to a function expecting
      const DisallowHeapAllocation&.
      
      As a drive-by, this also changes the per-thread assert scopes to use a
      bitmask, rather than a bool array, to store their per-thread data. The
      per-isolate scopes already used a bitmask, so this unifies the
      behaviour between the two.
      
      Change-Id: I209e0a56f45e124c0ccadbd9fb77f39e070612fe
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2534814
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71231}
      076687ab
  6. 16 Nov, 2020 1 commit
  7. 26 Oct, 2020 1 commit
  8. 14 Sep, 2020 1 commit
  9. 24 Jun, 2020 1 commit
  10. 22 Jun, 2020 1 commit
  11. 19 Jun, 2020 1 commit
  12. 18 May, 2020 1 commit
  13. 13 Dec, 2019 1 commit
  14. 26 Nov, 2019 2 commits
  15. 29 Aug, 2019 1 commit
  16. 13 Mar, 2019 1 commit
  17. 11 Mar, 2019 1 commit
  18. 07 Mar, 2019 1 commit
  19. 16 Feb, 2017 1 commit
  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. 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
  22. 23 Apr, 2013 1 commit
  23. 17 Feb, 2012 1 commit
  24. 16 May, 2011 1 commit
  25. 07 Apr, 2011 1 commit