- 26 Jan, 2022 1 commit
-
-
Igor Sheludko authored
1) when generating short builtin calls/jumps assemblers should use the offset from the CodeRange base rather than the start of the code range reservation because otherwise it's not guaranteed that the PC-relative offset will fit into architecture's constraints. The code range reservation start could be different from the code range base in the following cases: * when the "base bias size" is non-zero (on Windows 64), * when we ended up over-reserving the address space for the code range, which happens as a last resort to fulfil the CodeRange alignment requirements. See the VirtualMemoryCage description for details. Drive-by fixes: 2) in case of over-reserving address space for external code range, the pre-calculated hint for where the remapped embedded builtins should be copied to was outside of the allocatable CodeRange region and thus useless. The fix is to use the allocatable region instead of the reservation region when calculating the hint. 3) when allocating CodeRange with zero base bias size we can create the VirtualMemory reservation from the first attempt simply by passing the required base alignment to the VirtualMemory constructor. Bug: v8:11880, chromium:1290591 Change-Id: If341418947e2170d967e22b38bcc371594939c1c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3412089Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#78772}
-
- 04 Jan, 2022 1 commit
-
-
Clemens Backes authored
For low-cost exception handling, it's important to be able to quickly drop frames from the stack until reaching the exception handler. The Intel shadow stack offers an instruction to avoid offending stack discipline, incsspq, which drops N values from the stack. This CL integrates that instruction for v8 exception handling. Bug: v8:11246 Change-Id: I908f0ab8bb3de6c36e6078e27b65132287328f2d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289637Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#78469}
-
- 16 Dec, 2021 1 commit
-
-
Igor Sheludko authored
... in order to avoid Code <-> CodeT conversions in builtins. This CL changes the meaning of RelocInfo::CODE_TARGET which now expects CodeT objects as a code target. In order to reduce code churn this CL makes BUILTIN_CODE and friends return CodeT instead of Code. In the follow-up CLs BUILTIN_CODET and friends will be removed. Bug: v8:11880 Change-Id: Ib8f60973e55c60fc62ba84707471da388f8201b4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3338483Reviewed-by:
Patrick Thier <pthier@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#78393}
-
- 11 Oct, 2021 1 commit
-
-
Victor Gomes authored
Compiling Sparkplug on the heap saved 10% of the CompileBaseline RCS metric, but that came with too much code complexity. Since in the end that corresponds to < 1% of the entire compilation time, we decided to revert this project. This reverts: commit e29b2ae4 commit d1f2a83b commit 4666e182 commit a1147408 commit e0d4254f commit 9ab8422d commit a3b24ecc commit 1eb87706 commit fe5c9dfd commit 7ac3b55a commit 7e95f30e commit 323b5962 commit 6bf0b704 commit e82b368b commit 5020d83e commit 642a4673 commit ec7b99d5 commit fb4f89ae commit 208854bb commit 63be6dde Bug: v8:12158 Change-Id: I9f2539be6c7d80c6e243c9ab173e3c5bb0dff97d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3136453 Auto-Submit: Victor Gomes <victorgomes@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#77319}
-
- 27 Aug, 2021 1 commit
-
-
Victor Gomes authored
Minor improvements for on heap reference vectors: - Use emplace_back instead of push_back. - Reserve initial capacity. Bug: v8:11993 Change-Id: Ie2f9ad9cc48d1b48a76419459a9ac721f4079175 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3124802 Commit-Queue: Victor Gomes <victorgomes@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#76538}
-
- 11 Aug, 2021 1 commit
-
-
Nico Hartmann authored
When running d8 with --trace-deopt, any deopt will contain the id of the node that caused this deopt. These ids also show up in the deoptimization data table of when using --print-opt-code. Change-Id: I412ca7a4ff20427100fa63101d78ee3846569a8e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3024144Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#76220}
-
- 04 Aug, 2021 1 commit
-
-
Victor Gomes authored
Bug: v8:11872 Change-Id: I6d133ee33b48fa1f02442564b6a30d56986758eb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3071401Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/master@{#76092}
-
- 29 Jul, 2021 1 commit
-
-
Victor Gomes authored
If a GC happens between Code object allocation and Code finalization, we might have invalid embedded object references. We fallback and patch the refernces back to handles, then unbox the handles and relocate. Bug: v8:11872 Change-Id: I3a7b050c20179c1708eef343ec8266441ab5dca1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3059689 Commit-Queue: Victor Gomes <victorgomes@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#75996}
-
- 22 Jul, 2021 1 commit
-
-
Jakob Gruber authored
- Rename AssemblerOptions::enable_root_array_delta_access to enable_root_relative_access. - Remove the identical but duplicated PipelineData::roots_relative_addressing_enabled. Bug: v8:9594 Change-Id: I41c5ddc3c1ad9681dce8402640c50529f00141cf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3043956 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#75852}
-
- 30 Jun, 2021 1 commit
-
-
Victor Gomes authored
Bug: v8:11872 Change-Id: I16c6c0027b905215a789f8d47b19824b1c1f2491 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2992725 Commit-Queue: Victor Gomes <victorgomes@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#75465}
-
- 23 Jun, 2021 3 commits
-
-
Clemens Backes authored
This is a reland of ac654646. Two constants defined in {AssemblerBase} were not defined anywhere, which is fixed now. Original change's description: > [wasm] Remove WasmInstructionBuffer > > {WasmInstructionBuffer} was basically a wrapper around {AssemblerBuffer} > which remembered the last {AssemblerBuffer} on {Grow()}. Since the > {Assembler} itself already keeps track of the latest {AssemblerBuffer}, > this functionality is mostly redundant. All we need instead is a method > to retrieve the {AssemblerBuffer} from the {Assembler}. > > This CL thus removes {WasmInstructionBuffer} and instead adds > {AssemblerBase::ReleaseBuffer}. > > R=jkummerow@chromium.org, mslekova@chromium.org > CC=dlehmann@google.com > > Bug: v8:11714 > Change-Id: Id07945b67992802a6177bf09e5f5c5be08f657b0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2982013 > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Maya Lekova <mslekova@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Cr-Commit-Position: refs/heads/master@{#75336} Bug: v8:11714 Change-Id: I8797de1a7a78a93aaef936e46bfd1e73ec2cc9d5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2982015Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#75338}
-
Maya Lekova authored
This reverts commit ac654646. Reason for revert: Breaks ASAN no-inline - https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Clusterfuzz%20Linux64%20ASAN%20no%20inline%20-%20release%20builder/22909/overview Original change's description: > [wasm] Remove WasmInstructionBuffer > > {WasmInstructionBuffer} was basically a wrapper around {AssemblerBuffer} > which remembered the last {AssemblerBuffer} on {Grow()}. Since the > {Assembler} itself already keeps track of the latest {AssemblerBuffer}, > this functionality is mostly redundant. All we need instead is a method > to retrieve the {AssemblerBuffer} from the {Assembler}. > > This CL thus removes {WasmInstructionBuffer} and instead adds > {AssemblerBase::ReleaseBuffer}. > > R=jkummerow@chromium.org, mslekova@chromium.org > CC=dlehmann@google.com > > Bug: v8:11714 > Change-Id: Id07945b67992802a6177bf09e5f5c5be08f657b0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2982013 > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Maya Lekova <mslekova@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Cr-Commit-Position: refs/heads/master@{#75336} Bug: v8:11714 Change-Id: Iff32952f712ab2f0f9a16d91906d0135c084f4df No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2982014 Auto-Submit: Maya Lekova <mslekova@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#75337}
-
Clemens Backes authored
{WasmInstructionBuffer} was basically a wrapper around {AssemblerBuffer} which remembered the last {AssemblerBuffer} on {Grow()}. Since the {Assembler} itself already keeps track of the latest {AssemblerBuffer}, this functionality is mostly redundant. All we need instead is a method to retrieve the {AssemblerBuffer} from the {Assembler}. This CL thus removes {WasmInstructionBuffer} and instead adds {AssemblerBase::ReleaseBuffer}. R=jkummerow@chromium.org, mslekova@chromium.org CC=dlehmann@google.com Bug: v8:11714 Change-Id: Id07945b67992802a6177bf09e5f5c5be08f657b0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2982013 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75336}
-
- 22 Jun, 2021 2 commits
-
-
Dan Elphick authored
StringBuilder and its base class SimpleStringBuilder aren't very safe and are a potential source of memory leaks or double-frees. This removes the StringBuilder class and converts all of its usages to use the standard library. (As a drive-by, this converts std::ostream* to std::ostream& which is more idiomatic C++). Bug: v8:11917 Change-Id: I0eaf9d60cf49836e65bb28f0e114b33ef8103a61 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2978252 Auto-Submit: Dan Elphick <delphick@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#75298}
-
Victor Gomes authored
1. Adds the flag --sparkplug-on-heap 2. Creates OnHeapAssemblerBuffer 3. Generates code on heap (but still relocates later) 4. Provides Assembler::IsOnHeap function Bug: v8:11872 Change-Id: I6223bf27a5fbcfb5f94f3462b951443b35273661 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2949097 Commit-Queue: Victor Gomes <victorgomes@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#75291}
-
- 18 Jun, 2021 1 commit
-
-
Dan Elphick authored
The adding of base:: was mostly prepared using git grep and sed: git grep -l <pattern> | grep -v base/vector.h | \ xargs sed -i 's/\b<pattern>\b/base::<pattern>/ with lots of manual clean-ups due to the resulting v8::internal::base::Vectors. #includes were fixed using: git grep -l "src/utils/vector.h" | \ axargs sed -i 's!src/utils/vector.h!src/base/vector.h!' Bug: v8:11879 Change-Id: I3e6d622987fee4478089c40539724c19735bd625 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2968412Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#75243}
-
- 15 Jun, 2021 1 commit
-
-
Camillo Bruni authored
CodeComment nicely indents nested comments for better readable disassembled code. In addition, there are two helper macros: - ASM_CODE_COMMENT adds the current function name as comment - ASM_CODE_COMMENT_STRING macro can be used with custom strings Bug: v8:11879 Change-Id: If5ff7e315f5acebe613f24b20d34694155f928d3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2960888 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#75152}
-
- 28 Apr, 2021 1 commit
-
-
Shu-yu Guo authored
This CL factors out a CodeRange class out of MemoryAllocator. When V8_COMPRESS_POINTERS_IN_SHARED_CAGE is defined, there is a single CodeRange shared by all Isolates in the process. This also turns short builtins back for both configurations of pointer compression. When sharing a cage, there is a single copy of the re-embedded builtins. Since a shared pointer cage is still experimental, to avoid API churn this CodeRange's size is not configurable and is always the maximal size depending on the underlying platform. Change-Id: Ie94f52746f2c5450247a999cc6071e3914d4cf0c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2819206Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#74261}
-
- 21 Apr, 2021 1 commit
-
-
Leszek Swirski authored
Similar to the recent change to --code-comments, make --debug-code a build-time enabled flag, enabled by default on debug builds. This also removes the emit_debug_code() option from the assembler, instead using the flag directly (there were no cases where this option didn't match the global flag). Change-Id: Ic26b0d37b615a055508c9dda099ffbe979eae030 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2843348 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#74095}
-
- 20 Apr, 2021 1 commit
-
-
Camillo Bruni authored
- Add v8_code_comments to allow runtime-enabled code comments with --code-comments - v8_code_comments is enable by default in debug mode - Make MacroAssembler::RecordComment helper inlineable to remove call and check overheads when v8_code_comments = false - Make FLAG_code_comments readonly if v8_code_comments = false and benefit from dead-code elimination This saves roughly 5% CompileBaselineVisit time in sparkplug on a 5MiB JS file. Bug: v8:11420 Change-Id: I1174ab37b4bbe1ff8880416c1f6a6e28377a962c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2824428Reviewed-by:
Bill Budge <bbudge@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#74055}
-
- 24 Mar, 2021 1 commit
-
-
Igor Sheludko authored
... of physical memory, since builtins re-embedding comes with a memory overhead. Bug: v8:11527 Change-Id: I24b77c3ab63e1891bd4c6134c3f3456921cc2a01 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784564Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#73632}
-
- 18 Mar, 2021 1 commit
-
-
Igor Sheludko authored
... because serialization of RUNTIME_ENTRY reloc infos is not supported yet. Bug: v8:11527 Change-Id: I0a0451710f7dd57b6393b8fad1620d29346a9f49 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2772602Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#73503}
-
- 17 Mar, 2021 1 commit
-
-
Igor Sheludko authored
This is a speed-for-memory tradeoff, which can be achieved by re-mapping the builtins code blob into existing code range. The feature can be enabled by v8_enable_short_builtin_calls flag and it's off by default. This CL adds GN flag and updates code generator to emit shorter pc-relative calls/jumps to builtins. However, the runtime doesn't support appearance of the off-heap builtins' PCs that point to the embedded code blob on the stack yet. Bug: v8:11527, v8:11421 Change-Id: Iaba384c549675852beae70739175976ee193ffef Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2727502Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#73458}
-
- 09 Feb, 2021 2 commits
-
-
Clemens Backes authored
Those dynamic allocations are responsible for 5-10% of execution time in wasm code publishing, which again is the biggest contributor to deserialization time. The allocations are used for patching the jump table. This CL avoids dynamic memory allocation by having some thread-local space that is re-used for allocations of ExternalAssemblerBufferImpl. Since those objects are small, memory usage is not a concern here. R=jkummerow@chromium.org Bug: v8:11164 Cq-Include-Trybots: luci.v8.try:v8_linux64_asan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_msan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng Change-Id: I44aad86fa821a1ccb59b539da861a346f62a9813 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2667859 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#72585}
-
Milad Fa authored
WasmCompileLazy needs to save the content of vector parameter registers. If Simd is not enabled or the hardware does not support Simd operations then we need to saves the value of Double registers instead, therefore we need a way to retrieve the value of "CpuFeatures::SupportsWasmSimd128()" in builtins during runtime. Bug: v8:11377 Change-Id: I74a5f870d7077166548472adb25c3fb06d0ebdb9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2679682Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Junliang Yan <junyan@redhat.com> Reviewed-by:
Zhi An Ng <zhin@chromium.org> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#72584}
-
- 27 Oct, 2020 1 commit
-
-
Jakob Gruber authored
This CL makes the metadata offsets stored in Code headers relative to the start of the metadata section (instead of to the start of the instructions section). In a follow-up, metadata for embedded builtins will be moved from the .text section (with r-x or --x permissions) to the .rodata section (with r-- permissions). Drive-by: Simplify invariants around section alignment. A new invariant is that the end of the instruction section is aligned to Code::kMetadataAlignment. Drive-by: Ensure trampoline Code objects contain no metadata (metadata offsets all refer to the off-heap metadata section). Tbr: dinfuehr@chromium.org Bug: v8:11036 Change-Id: Idd0980913bbde9d3d1946b558e3ca58ec6356fcc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2491036Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#70788}
-
- 09 Jun, 2020 1 commit
-
-
Clemens Backes authored
The existing {OwnedVector::New} value-initializes all elements, which means zeroing them in case on integral types. In many cases though we know that we will overwrite the content anyway, so the initialization is redundant. In the case of assembly buffers for wasm compilation, this zeroing showed up with several percent of execution times for some benchmarks. Hence this CL introduces a new {OwnedVector::NewForOverwrite} (along the lines of {std::make_unique_for_overwrite}), which only default-initializes the values (meaning no initialization for integral values). R=thibaudm@chromium.org Bug: v8:10576 Change-Id: I8d2806088acebe8a264dea2c7ed74b0423671d4f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2237140 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#68268}
-
- 22 Apr, 2020 1 commit
-
-
Jakob Gruber authored
This is a reland of 5c4b8056 Original change's description: > [snapshot] Extract more files > > This moves: > > - ExternalReferenceEncoder to codegen/external-reference-encoder.h > - SerializerDeserializer to snapshot/serializer-deserializer.h > - Checksum() to snapshot/snapshot-utils.h > > serializer-common.h and .cc are removed. > > Tbr: clemensb@chromium.org,ulan@chromium.org > Bug: v8:10416 > Change-Id: I36a242dcc1ad8833374aa567f73e0d4a75632c58 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2144118 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Dan Elphick <delphick@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67281} Tbr: delphick@chromium.org,clemensb@chromium.org,ulan@chromium.org Bug: v8:10416 Change-Id: I6f6a1017435db185778ed931e1ddb13d8d5e920e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2157384Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#67298}
-
- 21 Apr, 2020 2 commits
-
-
Sathya Gunasekaran authored
This reverts commit 5c4b8056. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Clusterfuzz%20Linux%20MSAN%20no%20origins/14661 Original change's description: > [snapshot] Extract more files > > This moves: > > - ExternalReferenceEncoder to codegen/external-reference-encoder.h > - SerializerDeserializer to snapshot/serializer-deserializer.h > - Checksum() to snapshot/snapshot-utils.h > > serializer-common.h and .cc are removed. > > Tbr: clemensb@chromium.org,ulan@chromium.org > Bug: v8:10416 > Change-Id: I36a242dcc1ad8833374aa567f73e0d4a75632c58 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2144118 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Dan Elphick <delphick@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67281} TBR=ulan@chromium.org,jgruber@chromium.org,clemensb@chromium.org,delphick@chromium.org Change-Id: I718ca43a31d3ca937d700eab9bacc163e4598283 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10416 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2157383Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#67282}
-
Jakob Gruber authored
This moves: - ExternalReferenceEncoder to codegen/external-reference-encoder.h - SerializerDeserializer to snapshot/serializer-deserializer.h - Checksum() to snapshot/snapshot-utils.h serializer-common.h and .cc are removed. Tbr: clemensb@chromium.org,ulan@chromium.org Bug: v8:10416 Change-Id: I36a242dcc1ad8833374aa567f73e0d4a75632c58 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2144118 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#67281}
-
- 06 Feb, 2020 1 commit
-
-
Steve Blackburn authored
Code ranges are currently accessed from outside the heap via an internal structure of the heap. This change lifts the accessor function a level higher. This should have no cost, but will maintain abstraction better and allow the TPH interface to work more readily. Bug: v8:9533 Change-Id: I154d93ce46f5137b3e3b7ecc6bed7e5b8b0343a6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2039351Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Steve Blackburn <steveblackburn@google.com> Cr-Commit-Position: refs/heads/master@{#66152}
-
- 13 Jan, 2020 1 commit
-
-
Pierre Langlois authored
Simulator-specific instructions are very useful, we can: - Place breakpoints that enable the simulator's interactive debugger, allowing us to see registers, the stack and print JS objects. - Enable and disable simulator tracing dynamically. - Call printf() directly, as the simulator cannot easily support its calling convention. However these tools are not available when generating builtins. The reason is that when cross-compiling, builtins are generated for real hardware but may still run inside the simulator on the host if we have a custom snapshot. Using the `v8_embed_script` GN option will do that for example but embedders may also do this with the V8 API. mksnapshot cannot tell the difference between generating code for a simulator build and a cross-build. If we change this, we can allow us to use simulator-specific features in builtins in simulator builds. So in this patch we: - Introduce a --target_is_simulator mksnapshot flag to drive the enable_simulator_code Assembler option. - Make sure the assembler respect the option instead of the USE_SIMULATOR macro. Change-Id: I7a7249f514427c1a2518a1af3679679596a72c7e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1991497Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Cr-Commit-Position: refs/heads/master@{#65734}
-
- 07 Jan, 2020 1 commit
-
-
Pierre Langlois authored
Change-Id: I1cdd6e7f761d7fa75fd4ca5331ca2475a4384c30 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1985988 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#65591}
-
- 14 Nov, 2019 1 commit
-
-
Clemens Backes authored
In Liftoff, we have a good estimate about how big the generated code might get. Also, we often compile hundreds of functions which each hold an assembler buffer alive until we finally add that code to the wasm module. In order to reduce memory consumption in Liftoff, this CL reduces {AssemblerBase::kMinimalBufferSize} from 4096 to 128, and adds {AssemblerBase::kDefaultBufferSize} to be used instead. R=jkummerow@chromium.org Change-Id: I7029bf501244770f4824a86b233d7f99c4b7910b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914559Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64958}
-
- 04 Nov, 2019 1 commit
-
-
Dan Elphick authored
This is a reland of 855591a5 Fixes break in builds that verify ReadOnlyHeap by relaxing the requirement for Code objects to be in CODE_SPACE in PagedSpaceObjectIterator::FromCurrentPage. Original change's description: > Reland: [builtins] Move non-JS linkage builtins code objects into RO_SPACE > > Reland of https://chromium-review.googlesource.com/c/v8/v8/+/1795358. > > [builtins] Move non-JS linkage builtins code objects into RO_SPACE > > Creates an allow-list of builtins that can still go in code_space > including all TFJ builtins and a small manual list that should be pared > down in the future. > > For builtins that go in RO_SPACE a Code object is created that contains an > immediate trap instruction. Generally these Code objects are still no > smaller than CODE_SPACE Code objects because of the Code object alignment > requirements. This will hopefully be addressed in a follow-up CL either by > relaxing them or removing the instruction stream completely. > > In the snapshot, this reduces code_space from ~152k to ~40k (-112k) and > increases by the same amount. > > Change-Id: I76661c35c7ea5866c1fb16e87e87122b3e3ca0ce > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893336 > Commit-Queue: Dan Elphick <delphick@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64700} Change-Id: I4eeb7dab3027b42fa58c5dfb2bad9873e9fff250 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893192 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#64728}
-
- 31 Oct, 2019 2 commits
-
-
Bill Budge authored
This reverts commit 855591a5. Reason for revert: Breaks arm64 sim tests https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20debug/17957 https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20gc%20stress/16585 Original change's description: > Reland: [builtins] Move non-JS linkage builtins code objects into RO_SPACE > > Reland of https://chromium-review.googlesource.com/c/v8/v8/+/1795358. > > [builtins] Move non-JS linkage builtins code objects into RO_SPACE > > Creates an allow-list of builtins that can still go in code_space > including all TFJ builtins and a small manual list that should be pared > down in the future. > > For builtins that go in RO_SPACE a Code object is created that contains an > immediate trap instruction. Generally these Code objects are still no > smaller than CODE_SPACE Code objects because of the Code object alignment > requirements. This will hopefully be addressed in a follow-up CL either by > relaxing them or removing the instruction stream completely. > > In the snapshot, this reduces code_space from ~152k to ~40k (-112k) and > increases by the same amount. > > Change-Id: I76661c35c7ea5866c1fb16e87e87122b3e3ca0ce > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893336 > Commit-Queue: Dan Elphick <delphick@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64700} TBR=ulan@chromium.org,jgruber@chromium.org,delphick@chromium.org Change-Id: I4211c3bb7fe4741e0ba3898f92ce382dfc93c4f3 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893636Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#64701}
-
Dan Elphick authored
Reland of https://chromium-review.googlesource.com/c/v8/v8/+/1795358. [builtins] Move non-JS linkage builtins code objects into RO_SPACE Creates an allow-list of builtins that can still go in code_space including all TFJ builtins and a small manual list that should be pared down in the future. For builtins that go in RO_SPACE a Code object is created that contains an immediate trap instruction. Generally these Code objects are still no smaller than CODE_SPACE Code objects because of the Code object alignment requirements. This will hopefully be addressed in a follow-up CL either by relaxing them or removing the instruction stream completely. In the snapshot, this reduces code_space from ~152k to ~40k (-112k) and increases by the same amount. Change-Id: I76661c35c7ea5866c1fb16e87e87122b3e3ca0ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893336 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#64700}
-
- 18 Oct, 2019 2 commits
-
-
Sathya Gunasekaran authored
This reverts commit 83f8464f. Reason for revert: speculative revert for blink linux failure https://ci.chromium.org/p/v8/builders/ci/V8%20Blink%20Linux/1272 Original change's description: > [builtins] Move non-JS linkage builtins code objects into RO_SPACE > > Creates an allow-list of builtins that can still go in code_space > including all TFJ builtins and a small manual list that should be pared > down in the future. > > For builtins that go in RO_SPACE a Code object is created that contains > no code at all (shrinking its size from 96 bytes to 64 bytes on x64), > but is there to allow the runtime to continue to work since it expects > a Code object. > > This reduces code_space from ~152k to ~40k (-112k) and increases > read_only_space from 33k to 108k (+75k) in the snapshot. > > Bug: v8:7464, v8:9821, v8:9338, v8:8127 > Change-Id: Icc8bfc722bb267a2bcc17e2f1e27bef7f02f2376 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795358 > Commit-Queue: Dan Elphick <delphick@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64377} TBR=mstarzinger@chromium.org,jgruber@chromium.org,delphick@chromium.org Change-Id: I4cf38e9370280acdd2de718ca527776ebc509003 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7464, v8:9821, v8:9338, v8:8127 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868621Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#64383}
-
Dan Elphick authored
Creates an allow-list of builtins that can still go in code_space including all TFJ builtins and a small manual list that should be pared down in the future. For builtins that go in RO_SPACE a Code object is created that contains no code at all (shrinking its size from 96 bytes to 64 bytes on x64), but is there to allow the runtime to continue to work since it expects a Code object. This reduces code_space from ~152k to ~40k (-112k) and increases read_only_space from 33k to 108k (+75k) in the snapshot. Bug: v8:7464, v8:9821, v8:9338, v8:8127 Change-Id: Icc8bfc722bb267a2bcc17e2f1e27bef7f02f2376 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795358 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#64377}
-
- 10 Sep, 2019 1 commit
-
-
Clemens Hammacher authored
Since we switched to C++14 now, we can use {std::make_unique} instead of our own {base::make_unique} from {template-utils.h}. R=mstarzinger@chromium.org, yangguo@chromium.org Bug: v8:9687 No-Try: true Change-Id: I660eb30038bbb079cee93c7861cd87ccd134f01b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1789300 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63642}
-