| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[test] Migrate cctest/compiler/test-codegen to unittests/ This changeset include: 1. [prepare for migrate] move cctest/compiler/value-helper.h, cctest/compiler/c-signature.h, and cctest/compiler/call-tester.h to test/common directory because both test-codegen and a lot of cctest file include it. 2. [prepare for migrate] separate the tester helper part of test-codegen into a new codegen-tester file. 3. finally, migrate test-codegen.cc to codegen-unittest.cc Bug: v8:12781 Change-Id: Ia2f52c1d3b6b62501066dc1c4308a2c09d699e92 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3831146 Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#82630} | 3 年前 | |
[zone] Remove zone compression Compression has been unused for many years. Removing it allows simplifying allocation/freeing paths. Bug: 409953791 Change-Id: I65a38d48e8d2ca2e2ffb131799d20dacb7899d0a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6568895 Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#100686} | 1 年前 | |
[sandbox] Remove kDefaultCodeEntrypointTag, pt.1 This is a step towards making code entrypoint tag verification strict. This CL - introduces kCodeEntrypointTagForTesting, - introduces CodeKind::FOR_TESTING_JS in addition to existing CodeKind::FOR_TESTING in order to assign them different code entrypoint tags (kJSEntrypointTag for the former and kCodeEntrypointTagForTesting for the latter), - add SBXCHECK for Code object's entrypoint tags when generating calls and tail calls to compile-time known Code objects, - introduce Linkage::GetCPPBuiltinCallDescriptor() - a CEntry call descriptor customized for CPP builtins, - replaces some of the kDefaultCodeEntrypointTag usages with correct tags, - fixes usages of entrypoint tags in various code generation unit tests. Drive-by: - assign proper descriptor for GenericJSToWasmInterpreterWrapper builtin, - make Builtins::CallInterfaceDescriptorFor() work for bytecode handlers, - make switches over CodeKind values case-complete. Bug: 435630464 Change-Id: I2e34666df5314b0cd4e604a4deaf74e2f0de6f1a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6976541 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Darius Mercadier <dmercadier@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#102733} | 9 个月前 | |
[sandbox] Remove kDefaultCodeEntrypointTag, pt.1 This is a step towards making code entrypoint tag verification strict. This CL - introduces kCodeEntrypointTagForTesting, - introduces CodeKind::FOR_TESTING_JS in addition to existing CodeKind::FOR_TESTING in order to assign them different code entrypoint tags (kJSEntrypointTag for the former and kCodeEntrypointTagForTesting for the latter), - add SBXCHECK for Code object's entrypoint tags when generating calls and tail calls to compile-time known Code objects, - introduce Linkage::GetCPPBuiltinCallDescriptor() - a CEntry call descriptor customized for CPP builtins, - replaces some of the kDefaultCodeEntrypointTag usages with correct tags, - fixes usages of entrypoint tags in various code generation unit tests. Drive-by: - assign proper descriptor for GenericJSToWasmInterpreterWrapper builtin, - make Builtins::CallInterfaceDescriptorFor() work for bytecode handlers, - make switches over CodeKind values case-complete. Bug: 435630464 Change-Id: I2e34666df5314b0cd4e604a4deaf74e2f0de6f1a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6976541 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Darius Mercadier <dmercadier@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#102733} | 9 个月前 | |
[turbofan] Replace Adapter-dependent types in instruction selectors Drive-by: Rename Turbofan's Graph to TFGraph to avoid name collisions when compiler and turboshaft namespaces are present. Bug: 391750831 Change-Id: I20f8bd6f30a9d46dd7657715b2a9296c377af16a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6299391 Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Matthias Liedtke <mliedtke@chromium.org> Cr-Commit-Position: refs/heads/main@{#98899} | 1 年前 | |
[handles] Explicitly use indirect handles to disallow their migration This CL explicitly marks some handles as IndirectHandle<T> in some methods like handle, Is, UncheckedCast, and in some methods returning "canonical" handles, to protect them from automatic handle migration. The changes are only relevant for builds with v8_enable_direct_handle=true. It also fixes a couple of tests that require precise stack scanning and have failed with CSS. Bug: 42203211 Change-Id: I1098c3811a572f1ada773b2695f7b7062c25d69c Cq-Include-Trybots: luci.v8.try:v8_linux64_css_dbg Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6185427 Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#98209} | 1 年前 | |
[turboshaft] Switching remaining pipelines to Turboshaft backend In particular: - WasmHeapStubCompilationJob - GenerateCodeForWasmNativeStub - GenerateCodeForTesting Drive-by: Fix or disable a few incorrect cctests. Drive-by: Improve output on representation validation failure. Bug: 391750831 Change-Id: I5ae9327397669a677fd51ebe5e58e068517ef757 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6206169 Reviewed-by: Darius Mercadier <dmercadier@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#98409} | 1 年前 | |
[profiling] Do not instrument the End block The End block is not necessarily the last one in the RPO. Iterate until the end but skip the end block. Bug: chromium:1381131 Change-Id: I5e1cd19c1b3bea4cbe565319631a7686ed2352fc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4017313 Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#84364} | 3 年前 | |
[test] Migrate cctest/compiler/test-codegen to unittests/ This changeset include: 1. [prepare for migrate] move cctest/compiler/value-helper.h, cctest/compiler/c-signature.h, and cctest/compiler/call-tester.h to test/common directory because both test-codegen and a lot of cctest file include it. 2. [prepare for migrate] separate the tester helper part of test-codegen into a new codegen-tester file. 3. finally, migrate test-codegen.cc to codegen-unittest.cc Bug: v8:12781 Change-Id: Ia2f52c1d3b6b62501066dc1c4308a2c09d699e92 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3831146 Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#82630} | 3 年前 | |
[cctest] Introduce LocalContext::isolate() This avoids a large chunk of v8::Context::GetIsolate() calls, which is a method that will be deprecated soon. R=jkummerow@chromium.org Bug: 396607238 Change-Id: Ia0e4b74d7bf95d033b55d8d985e4f02fefd2dbb4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6520237 Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#100177} | 1 年前 | |
[test] Fix default kind of code generated by CodeAssemblerTester The CodeAssemblerTester by default generates code of the BUILTIN kind. This code, however, is not placed in the read-only space, as should be the case for builtins. For this reason, in rare circumstances, when the garbage collector clears non-live references and finds a stale dispatch handle table entry, a DCHECK fails. This has been witnessed when conservative stack scanning (CSS) is enabled, because of a false positive, but it can also happen without CSS, as the introduced test shows. This CL fixes the issue by changing the default kind of code generated by CodeAssemblerTester, from BUILTIN to FOR_TESTING. Bug: 414753764 Change-Id: Ic2cb8d88f508b636f1238cd2eb5f9a506ca500ee Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6519776 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org> Cr-Commit-Position: refs/heads/main@{#100145} | 1 年前 | |
[sandbox] Remove kDefaultCodeEntrypointTag, pt.1 This is a step towards making code entrypoint tag verification strict. This CL - introduces kCodeEntrypointTagForTesting, - introduces CodeKind::FOR_TESTING_JS in addition to existing CodeKind::FOR_TESTING in order to assign them different code entrypoint tags (kJSEntrypointTag for the former and kCodeEntrypointTagForTesting for the latter), - add SBXCHECK for Code object's entrypoint tags when generating calls and tail calls to compile-time known Code objects, - introduce Linkage::GetCPPBuiltinCallDescriptor() - a CEntry call descriptor customized for CPP builtins, - replaces some of the kDefaultCodeEntrypointTag usages with correct tags, - fixes usages of entrypoint tags in various code generation unit tests. Drive-by: - assign proper descriptor for GenericJSToWasmInterpreterWrapper builtin, - make Builtins::CallInterfaceDescriptorFor() work for bytecode handlers, - make switches over CodeKind values case-complete. Bug: 435630464 Change-Id: I2e34666df5314b0cd4e604a4deaf74e2f0de6f1a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6976541 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Darius Mercadier <dmercadier@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#102733} | 9 个月前 | |
[sandbox] Disallow implicit unchecked downcasts to trusted objects To soundify C++ types of trusted objects we want to prevent accidentally casting to a trusted object without checking. To that end we enforce the explicit choice of one of three possible casts. * The (existing) TryCast should be used when we already have a type check. This construct ensures that the cast is correct by construction, since the target variable is not assigned if it fails. * The (new) (Checked|Sbx)Cast combines a (SBX)CHECK with a Cast. Replaces SBXCHECK(Is<Foo>(x)); Tagged<Foo> f = Cast<Foo>(x). * The (new) TrustedCast corresponds to Cast on non-trusted objects. The "Trusted" prefix signifies that the correctness obligations are solely on the caller. It should not be used at all if possible. Typically reasonable usecases are: * Reading a field of a trusted object. We trust them to be untampered. * Reading a trusted pointer with a type-tagged handle. The handle ensures correctness. * A visitor where the down-cast is generated by a macro. There is little possiblity for future error and TryCast would be cumbersome and potentially slower. * Low-risk code like debugging, or highly-performance sensitive code where the check is enforced indirectly. DriveBy: Add CastExposedTrustedObjectByTag which ties together the type of a ExposedTrustedObject with its IndirectPointerTag. This prevents the two from getting out of sync. Bug: 435645639 Change-Id: Id283b109ab3e0c3a4503467771bc35f1857fa236 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6859421 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Olivier Flückiger <olivf@chromium.org> Auto-Submit: Olivier Flückiger <olivf@chromium.org> Cr-Commit-Position: refs/heads/main@{#101943} | 10 个月前 | |
[gap-resolver] Emit move based on destination representation If the phi moves are the same for all predecessors, the move optimizer will merge them by picking an arbitrary move among them, moving it to the phi's block, and eliminating the moves in the predecessor blocks. However, phi inputs may have different width, and this can result in a mismatch between the source and destination representation. Always emit gap moves based on the destination operand's representation, to ensure that in this case the wider phi inputs are not truncated. R=tebbi@chromium.org CC=dmercadier@chromium.org Bug: chromium:1407571 Change-Id: I0263cd5024e8e1340fb971267b133a2a91090f8f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4178824 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#85403} | 3 年前 | |
[zone] Remove zone compression Compression has been unused for many years. Removing it allows simplifying allocation/freeing paths. Bug: 409953791 Change-Id: I65a38d48e8d2ca2e2ffb131799d20dacb7899d0a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6568895 Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#100686} | 1 年前 | |
[compiler] Make the scheduler faster Fixup the instruction scheduler to be (~an order of magnitude) faster. This is achieved in several ways, mainly changing data structures: - Split nodes into two lists: waiting and ready. - We don't keep waiting or ready sorted, we just iterate through the ready list to find the longest latency. - Using an ZoneUnorderedMap, instead of ZoneMap, for operands_map. - Use a SmallZoneVector, instead of ZoneDeque, for successors which reduces the overhead of resizing. - Reserving enough space when constructing the graph. Other structural changes are: - Caching the result from GetInstructionFlags, as this was taking a significant amount of time, after being called many times for each instruction. - We no longer add the terminator to the graph as this caused far too many unnecessary edges. We want the terminator to be the last instruction, so we just append it to the, almost, final sequence. - The two SchedulingQueues have been combined and we just construct one per scheduler, not per call to Schedule. Change-Id: I8fa436589182a50cdbd5f600725b653e7cf05acc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7053404 Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Sam Parker-Haynes <sam.parker@arm.com> Cr-Commit-Position: refs/heads/main@{#103295} | 8 个月前 | |
[zone] Remove zone compression Compression has been unused for many years. Removing it allows simplifying allocation/freeing paths. Bug: 409953791 Change-Id: I65a38d48e8d2ca2e2ffb131799d20dacb7899d0a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6568895 Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#100686} | 1 年前 | |
[zone] Remove zone compression Compression has been unused for many years. Removing it allows simplifying allocation/freeing paths. Bug: 409953791 Change-Id: I65a38d48e8d2ca2e2ffb131799d20dacb7899d0a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6568895 Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#100686} | 1 年前 | |
[zone] Remove zone compression Compression has been unused for many years. Removing it allows simplifying allocation/freeing paths. Bug: 409953791 Change-Id: I65a38d48e8d2ca2e2ffb131799d20dacb7899d0a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6568895 Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#100686} | 1 年前 | |
Reland^2 "Embedding feedback in BytecodeArray for StrictEqual" This is a reland of commit e295f1f18da01c386eda73f535fb67a56c004d88 Original change's description: > Reland "Embedding feedback in BytecodeArray for StrictEqual" > > This is a reland of commit f0fed41e48b1966e3e565ae278d018da538ef123 > > Original change's description: > > Embedding feedback in BytecodeArray for StrictEqual > > > > This CL removes the feedback vector slot for StrictEqual and stores its feedback values directly in the BytecodeArray. Optimized compilers will now access the type feedback from the BytecodeArray. > > > > Before: > > 75 04 00 TestEqualStrict a1, [0] > > > > After: > > 75 04 00 00 TestEqualStrict a1, #0 > > > > This change saves moemory by reducing FeedbackVector size, and is part of the Sparkplug+ optimization effort. > > > > Bug: chromium:429351411 > > Change-Id: I24390811c12755b0a19beaefe2b0319d75ceaf6c > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6986847 > > Reviewed-by: Xu, Hao A <hao.a.xu@intel.com> > > Commit-Queue: Wei, Yuheng <yuheng.wei@intel.com> > > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#103656} > > Bug: chromium:429351411 > Change-Id: I77286b0e9c65f8a9e257a2125adab7f68fe09aec > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7148333 > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Commit-Queue: Wei, Yuheng <yuheng.wei@intel.com> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/main@{#103800} Bug: chromium:429351411 Change-Id: I5020c9dffbed90ff207520728b13cf0dbcfb5903 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7197099 Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Wei, Yuheng <yuheng.wei@intel.com> Cr-Commit-Position: refs/heads/main@{#103962} | 7 个月前 | |
[compiler][arm64] Omit bti instructions for non-table switches Table switches use indirect branches which require a landing pad bti instruction on all targets to conform with CFI. We use a switch_target marker on blocks to indicate this, which makes the code-generator emit the instruction. However, switch_target is set regardless of the kind of switch that is being used, causing binary search switches to also have bti instructions emitted. This CL fixes this by: - Renaming the block marker so it's clear that it only concerns table switches. - Setting the marker later on VisitSwitch() during isel, rather than when constructing blocks, at which point we know the kind of switch the backend wants to use. Change-Id: I1dd5032bc1c721514a6e490c9a52e65ee853a2cf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6429727 Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Matthias Liedtke <mliedtke@chromium.org> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Cr-Commit-Position: refs/heads/main@{#99739} | 1 年前 | |
[zone] Remove zone compression Compression has been unused for many years. Removing it allows simplifying allocation/freeing paths. Bug: 409953791 Change-Id: I65a38d48e8d2ca2e2ffb131799d20dacb7899d0a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6568895 Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#100686} | 1 年前 | |
Reland^2 "[hole] Remove hole raw number value" This is a reland of commit b998e975fc46f94d8f073c2e7b859e611a313786 Reland changes: * Only check Operator class tag in non-component builds, because of dynamic linker issues. Original change's description: > Reland "[hole] Remove hole raw number value" > > This is a reland of commit 47ac4aacc9726e35627b584cdb5c25aa6d1c754c > > Reland changes: > * Correctly load the Float64 instead of double parameter when > processing Float64Constant. > * Add debug checking to OpParameter which ensures that parameter > loads use the correct type. > > Original change's description: > > [hole] Remove hole raw number value > > > > Holes should, in general, not flow through code as values that need to > > be read. In particular, we should never perform a JS ToNumber operation > > on a Hole, since holes are not JS-visible values. > > > > Historically, holes were considered a form of oddball, and oddballs > > _did_ have ToNumber handling (by reading their raw number offset as if > > they were a HeapNumber), and in a few cases we ended up being sloppy and > > allowed Holes to go through the same path (to read the hole NaN value on > > array initialization or elements kinds transitions). > > > > However, in such cases, we _know_ that we are looking for the hole, and > > we _know_ that we actually want the hole NaN. So, we can be explicit > > about this, with the benefit that we can avoid the hole constant load > > and read from its raw number field, and instead can embed the hole NaN > > float64 constant where needed. > > > > This required a few changes to Float64Constant encoding in TurboFan > > (using an integer bit encoding rather than a double, to avoid losing the > > special NaN bits), and a few adjustments to representation changing > > which are explicit that we are converting a NumberOrHole rather than > > NumberOrOddball when changing a HOLEY_SMI_ELEMENTS array to > > HOLEY_DOUBLE_ELEMENTS. > > > > With these changes, we can remove the raw number field from Holes > > entirely. > > > > Bug: 434179415 > > Change-Id: I4d158466dcdcad9f676e6ba7dc1d6cb6e817d440 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6786712 > > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#101712} > > Bug: 434179415 > Change-Id: Ic0995bdf4b0d050db645aa6c7899e5e2ec1ea38c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6811578 > Auto-Submit: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/main@{#101758} Cq-Include-Trybots: luci.v8.try:v8_win64_dbg Bug: 434179415 Change-Id: Ia11950c24e29e69acc772aea45f1e3aa3ef2c76e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6821533 Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#101779} | 11 个月前 | |
[zone] Remove zone compression Compression has been unused for many years. Removing it allows simplifying allocation/freeing paths. Bug: 409953791 Change-Id: I65a38d48e8d2ca2e2ffb131799d20dacb7899d0a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6568895 Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#100686} | 1 年前 | |
[zone] Remove zone compression Compression has been unused for many years. Removing it allows simplifying allocation/freeing paths. Bug: 409953791 Change-Id: I65a38d48e8d2ca2e2ffb131799d20dacb7899d0a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6568895 Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#100686} | 1 年前 | |
[test] fix uninitialized error In op1a.Equals(&op3) call, that->parameter() is undefined. which triggers uninitialized error from gcc. Change-Id: I87f1fcba3e57adbb5a1e745a3d787c62a87fd1d3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4307714 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#86267} | 3 年前 | |
Reland^2 "[hole] Remove hole raw number value" This is a reland of commit b998e975fc46f94d8f073c2e7b859e611a313786 Reland changes: * Only check Operator class tag in non-component builds, because of dynamic linker issues. Original change's description: > Reland "[hole] Remove hole raw number value" > > This is a reland of commit 47ac4aacc9726e35627b584cdb5c25aa6d1c754c > > Reland changes: > * Correctly load the Float64 instead of double parameter when > processing Float64Constant. > * Add debug checking to OpParameter which ensures that parameter > loads use the correct type. > > Original change's description: > > [hole] Remove hole raw number value > > > > Holes should, in general, not flow through code as values that need to > > be read. In particular, we should never perform a JS ToNumber operation > > on a Hole, since holes are not JS-visible values. > > > > Historically, holes were considered a form of oddball, and oddballs > > _did_ have ToNumber handling (by reading their raw number offset as if > > they were a HeapNumber), and in a few cases we ended up being sloppy and > > allowed Holes to go through the same path (to read the hole NaN value on > > array initialization or elements kinds transitions). > > > > However, in such cases, we _know_ that we are looking for the hole, and > > we _know_ that we actually want the hole NaN. So, we can be explicit > > about this, with the benefit that we can avoid the hole constant load > > and read from its raw number field, and instead can embed the hole NaN > > float64 constant where needed. > > > > This required a few changes to Float64Constant encoding in TurboFan > > (using an integer bit encoding rather than a double, to avoid losing the > > special NaN bits), and a few adjustments to representation changing > > which are explicit that we are converting a NumberOrHole rather than > > NumberOrOddball when changing a HOLEY_SMI_ELEMENTS array to > > HOLEY_DOUBLE_ELEMENTS. > > > > With these changes, we can remove the raw number field from Holes > > entirely. > > > > Bug: 434179415 > > Change-Id: I4d158466dcdcad9f676e6ba7dc1d6cb6e817d440 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6786712 > > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#101712} > > Bug: 434179415 > Change-Id: Ic0995bdf4b0d050db645aa6c7899e5e2ec1ea38c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6811578 > Auto-Submit: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/main@{#101758} Cq-Include-Trybots: luci.v8.try:v8_win64_dbg Bug: 434179415 Change-Id: Ia11950c24e29e69acc772aea45f1e3aa3ef2c76e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6821533 Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#101779} | 11 个月前 | |
[wasm] Call bit manipulating C functions more efficiently Pass the argument according to the C calling convention instead of via a stack buffer. R=ahaas@chromium.org Bug: v8:14473 Change-Id: I69cd84bedfc1972ffc22d32e3ea6f3d2ad6b1f93 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5050061 Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#91125} | 2 年前 | |
Fix spelling errors and other pedantry. Change-Id: I1ed7003c7e6f905101c8ab0e7f9a3167d2db3bf6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5797602 Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Erik Corry <erikcorry@chromium.org> Cr-Commit-Position: refs/heads/main@{#95727} | 1 年前 | |
[sandbox] Remove kDefaultCodeEntrypointTag, pt.1 This is a step towards making code entrypoint tag verification strict. This CL - introduces kCodeEntrypointTagForTesting, - introduces CodeKind::FOR_TESTING_JS in addition to existing CodeKind::FOR_TESTING in order to assign them different code entrypoint tags (kJSEntrypointTag for the former and kCodeEntrypointTagForTesting for the latter), - add SBXCHECK for Code object's entrypoint tags when generating calls and tail calls to compile-time known Code objects, - introduce Linkage::GetCPPBuiltinCallDescriptor() - a CEntry call descriptor customized for CPP builtins, - replaces some of the kDefaultCodeEntrypointTag usages with correct tags, - fixes usages of entrypoint tags in various code generation unit tests. Drive-by: - assign proper descriptor for GenericJSToWasmInterpreterWrapper builtin, - make Builtins::CallInterfaceDescriptorFor() work for bytecode handlers, - make switches over CodeKind values case-complete. Bug: 435630464 Change-Id: I2e34666df5314b0cd4e604a4deaf74e2f0de6f1a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6976541 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Darius Mercadier <dmercadier@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#102733} | 9 个月前 | |
[sandbox] Remove kDefaultCodeEntrypointTag, pt.1 This is a step towards making code entrypoint tag verification strict. This CL - introduces kCodeEntrypointTagForTesting, - introduces CodeKind::FOR_TESTING_JS in addition to existing CodeKind::FOR_TESTING in order to assign them different code entrypoint tags (kJSEntrypointTag for the former and kCodeEntrypointTagForTesting for the latter), - add SBXCHECK for Code object's entrypoint tags when generating calls and tail calls to compile-time known Code objects, - introduce Linkage::GetCPPBuiltinCallDescriptor() - a CEntry call descriptor customized for CPP builtins, - replaces some of the kDefaultCodeEntrypointTag usages with correct tags, - fixes usages of entrypoint tags in various code generation unit tests. Drive-by: - assign proper descriptor for GenericJSToWasmInterpreterWrapper builtin, - make Builtins::CallInterfaceDescriptorFor() work for bytecode handlers, - make switches over CodeKind values case-complete. Bug: 435630464 Change-Id: I2e34666df5314b0cd4e604a4deaf74e2f0de6f1a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6976541 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Darius Mercadier <dmercadier@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#102733} | 9 个月前 | |
Fix spelling errors and other pedantry. Change-Id: I1ed7003c7e6f905101c8ab0e7f9a3167d2db3bf6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5797602 Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Erik Corry <erikcorry@chromium.org> Cr-Commit-Position: refs/heads/main@{#95727} | 1 年前 | |
[compiler] fix false positives of --assert-types Type assertions were added as floating nodes, which lead to many false positives as they could be scheduled before protective checks. This CL fixes this by placing the type assertions after the operations that they are checking using an extra schedule. As a drive-by change, this also removes the need for FoldConstant, and earlier incomplete workaround for the same issue. Fixed: chromium:1425711, chromium:1423602, chromium:1411156 Change-Id: I082b1bd5dd5649223bb99054f32d6ae3da89203f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4370027 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#86695} | 3 年前 | |
[turboshaft][test] Port codegen-tester and test-branch-combine Bug: v8:12783 Change-Id: I11b3ba86de33a12219076005ff7f54422cb27a9a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5349362 Commit-Queue: Darius Mercadier <dmercadier@chromium.org> Reviewed-by: Matthias Liedtke <mliedtke@chromium.org> Cr-Commit-Position: refs/heads/main@{#92739} | 2 年前 | |
[turbolev] Disallow implicit WordPtr->Tagged conversion Change-Id: I2af7f3a633d4a2b0833490779fe35143333acc1c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7186202 Auto-Submit: Darius Mercadier <dmercadier@chromium.org> Reviewed-by: Matthias Liedtke <mliedtke@chromium.org> Commit-Queue: Matthias Liedtke <mliedtke@chromium.org> Cr-Commit-Position: refs/heads/main@{#103931} | 7 个月前 | |
[turboshaft][test] Port codegen-tester and test-branch-combine Bug: v8:12783 Change-Id: I11b3ba86de33a12219076005ff7f54422cb27a9a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5349362 Commit-Queue: Darius Mercadier <dmercadier@chromium.org> Reviewed-by: Matthias Liedtke <mliedtke@chromium.org> Cr-Commit-Position: refs/heads/main@{#92739} | 2 年前 | |
[compiler][arm64] fccmp support Modify the ccmp pattern matching logic to handle Float32 and Float64 types. Change-Id: I52fa775e31c8a8a0776d18c2790260a719c80ebc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6429567 Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Darius Mercadier <dmercadier@chromium.org> Commit-Queue: Sam Parker-Haynes <sam.parker@arm.com> Cr-Commit-Position: refs/heads/main@{#99660} | 1 年前 | |
[turboshaft] Better handling of OptionalOpIndex in unreachable code Fixed: 452671631 Change-Id: I3b4f28b46c87d72b673f35f632670a18d0dd3db9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7066837 Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Auto-Submit: Darius Mercadier <dmercadier@chromium.org> Commit-Queue: Darius Mercadier <dmercadier@chromium.org> Cr-Commit-Position: refs/heads/main@{#103280} | 8 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 年前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 10 个月前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 7 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 11 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 3 年前 | ||
| 11 个月前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 7 个月前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 8 个月前 |