1. 05 Mar, 2021 1 commit
    • Nico Hartmann's avatar
      Check published FunctionTemplateInfo is immutable · 1040aef3
      Nico Hartmann authored
      This CL generalized the previous check that a FunctionTemplateInfo
      instance is not changed after being instantiated to a check for
      immutability after being published. A FTI is considered published once
      it is instantiated (set in a SharedFunctionInfo) or set as an accessor
      on a JSObject. The published state is tracked in the flags field.
      TurboFan relies on this immutabilty for concurrent access.
      
      The immutability requirement was already met before this CL, but this
      change enforces this by adding necessary checks.
      
      Change-Id: I4d214e7aed8e04339072c2870caef1c28c772ed5
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2718147Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73221}
      1040aef3
  2. 04 Nov, 2020 1 commit
  3. 28 Oct, 2020 2 commits
    • Tobias Tebbi's avatar
      [torque] generate C++ class definitions per Torque file · 03f60296
      Tobias Tebbi authored
      This CL splits the class definitions per .tq file, to realize the
      following relationship:
      A class defined in src/objects/foo.tq has a C++ definition in
      src/objects/foo.h. Torque then generates:
      
      - torque-generated/src/objects/foo-tq.inc
        An include file (no proper header) to be included in src/objects/foo.h
        containing the Torque-generated C++ class definition.
      
      - torque-generated/src/objects/foo-tq-inl.inc
        An include file (no proper header) to be included in
        src/objects/foo-inl.h containing inline function definitions.
      
      - torque-generated/src/objects/foo-tq.cc
        A source file including src/objects/foo-inl.h that contains non-inline
        function definitions.
      
      Advantages of this approach:
      - Avoid big monolithic headers and preserve the work that went into
        splitting objects.h
      - Moving a definition to Torque keeps everything in the same place
        from a C++ viewpoint, including a fully Torque-generated C++ class
        definition.
      - The Torque-generated include files do not need to be independent
        headers, necessary includes or forward declarations can just be added
        to the headers that include them.
      
      Drive-by changes:
      A bunch of definitions and files had to be moved or created to realize
      a consistent 1:1 relationship between .tq files and C++ headers.
      
      
      Bug: v8:7793
      TBR: hpayer@chromium.org
      Change-Id: I239a89a16d0bc856a8669d7c92aeafe24a7c7663
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2470571
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
      Reviewed-by: 's avatarSeth Brenith <seth.brenith@microsoft.com>
      Cr-Commit-Position: refs/heads/master@{#70853}
      03f60296
    • Daniel Vogelheim's avatar
      [api] TC39 Dynamic Code Brand checks · aabe6406
      Daniel Vogelheim authored
      https://github.com/tc39/proposal-dynamic-code-brand-checks
      
      An experimental implementation of the TC39 "Dynamic Code Brand Checks". This
      implementation sticks an API-only symbol on each "code kind" object, which
      is more flexible, but costs memory for each instance.
      
      Bug: chromium:1096017
      Change-Id: Idfeca035c61204ca0cea8ec735fdfa40a49d85e4
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2339618
      Commit-Queue: Daniel Vogelheim <vogelheim@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#70842}
      aabe6406
  4. 05 Oct, 2020 2 commits
  5. 30 Sep, 2020 1 commit
  6. 28 May, 2020 1 commit
  7. 26 May, 2020 1 commit
    • Seth Brenith's avatar
      Revert "[torque][cleanup] Use more precise field types in a few classes" · 16cb2d94
      Seth Brenith authored
      This reverts commit 4e5fabae.
      
      Reason for revert: performance regressions chromium:1085305, chromium:1084978
      
      Original change's description:
      > [torque][cleanup] Use more precise field types in a few classes
      > 
      > This change updates some Torque-defined classes to include more precise
      > field types where possible. It also updates those classes to use
      > @generateCppClass. One field was removed because it's unused
      > (PrototypeInfo::validity_cell), and two fields in StackFrameInfo
      > actually became less precise because they're based on Script::name,
      > which is an embedder-provided untyped Local<Value>. (Automatically
      > generated accessors pointed out this bug easily.)
      > 
      > This change also includes a couple of minor fixes in Torque.
      > 
      > Change-Id: Ib2bc6c7165bb3612b6d344c0686a94165a568277
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2199640
      > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#67907}
      
      TBR=ulan@chromium.org,tebbi@chromium.org,verwaest@chromium.org,seth.brenith@microsoft.com
      
      Change-Id: I720821d8dc84ea0d79eb137f1c2507f75df9a107
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2211322Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67972}
      16cb2d94
  8. 19 May, 2020 1 commit
  9. 18 Mar, 2020 1 commit
  10. 21 Feb, 2020 1 commit
  11. 19 Feb, 2020 2 commits
  12. 18 Feb, 2020 2 commits
  13. 29 Aug, 2019 1 commit
    • Seth Brenith's avatar
      [cleanup][torque] Use @generateCppClass in some simple cases, part 2 · a5811358
      Seth Brenith authored
      This patch is mostly mechanical. A few changes in
      implementation-visitor.cc might be worth mentioning:
      - Don't generate both field offset macros and class definitions for the
        same class. This was mostly just to keep me from forgetting to remove
        the DEFINE_FIELD_OFFSET_CONSTANTS part when converting classes, but
        also helpfully flagged that FixedArrayBase wasn't using the generated
        class that it requested.
      - Generate forward declarations for all tq-defined classes in
        internal-class-definitions-tq.h. This is helpful for making things
        compile when classes have fields of other class types.
      - When generating accessors for union types, use the nearest class type
        that contains the entire union rather than plain Object. This is
        important for compile-time type safety. It also required a few minor
        fixes elsewhere (isolate.cc, modules.cc, scope-info.cc,
        source-text-module.cc, and a correction of the field types in
        CallHandlerInfo to match how they're set in api.cc).
      
      Change-Id: I3b9280e30779ce57fb9f3629eecfec898e26d708
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1774976Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      Cr-Commit-Position: refs/heads/master@{#63458}
      a5811358
  14. 09 Jul, 2019 1 commit
  15. 23 May, 2019 2 commits
  16. 08 Mar, 2019 1 commit
  17. 15 Feb, 2019 1 commit
  18. 01 Feb, 2019 1 commit
  19. 09 Jan, 2019 1 commit
  20. 26 Dec, 2018 1 commit
  21. 20 Dec, 2018 1 commit
  22. 18 Dec, 2018 1 commit
  23. 17 Dec, 2018 1 commit
  24. 08 Dec, 2018 1 commit
  25. 28 Nov, 2018 1 commit
  26. 22 Nov, 2018 1 commit
    • Dan Elphick's avatar
      [objects] Shrink FunctionTemplateInfo · b0b5eae0
      Dan Elphick authored
      Adds a new field rare_data of type FunctionTemplateRareData to
      FunctionTemplateInfo and moves 8 others which are unset on 90% of
      FunctionTemplateInfo objects to this field.
      
      Getters like prototype_template() are changed to GetPrototypeTemplate()
      to indicate they're not trivial. The setters are replaced with static
      methods (e.g. SetPrototypeTemplate) that take an Isolate and the
      template object, since they can now perform allocation.
      
      Bug: v8:8478
      Change-Id: If72b132ade4ca4a3f803f913761c9caddc0e9dd6
      Reviewed-on: https://chromium-review.googlesource.com/c/1342519
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57725}
      b0b5eae0
  27. 17 May, 2018 1 commit
  28. 27 Apr, 2018 1 commit