1. 05 Sep, 2019 1 commit
  2. 15 May, 2019 1 commit
  3. 06 Mar, 2019 1 commit
  4. 13 Feb, 2019 1 commit
  5. 18 Dec, 2018 1 commit
  6. 11 Dec, 2018 1 commit
  7. 21 Nov, 2018 1 commit
  8. 05 Oct, 2018 1 commit
    • Peter Marshall's avatar
      [cleanup] Don't declare inline runtime functions by default · 49420760
      Peter Marshall authored
      For each intrinsic/runtime function we define in runtime.h, an inline
      version is automatically declared. We only ever use 24 of the inline
      functions. Even though we don't call the other ones, macro magic means
      they still take up space by existing in various arrays and tables like
      kIntrinsicFunctions. They also create code in switch statements.
      
      Some drive-by cleanups:
       - Remove the switch in NameForRuntimeId() and just use the table of
         runtime functions to lookup the name directly.
       - Remove tests for IsFunction, ClassOf and StringAdd intrinsics as
         they are the last users of the inline versions of these.
       - Remove the MaxSmi inline version as it is only used in tests.
      
      Saves 64 KiB binary size.
      
      Change-Id: I4c870ddacd2655ffcffa97d93200ed8f853752f5
      Reviewed-on: https://chromium-review.googlesource.com/c/1261939
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56412}
      49420760
  9. 04 Oct, 2018 1 commit
  10. 19 Sep, 2018 1 commit
    • Clemens Hammacher's avatar
      [base] Remove OffsetFrom and AddressFrom · 60d6f7c2
      Clemens Hammacher authored
      Those two methods are spread over the code base, and their purpose is
      often not clear. Historically, they were used to turn pointers into
      integers in order to do computations on them. Today we have {Address}
      which is uintptr_t, so we can compute directly on that.
      
      This also makes the {RoundUp} and {RoundDown} macros only work on
      integral values (including {Address}).
      
      R=mlippautz@chromium.org
      
      Bug: v8:8015
      Change-Id: Ia98fb826793ee5d3a2a5b18c09c329d088443772
      Reviewed-on: https://chromium-review.googlesource.com/1233914Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56048}
      60d6f7c2
  11. 11 Sep, 2018 1 commit
  12. 30 Aug, 2018 1 commit
  13. 02 Aug, 2018 1 commit
  14. 01 Aug, 2018 2 commits
  15. 24 Jul, 2018 1 commit
  16. 20 Jul, 2018 1 commit
  17. 22 Jun, 2018 1 commit
  18. 08 May, 2018 1 commit
    • Clemens Hammacher's avatar
      [msan] Add static type checks for non-msan builds · f3745430
      Clemens Hammacher authored
      Currently, non-msan builds don't check the arguments for
      MSAN_ALLOCATED_UNINITIALIZED_MEMORY and MSAN_MEMORY_IS_INITIALIZED
      calls, so type errors will only be reported on the msan builder.
      This CL adds static_asserts for non-msan builds.
      
      Drive-by: Rename MEMORY_SANITIZER to V8_USE_MEMORY_SANITIZER and move
      it to macros.h, where also other such macros (like
      V8_USE_ADDRESS_SANITIZER) live.
      
      R=ahaas@chromium.org
      
      Bug: v8:7570
      Change-Id: If6c3c6e0d1287b5f1e0c59828cd028d1beac933d
      Reviewed-on: https://chromium-review.googlesource.com/1046655Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53071}
      f3745430
  19. 04 May, 2018 1 commit
  20. 24 Apr, 2018 1 commit
  21. 09 Apr, 2018 1 commit
  22. 06 Apr, 2018 1 commit
  23. 02 Mar, 2018 1 commit
  24. 01 Mar, 2018 1 commit
    • Clemens Hammacher's avatar
      Fix is_trivially_copyable check for MSVC and older stdlibc++ · 9dd6f0d0
      Clemens Hammacher authored
      MSVC 2015 and 2017 implement std::is_trivially_copyable, but not
      correctly. Hence, reimplement it using more low-level primitives.
      
      For stdlibc++ versions below 5.0, we already have a workaround for the
      missing support of std::is_trivially_copyable, but this is an unsound
      approximation, because it is ignoring move constructor, move assignment
      and copy assignment. Therefore, do not use this approximation for
      asserting trivial copyability of a type.
      
      Finally, add unittests for the new is_trivially_copyable
      implementations.
      
      R=mstarzinger@chromium.org
      CC=loorongjie@gmail.com
      
      Change-Id: I9ee56a65882e8c94b72c9a2d484edd27963a5d89
      Reviewed-on: https://chromium-review.googlesource.com/941521Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51651}
      9dd6f0d0
  25. 02 Feb, 2018 1 commit
  26. 11 Jan, 2018 1 commit
  27. 05 Jan, 2018 1 commit
  28. 01 Dec, 2017 2 commits
  29. 08 Aug, 2017 1 commit
  30. 31 Jul, 2017 1 commit
  31. 27 Jul, 2017 3 commits
  32. 19 Jul, 2017 1 commit
    • Clemens Hammacher's avatar
      [base] Remove pre-c++11 restrictions of macros · d16b45eb
      Clemens Hammacher authored
      Before the existence of "= delete", we were enforcing that the
      DISALLOW_* macros were used in the private: section of classes only.
      This is not needed any more, hence remove the comment on the macros.
      
      Also, introduce macros for making types move-only, and use them
      instead of our special macro in wasm.
      
      R=bmeurer@chromium.org
      CC=titzer@chromium.org
      
      Change-Id: Iceba456fb0a32ae67defe16e35b865db8c8da500
      Reviewed-on: https://chromium-review.googlesource.com/577687Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46773}
      d16b45eb
  33. 13 Jul, 2017 2 commits
  34. 10 Jul, 2017 2 commits
    • Benedikt Meurer's avatar
      Revert "[base] Make USE a variadic template" · b707c602
      Benedikt Meurer authored
      This reverts commit 39e335c7.
      
      Reason for revert: Breaks debug builds on Linux, especially mksnapshot fails now, i.e.:
      
      FAILED: mksnapshot
      python "../../build/toolchain/gcc_link_wrapper.py" --output="./mksnapshot" -- ../../third_party/llvm-build/Release+Asserts/bin/clang++ -pie -Wl,--fatal-warnings -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -Wl,--no-as-needed -lpthread -Wl,--as-needed -fuse
      -ld=gold -B../../third_party/binutils/Linux_x64/Release/bin -Wl,--threads -Wl,--thread-count=4 -Wl,--icf=all -m64 -Werror -Wl,--gdb-index --sysroot=../../build/linux/debian_jessie_amd64-sysroot -L../../build/linux/debian_jessie_amd64-sysroot/lib/x86_64-linux-gnu -Wl,-rpat
      h-link=../../build/linux/debian_jessie_amd64-sysroot/lib/x86_64-linux-gnu -L../../build/linux/debian_jessie_amd64-sysroot/usr/lib/x86_64-linux-gnu -Wl,-rpath-link=../../build/linux/debian_jessie_amd64-sysroot/usr/lib/x86_64-linux-gnu -Wl,-rpath-link=. -Wl,--disable-new-dt
      ags -rdynamic -nodefaultlibs -o "./mksnapshot" -Wl,--start-group @"./mksnapshot.rsp"  -Wl,--end-group   -ldl -lpthread -lrt -lc -lm -lgcc_s
      ../../src/elements.cc:3362: error: undefined reference to 'v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)7>::Kind'
      ../../src/elements.cc:3362: error: undefined reference to 'v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)8>::Kind'
      ../../src/elements.cc:3953: error: undefined reference to 'v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)9>::Kind'
      ../../src/profiler/heap-snapshot-generator.cc:187: error: undefined reference to 'v8::internal::(anonymous namespace)::SnapshotSizeConstants<4ul>::kExpectedHeapGraphEdgeSize'
      ../../src/elements.cc:3953: error: undefined reference to 'v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)10>::Kind'
      ../../src/profiler/heap-snapshot-generator.cc:198: error: undefined reference to 'v8::internal::(anonymous namespace)::SnapshotSizeConstants<4ul>::kExpectedHeapEntrySize'
      ../../src/profiler/heap-snapshot-generator.cc:199: error: undefined reference to 'v8::internal::(anonymous namespace)::SnapshotSizeConstants<8ul>::kExpectedHeapGraphEdgeSize'
      ../../src/profiler/heap-snapshot-generator.cc:200: error: undefined reference to 'v8::internal::(anonymous namespace)::SnapshotSizeConstants<8ul>::kExpectedHeapEntrySize'
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
      ninja: build stopped: subcommand failed.
      
      Original change's description:
      > [base] Make USE a variadic template
      > 
      > This will allow for passing more than one variable. This is
      > particularly interesting for calling a method on each type in a
      > parameter pack, as in:
      > 
      > template<typename... T>
      > void foo(T&&... ts) {
      >   USE(do_something(ts)...);
      > }
      > 
      > Drive-by fix: Allow to pass arbitrary types to USE, including
      > references. This might prevent a copy for pass-by-value.
      > 
      > R=​ishell@chromium.org
      > 
      > Change-Id: I8f894d730bbcd195ed83705f98771994b4bc906f
      > Reviewed-on: https://chromium-review.googlesource.com/565561
      > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#46527}
      
      TBR=clemensh@chromium.org,ishell@chromium.org
      
      Change-Id: Ibd3f0529e7a3136c4bcac15443da3d9f8dde8510
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/565141Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46534}
      b707c602
    • Clemens Hammacher's avatar
      [base] Make USE a variadic template · 39e335c7
      Clemens Hammacher authored
      This will allow for passing more than one variable. This is
      particularly interesting for calling a method on each type in a
      parameter pack, as in:
      
      template<typename... T>
      void foo(T&&... ts) {
        USE(do_something(ts)...);
      }
      
      Drive-by fix: Allow to pass arbitrary types to USE, including
      references. This might prevent a copy for pass-by-value.
      
      R=ishell@chromium.org
      
      Change-Id: I8f894d730bbcd195ed83705f98771994b4bc906f
      Reviewed-on: https://chromium-review.googlesource.com/565561Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46527}
      39e335c7