- 14 May, 2020 2 commits
-
-
Omer Katz authored
The existing non-builtin implementation is returning wrong results. For example, given the value 63 as a uint8_t it returns 38 (should be 6). The new implementation follows the naive algorithm presented in figure 5-1 in Hacker's Delight section 5-1. Note that the algorithm in the book is designed for 32 bit numbers, so we extended it to support 64 bit as well. Bug: chromium:1056170 Change-Id: I8fed9c449f80b01b8cc93d339529c0e1e0863fc0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2199345Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67801}
-
cjihrig authored
This commit resolves compilation errors on SmartOS that were found while upgrading Node.js. See: https://github.com/nodejs/node/pull/32831 Change-Id: Ia2a2e028ba4f5bfd69c050cab4fb4e13af5eefd9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2191054Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67793}
-
- 07 May, 2020 1 commit
-
-
Michaël Zasso authored
This is necessary for the pthread_attr_get_np function. Change-Id: I01cfe075a7c86909e8cf37eb7f7c5d44fa044975 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2188310 Commit-Queue: Michaël Zasso <mic.besace@gmail.com> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Auto-Submit: Michaël Zasso <mic.besace@gmail.com> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67660}
-
- 04 May, 2020 1 commit
-
-
Michael Lippautz authored
The detection was overbroad and the underlying issue in QueryPerformanceCounter is supposedly fixed from Win XP SP2 on. Chromium removed the detection in https://crrev.com/c/1138241 in July 2018. Bug: v8:10362 Change-Id: I87baa47c2aad2428a92923a60916c0a9d07afdad Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2128052Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67540}
-
- 28 Apr, 2020 2 commits
-
-
Dan Elphick authored
base::List is only used inside of heap and has some pretty strange semantics that don't lend themselves to it being a general purpose data structure so this moves it to heap where it can be safe isolated. Bug: v8:10454 Change-Id: I7921c22286276432956005c72143b22b0364fc93 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2170029 Auto-Submit: Dan Elphick <delphick@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67448}
-
Dan Elphick authored
When RO_SPACE is to be shared, this constructs SharedReadOnlySpace object (via ReadOnlySpace::DetachPagesAndAddToArtifacts) that contains the shared artifacts and the original ReadOnlySpace is destroyed. This is mostly a conceptual change and SharedReadOnlySpace behaves identically to ReadOnlySpace (and subclasses it). Also adds ReadOnlyArtifacts that contains the shared artifacts and which is stored as a std::weak_ptr in a global so it can be destroyed when all std::shared_ptrs to it are destroyed. Since this allows the ReadOnlyHeap to be reconstructed when all Isolates are destroyed, ReadOnlyHeap::ClearSharedHeapForTest is removed along with all uses since that is now done automatically. The ReadOnlyArtifacts class now owns all the shared artifacts and is responsible for deleting them on exit (mostly via unique_ptr). Bug: v8:10454 Change-Id: I2fe7110a4ab9cf8719dd198bafc1d083bee641b1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2154204 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67440}
-
- 22 Apr, 2020 1 commit
-
-
Clemens Backes authored
When compiling modules with many functions, the list of regions in the {DisjointAllocationPool} can become quite large if the functions die in a random order (which they typically do, since the order of Liftoff compilation is different than the order to TurboFan compilation; which work stealing, both are nondeterministic). Iterating the list of regions in the {DisjointAllocationPool} was thus linear in the number of regions, which is linear in the number of functions of the module. Since we insert new regions one by one, overall runtime was quadratic. This CL fixes this by switching from a linked list to a std::set. Merging a new region is thus logarithmic instead of linear, and overall we are {n*log(n)} instead of {n^2}. Note: For {AllocateInRegion} we still need to linearly iterate all regions that overlap the requested region, but this has not shown to be a problem so far. R=ahaas@chromium.org Bug: v8:10432 Change-Id: I193e56c2abab782e386194fbe64dadfa250916f7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2154797 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#67303}
-
- 20 Apr, 2020 1 commit
-
-
Clemens Backes authored
This reverts commit f5bee002. Reason for revert: Crashes android webview, see https://crbug.com/1071708. Original change's description: > Revisiting auxvec data gathering for PPC/ARM. > > /proc/sys/auxv might not be accessible, instead > getting these from the user's stack. > > Change-Id: I2dcf696734e2b4dc1da27a991930b9e0d4228d51 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1730990 > Commit-Queue: Clemens Backes [né Hammacher] <clemensb@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Clemens Backes [né Hammacher] <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64037} TBR=clemensb@chromium.org,bmeurer@chromium.org,devnexen@gmail.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:1071708 Change-Id: I05659f245c1020e98b7225a25e82987d9955d595 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2154800Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67234}
-
- 14 Apr, 2020 1 commit
-
-
Milad Farazmand authored
Change-Id: Id55edb409f64b8dfd72530c95a3a5ca001d176b5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2144750Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#67128}
-
- 09 Apr, 2020 1 commit
-
-
Milad Farazmand authored
Port da409929 Original Commit Message: Adds: - GetStackStart - GetCurrentStackPosition - GetStackSlot which translates a stack slot through ASAN if needed R=mlippautz@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: Icdf50db1c4d0b6ce3c9819cda4663dc640ec6f43 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2144292Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#67092}
-
- 07 Apr, 2020 1 commit
-
-
Clemens Backes authored
This is to avoid a lock inversion problem. In many situation, the {NativeModule} lock is held while getting the {DebugInfo} lock. Hence we should never do is the other way around, otherwise we risk a deadlock. When setting a breakpoint, we hold the {DebugInfo} lock when triggering recompilation, but recompilation accesses the {NativeModule} for creating the {CompilationEnv}, and therefore takes the {NativeModule} lock. This CL fixes this lock inversion by giving up the {DebugInfo} lock before recompiling functions. R=thibaudm@chromium.org Bug: v8:10351 Change-Id: Ic818c6589b2b532006aee4c16bac92b2fe79fa65 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2139574 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#67042}
-
- 01 Apr, 2020 1 commit
-
-
Adam Kallai authored
The same issue has been fixed in Chromium [1] by Richard Townsend. It seems that cl needs to be applied in V8 as well. [1] https://chromium-review.googlesource.com/c/chromium/src/+/1593363 Also add self to authors file. Bug: v8:10365 Change-Id: Ic38b18392263c2a89f207013ec61718418d5f132 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2130126 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66940}
-
- 27 Mar, 2020 2 commits
-
-
Michael Lippautz authored
Tbr: ulan@chromium.org Bug: chromium:1056170 Change-Id: I118b8f1911a6d61b15d3dee25aa00ab9dea4689f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2124321Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#66894}
-
Michael Lippautz authored
Adds: - GetStackStart - GetCurrentStackPosition - GetStackSlot which translates a stack slot through ASAN if needed Bug: v8:10354, chromium:1056170 Change-Id: I28e76f41de28415382f7cc32729e86d71e9f8f19 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2122033 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#66890}
-
- 25 Mar, 2020 1 commit
-
-
Michael Lippautz authored
This adds HeapObjectHeader, a meta object that is put in front of every managed object. HeapObjectHeader provides accessors for: 1. GCInfoIndex 2. In construction bit 3. size 4. Mark bit Meta info is distributed among two uint16_t fields as (1.,2.) and (3.,4.). This is convenient as the non-bit accessors (size, GCInfoIndex) are constant during marking. Object layout see heap-object-header.h. Note: The current implementation does not bypass ASAN poisoning and assumes an unpoisoned header whenever performing an access. Bug: chromium:1056170 Change-Id: I753f15467ed5c2b22b47e64d3aa5a3c1baddf8e1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2116031 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#66861}
-
- 24 Mar, 2020 1 commit
-
-
Michael Lippautz authored
GCInfo and its related infrastructure is used to record information about types. Currently, we store finalization and vtable information. Future changes will introduce naming and tracing, similar to Oilpan in Blink. Information is stored in a process-wide global table that is maintained at runtime. For static builds such information can be recorded in the binary without the runtime overhead which is future work. This ports `third_party/blink/renderer/platform/heap/gc_info.{h,cc}` on a semantic level. In addition to adjusting to V8's needs, we also re-commit the already filled parts of the info table as read-only when possible, making it harder to override type information. Bug: chromium:1056170 Change-Id: Ib01eb24e6f8a94a4a647efde7af37689f8c20ba2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2111214 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#66847}
-
- 17 Mar, 2020 1 commit
-
-
Georgia Kouveli authored
Generate a BTI instruction at each target of an indirect branch (BR/BLR). An indirect branch that doesn't jump to a BTI instruction will generate an exception on a BTI-enabled core. On cores that do not support the BTI extension, the BTI instruction is a NOP. Targets of indirect branch instructions include, among other things, function entrypoints, exception handlers and jump tables. Lazy deopt exits can potentially be reached through an indirect branch when an exception is thrown, so they also get an additional BTI instruction. Bug: v8:10026 Change-Id: I0ebf51071f1b604f60f524096e013dfd64fcd7ff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1967315 Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66751}
-
- 16 Mar, 2020 1 commit
-
-
Clemens Backes authored
The set of registers to spill was wrong. Instead of spilling wasm parameter registers (like the WasmCompileLazy builtin), we should spill all registers that are being used as Liftoff cache registers. This CL defines platform-specific WasmDebugBreakFrameConstants which hold the set of registers to spill. This set is used in the builtin, and will later be used for inspecting the spilled registers. In order to iterate bit sets more easily in both direction (MSB to LSB or LSB to MSB), we add a base::bits::IterateBits{,Backwards} method which provides the respective iterators. R=jkummerow@chromium.org CC=thibaudm@chromium.org Bug: v8:10222 Change-Id: I73ecbdff9b29e244c478b404063c0c9ee25bc821 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2102570Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66715}
-
- 09 Mar, 2020 1 commit
-
-
Jakob Kummerow authored
Considering that the security benefit is unclear at this point, the performance and binary size costs are not justified. This CL includes reverts of earlier partial disablings: 173a2bd8 af7bf14f 85f72be3 Bug: chromium:977230, chromium:1055312, chromium:1055317 Change-Id: I173b61656a542687c4619fa374a0b2ee22c85ef7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2091474Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Michael Hablich <hablich@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#66623}
-
- 26 Feb, 2020 7 commits
-
-
Clemens Backes authored
This is a reland of 0dc598df Original change's description: > [wasm] Refactor callback triggering > > 1) Instead of passing three boolean values to |TriggerCallbacks|, pass > one EnumSet which contains all events to trigger. > 2) Remember which events already happened, to avoid triggering them > again. > 3) Compute triggered events once after the loop in |OnFinishedUnits|, > instead of checking for every finished unit. > 4) When a new callback is registered, trigger all previous events > immediately. This solves issue v8:10217. > 5) Replace |NotifyTopTierReady| by |AddCallback| which is identical now. > 6) Do not call |OnFinishedJSToWasmWrapperUnits| if no wrappers were > compiled (this is a minor performance optimization; we save taking > and releasing a lock). > 7) Drive-by: Make the |EnumSet| constructor really constexpr (by making > |Mask| constexpr). > > R=ahaas@chromium.org > > Bug: v8:10217 > Change-Id: Ib3688a1687ad7b523e90efd73f4073e9f1193016 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072737 > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66459} Bug: v8:10217 Change-Id: I9f7ca424fa7f1d0379dabe230bebf62522dfc857 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2074501Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66468}
-
Clemens Backes authored
This reverts commit 0dc598df. Reason for revert: Fails the wasm-cache-test blink test. Original change's description: > [wasm] Refactor callback triggering > > 1) Instead of passing three boolean values to |TriggerCallbacks|, pass > one EnumSet which contains all events to trigger. > 2) Remember which events already happened, to avoid triggering them > again. > 3) Compute triggered events once after the loop in |OnFinishedUnits|, > instead of checking for every finished unit. > 4) When a new callback is registered, trigger all previous events > immediately. This solves issue v8:10217. > 5) Replace |NotifyTopTierReady| by |AddCallback| which is identical now. > 6) Do not call |OnFinishedJSToWasmWrapperUnits| if no wrappers were > compiled (this is a minor performance optimization; we save taking > and releasing a lock). > 7) Drive-by: Make the |EnumSet| constructor really constexpr (by making > |Mask| constexpr). > > R=ahaas@chromium.org > > Bug: v8:10217 > Change-Id: Ib3688a1687ad7b523e90efd73f4073e9f1193016 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072737 > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66459} TBR=ahaas@chromium.org,clemensb@chromium.org Change-Id: I564b053e898db5f7b51cefa4626c0625a225c89a No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10217 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2074638Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66461}
-
Clemens Backes authored
1) Instead of passing three boolean values to |TriggerCallbacks|, pass one EnumSet which contains all events to trigger. 2) Remember which events already happened, to avoid triggering them again. 3) Compute triggered events once after the loop in |OnFinishedUnits|, instead of checking for every finished unit. 4) When a new callback is registered, trigger all previous events immediately. This solves issue v8:10217. 5) Replace |NotifyTopTierReady| by |AddCallback| which is identical now. 6) Do not call |OnFinishedJSToWasmWrapperUnits| if no wrappers were compiled (this is a minor performance optimization; we save taking and releasing a lock). 7) Drive-by: Make the |EnumSet| constructor really constexpr (by making |Mask| constexpr). R=ahaas@chromium.org Bug: v8:10217 Change-Id: Ib3688a1687ad7b523e90efd73f4073e9f1193016 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072737 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#66459}
-
Georg Neis authored
This reverts commit b12ba06e. Reason for revert: After further discussion we decided to stick with fdlibm. Original change's description: > [builtins] stop using imprecise fdlibm pow > > This CL reinstates the old pow implementation which calls out to the > system implementation of pow. > > Bug: v8:9622 > Change-Id: I3df997888ced3fb8b5bd4b810098e967649aaa55 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1774898 > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Commit-Queue: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66303} TBR=yangguo@chromium.org,neis@chromium.org,hpayer@chromium.org,me@gus.host # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:9622 Change-Id: I941f70c7432cd2fab86e0eadcb2e1a9ec8195e91 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072746 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#66452}
-
Clemens Backes authored
This extends EnumSet by 1) adding element-wise operations (without first creating an EnumSet of that element in the caller), 2) adding arithmetic assignment operators, and 3) adding a subtraction operation which removes all elements in another EnumSet, or a single element. R=mlippautz@chromium.org Change-Id: Ibe694e9e111e506ad09cf9729fa0b0ba38430b79 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071874 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#66451}
-
Georg Neis authored
This reverts commit 73f91a2d. Reason for revert: Reverting b12ba06e Original change's description: > [builtins] Replace V8_INFINITY with its definition > > V8_INFINITY is not defined here. > "src/common/globals.h" is also not allowed to be included > in this source file. > > Change-Id: Ia3b14db8ac5099b6ce65839eb0fc59340dc59555 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2062930 > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> > Cr-Commit-Position: refs/heads/master@{#66336} TBR=neis@chromium.org,clemensb@chromium.org,me@gus.host,miladfar@ca.ibm.com # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: Ia43c3f7f735dfb622d4f5464a52a142d19ddeb26 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072745Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#66449}
-
Clemens Backes authored
EnumSet hold a single integral field, hence it should be passed by value. All users already do this, we are just inconsistent within the declaration of EnumSet itself. R=mlippautz@chromium.org Change-Id: Ic2cac35fbd8fe3e98c1fe135bd334547dca30ab5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071872Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66447}
-
- 21 Feb, 2020 2 commits
-
-
Lei Zhang authored
GCC emits a stringop-truncation warning because set_name() uses the entire buffer for strncpy(). This looks potentially unsafe, though set_name() does the right thing and add a NUL terminator immediately after strncpy() finishes. To make GCC happy, reduce the number of characters copied by 1. Change-Id: I151ba3ac67e82f5ffc092a49a94e4e1769479c71 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2067514Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org> Cr-Commit-Position: refs/heads/master@{#66393}
-
Wouter Vermeiren authored
After support for ARCH_PPC was dropped, it became a subset of ARCH_PPC64. If you compile for ppc64, then you set the ARCH_PPC64 define which also sets the ARCH_PPC define. To be able to again support ppc (32 bit) those defines should be split up again. This commit only splits up the defines but does not introduce a working ARCH_PPC variant. Bug: v8:10102 Change-Id: I64e0749f8e5a7dc078ee7890d92e57b82706a849 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1989826 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Milad Farazmand <miladfar@ca.ibm.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#66390}
-
- 20 Feb, 2020 1 commit
-
-
Clemens Backes authored
If multiple code spaces are created, each of them currently gets its own jump table (on 64 bit platforms). Since we try to allocate new code spaces right after existing ones, this is often not necessary. We could instead reuse the existing jump table(s). This saves code space for the unneeded jump tables and avoid the cost of patching the redundant jump tables when we replace code objects. This CL implements this by checking whether an existing jump table (or pair of far jump table and (near) jump table) fully covers a new code space, and reuses the existing jump table in that case. R=ahaas@chromium.org Change-Id: Id8751b9c4036cf8f85f9baa2b0be8b2cfb5716ff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2043846Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66364}
-
- 19 Feb, 2020 1 commit
-
-
Milad Farazmand authored
V8_INFINITY is not defined here. "src/common/globals.h" is also not allowed to be included in this source file. Change-Id: Ia3b14db8ac5099b6ce65839eb0fc59340dc59555 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2062930Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#66336}
-
- 18 Feb, 2020 1 commit
-
-
Gus Caplan authored
This CL reinstates the old pow implementation which calls out to the system implementation of pow. Bug: v8:9622 Change-Id: I3df997888ced3fb8b5bd4b810098e967649aaa55 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1774898Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#66303}
-
- 14 Feb, 2020 1 commit
-
-
Vitaly Buka authored
This variable significantly slows down indexed-getter.html of blink_perf.bindings on linux-perf https://pinpoint-dot-chromeperf.appspot.com/job/136cce54620000 V8_STACK_UNINITIALIZED macro is the same as http://crrev.com/c/1974951 Bug: chromium:977230 Change-Id: I3e7e91804e13b856d6b2ba0a5d67f0354636c510 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2046872 Commit-Queue: Vitaly Buka <vitalybuka@chromium.org> Auto-Submit: Vitaly Buka <vitalybuka@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#66278}
-
- 12 Feb, 2020 1 commit
-
-
Leszek Swirski authored
Clean-up a couple of CAS loops to avoid loading after a compare_exchange (which updates the old value), and to loosen the memory ordering to acquire-release to avoid unnecessary fences. Change-Id: Ifb8e5e5136f687ca5a71417a5d131a7023add054 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2050390 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#66235}
-
- 10 Feb, 2020 2 commits
-
-
Ulan Degenbaev authored
This groups atomicops by type, removes an unused atomicop, and fixes comments. Change-Id: I9621ac4512d019ae9d0ce4f7e38c81011d46aa37 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2047044Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#66201}
-
Leszek Swirski authored
Make the NextScriptId value incrementing method thread-safe, using CompareAndSwap primitives. This will allow it to be used in the future for off-thread compilation. Bug: chromium:1011762 Change-Id: I5b449e75c7dc63d24fa045ae880b0680b54c2f3d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2046883Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#66200}
-
- 28 Jan, 2020 1 commit
-
-
Philip Pfaffe authored
The current implementation takes forwarding reference arguments, which is fine when you call it with rvalues, like make_iterator_range(V.begin(), V.end()). If you call it with lvalues though, it doesn't do what you'd expect. ForwardIterator becomes a reference: Foo I = V.begin(); make_iterator_range(I, I); //ForwardIterator is deduced as Foo& Since iterator are supposed to be small, no harm in passing them by value. Change-Id: I151c87304949d810c72c42f60e9d1a7151f61f83 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2020780 Commit-Queue: Philip Pfaffe <pfaffe@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66007}
-
- 16 Jan, 2020 1 commit
-
-
Sigurd Schneider authored
TimeTicks cannot convert to other timeunits, only TimeDelta can do that. Chrome's version of TimeBase introduced a `since_origin` helper that essentially converts a TimeTicks object in to a TimeDelta with the corresponding duration. This CL ports that helper to V8 and cleans up a couple of places where we used `timestamp - 0` to convert a TimeTicks object to a TimeDelta. Change-Id: I540ced876ac3e727dfdedf7b838a272cc40d6954 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1993282 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#65820}
-
- 15 Jan, 2020 1 commit
-
-
Leszek Swirski authored
Bug: v8:10122 Change-Id: I5fc28a4e567ad545ac39324240458960fc86b71c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2000744 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65783}
-
- 10 Jan, 2020 1 commit
-
-
Clemens Backes authored
When comparing objects which get printed to very long strings (e.g. collections like vectors), it's much more readable if they get printed to individual lines. Differences are much easier to spot then. This CL refactors the CHECK/DCHECK macros to print the left hand side and right-hand side in individual lines if any of them is longer than 50 characters. To that end, the {PrintCheckOperand} method (only used from {MakeCheckOpString}) is changed to return the string directly instead of printing to an output stream. R=mlippautz@chromium.org Change-Id: I6e24a5cbfeb1af53fa0aca2828e23f642b15569c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1991866Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65705}
-
- 20 Dec, 2019 1 commit
-
-
Tobias Tebbi authored
This allows the definition of classes with several arrays and ports SmallOrderedHashTable subclasses to Torque as an example, including the existing CSA allocation functions for them. Overview of changes: - Introduce ResidueClass to encapsulate the modulo-arithmetic necessary to do alignment checks. - Add MachineOperatorReducer to the CSA pipeline to address now missing CSA ad-hoc constant folding that got blocked by a temporary phi. - Allow assignments to references to structs. This is needed to initialize the data_table part of SmallOrderedHashMap. - Make the NumberLiteralExpression AST-node store a double instead of a string. This is necessary to detect arrays with constant size used for padding. - Turn offsets into base::Optional<size_t> to ensure we don't use an invalid or statically unknown offset. - Remove CreateFieldReferenceInstruction since it doesn't work for complex offset computations and the logic can be expressed better in ImplementationVisitor. - Validate alignment of structs embedded in classes. Bug: v8:10004 v8:7793 Change-Id: Ifa414b42278e572a0c577bf9da3d37f80771a258 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1958011 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#65538}
-