- 13 Nov, 2017 1 commit
-
-
Camillo Bruni authored
- Update most callsites to use the new RunJS method - Update tests to use TestWithNativeContext if possible - Remove RunJS from test-helpers.cc - Remove TestWithRandomNumberGenerator from test-utils.h Change-Id: Ib2a6cc56334dc391ca6a2aeb7780fa324f44f109 Reviewed-on: https://chromium-review.googlesource.com/765373Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#49325}
-
- 11 Nov, 2017 1 commit
-
-
Jakob Gruber authored
Revert this and its follow-up as suspect for current canary OOM crasher. This reverts commit 4899bcb6. This reverts commit b73ee334. TBR=adamk@chromium.org,hpayer@chromium.org Bug: chromium:783708 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I4c00582e7ab2df22216ad6732e2843e9958db0c0 Reviewed-on: https://chromium-review.googlesource.com/765447Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#49315}
-
- 09 Nov, 2017 1 commit
-
-
Bill Budge authored
This is a reland of 7e78506f Original change's description: > [Memory] Use OS::Allocate for all OS memory allocations. > > - Eliminates OS::ReserveRegion and OS::ReserveAlignedRegion. > - Changes OS::Allocate to take alignment parameter, reorders parameters > to match page_allocator. > - Since the size of memory allocation can be deduced, don't return the > amount of memory allocated. > - Changes reservation of aligned address space. Before we would reserve > (size + alignment) rounded up to page size. This is too much, because > maximum misalignment is (alignment - page_size). > - On Windows and Cygwin, we release an oversize allocation and > immediately retry at the aligned address in the allocation. If we > lose the address due to a race, we just retry. > - Clean up all the calls to OS::Allocate in codegen and tests by adding > helper AllocateSystemPage function (allocation.h) and > AllocateAssemblerBuffer (cctest.h). > - Changes 'assm' to 'masm' in some targets for consistency when using > a macro-assembler. > > Bug: chromium:756050 > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: I306dbe042cc867670fdc935abca29db074b0da71 > Reviewed-on: https://chromium-review.googlesource.com/749848 > Commit-Queue: Bill Budge <bbudge@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49235} Bug: chromium:756050 Change-Id: I333f7a6aea0bcb608d01cafb43e94893a4625b15 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/758509Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#49273}
-
- 08 Nov, 2017 2 commits
-
-
Bill Budge authored
This reverts commit 7e78506f. Reason for revert: Broke Android build on Arm64. Original change's description: > [Memory] Use OS::Allocate for all OS memory allocations. > > - Eliminates OS::ReserveRegion and OS::ReserveAlignedRegion. > - Changes OS::Allocate to take alignment parameter, reorders parameters > to match page_allocator. > - Since the size of memory allocation can be deduced, don't return the > amount of memory allocated. > - Changes reservation of aligned address space. Before we would reserve > (size + alignment) rounded up to page size. This is too much, because > maximum misalignment is (alignment - page_size). > - On Windows and Cygwin, we release an oversize allocation and > immediately retry at the aligned address in the allocation. If we > lose the address due to a race, we just retry. > - Clean up all the calls to OS::Allocate in codegen and tests by adding > helper AllocateSystemPage function (allocation.h) and > AllocateAssemblerBuffer (cctest.h). > - Changes 'assm' to 'masm' in some targets for consistency when using > a macro-assembler. > > Bug: chromium:756050 > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: I306dbe042cc867670fdc935abca29db074b0da71 > Reviewed-on: https://chromium-review.googlesource.com/749848 > Commit-Queue: Bill Budge <bbudge@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49235} TBR=bbudge@chromium.org,hpayer@chromium.org,mlippautz@chromium.org Change-Id: Ic09de4d63c19746a62e804b1f889817ffaebc330 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:756050 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/758625Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#49242}
-
Bill Budge authored
- Eliminates OS::ReserveRegion and OS::ReserveAlignedRegion. - Changes OS::Allocate to take alignment parameter, reorders parameters to match page_allocator. - Since the size of memory allocation can be deduced, don't return the amount of memory allocated. - Changes reservation of aligned address space. Before we would reserve (size + alignment) rounded up to page size. This is too much, because maximum misalignment is (alignment - page_size). - On Windows and Cygwin, we release an oversize allocation and immediately retry at the aligned address in the allocation. If we lose the address due to a race, we just retry. - Clean up all the calls to OS::Allocate in codegen and tests by adding helper AllocateSystemPage function (allocation.h) and AllocateAssemblerBuffer (cctest.h). - Changes 'assm' to 'masm' in some targets for consistency when using a macro-assembler. Bug: chromium:756050 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I306dbe042cc867670fdc935abca29db074b0da71 Reviewed-on: https://chromium-review.googlesource.com/749848 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#49235}
-
- 07 Nov, 2017 3 commits
-
-
Michal Majewski authored
This is a reland of 34e3e7f9 Original change's description: > Introduce gc flag for fuzzing over compaction. > > Bug: v8:6972 > Change-Id: If1f4ee04ae00c6ae1e037bbb1ca758e952a8f843 > Reviewed-on: https://chromium-review.googlesource.com/738112 > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Commit-Queue: Michał Majewski <majeski@google.com> > Cr-Commit-Position: refs/heads/master@{#49191} Bug: v8:6972 Change-Id: I690a72a6d5da17c6f15449b2be4cbb681a67e60e Reviewed-on: https://chromium-review.googlesource.com/756894Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Michał Majewski <majeski@google.com> Cr-Commit-Position: refs/heads/master@{#49195}
-
Michael Achenbach authored
This reverts commit 34e3e7f9. Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Fuchsia/builds/474 Original change's description: > Introduce gc flag for fuzzing over compaction. > > Bug: v8:6972 > Change-Id: If1f4ee04ae00c6ae1e037bbb1ca758e952a8f843 > Reviewed-on: https://chromium-review.googlesource.com/738112 > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Commit-Queue: Michał Majewski <majeski@google.com> > Cr-Commit-Position: refs/heads/master@{#49191} TBR=machenbach@chromium.org,hpayer@chromium.org,majeski@google.com Change-Id: I63a14763a4958c948fbcad1e75c284abb580e7be No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6972 Reviewed-on: https://chromium-review.googlesource.com/755596Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#49192}
-
Michal Majewski authored
Bug: v8:6972 Change-Id: If1f4ee04ae00c6ae1e037bbb1ca758e952a8f843 Reviewed-on: https://chromium-review.googlesource.com/738112Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Michał Majewski <majeski@google.com> Cr-Commit-Position: refs/heads/master@{#49191}
-
- 06 Nov, 2017 1 commit
-
-
Clemens Hammacher authored
This is a reland of 7d231e57, fixed to avoid instantiating CountLeadingZeros for bits==0. Original change's description: > [bits] Consolidate Count{Leading,Trailing}Zeros > > Instead of having one method for 32 bit integers and one for 64 bit, > plus a templatized version to choose from those two, just implement one > version which handles unsigned integers of any size. Also, make them > constexpr. > The Count{Leading,Trailing}Zeros{32,64} methods are kept for now in > order to keep the amount of code changes small. Also, sometimes it > improves readability by stating exactly the size of the argument, > especially for leading zeros (where zero-extending would add more > leading zeros). > > CountLeadingZeros now uses a binary search inspired implementation > as proposed in Hacker's Delight. It's more than 20% faster on x64 if > the builtins are disabled. > CountTrailingZeros falls back to CountPopulation instead of counting in > a naive loop. This is ~50% faster. > > R=mstarzinger@chromium.org > > Change-Id: I1d8bf1d7295b930724163248150444bd17fbb34e > Reviewed-on: https://chromium-review.googlesource.com/741231 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49106} Change-Id: Icdff2510ec66d1c96a1912cef29d77d8550994ee Reviewed-on: https://chromium-review.googlesource.com/753903Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#49138}
-
- 04 Nov, 2017 1 commit
-
-
Michael Achenbach authored
This reverts commit 7d231e57. Reason for revert: Breaks revert for win-clang: https://build.chromium.org/p/tryserver.chromium.win/builders/win_clang/builds/342755 Original change's description: > [bits] Consolidate Count{Leading,Trailing}Zeros > > Instead of having one method for 32 bit integers and one for 64 bit, > plus a templatized version to choose from those two, just implement one > version which handles unsigned integers of any size. Also, make them > constexpr. > The Count{Leading,Trailing}Zeros{32,64} methods are kept for now in > order to keep the amount of code changes small. Also, sometimes it > improves readability by stating exactly the size of the argument, > especially for leading zeros (where zero-extending would add more > leading zeros). > > CountLeadingZeros now uses a binary search inspired implementation > as proposed in Hacker's Delight. It's more than 20% faster on x64 if > the builtins are disabled. > CountTrailingZeros falls back to CountPopulation instead of counting in > a naive loop. This is ~50% faster. > > R=mstarzinger@chromium.org > > Change-Id: I1d8bf1d7295b930724163248150444bd17fbb34e > Reviewed-on: https://chromium-review.googlesource.com/741231 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49106} TBR=mstarzinger@chromium.org,clemensh@chromium.org Change-Id: Iceeb35bf9c7539a1013c9bdbc47118008611bef2 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/753463Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#49123}
-
- 03 Nov, 2017 1 commit
-
-
Clemens Hammacher authored
Instead of having one method for 32 bit integers and one for 64 bit, plus a templatized version to choose from those two, just implement one version which handles unsigned integers of any size. Also, make them constexpr. The Count{Leading,Trailing}Zeros{32,64} methods are kept for now in order to keep the amount of code changes small. Also, sometimes it improves readability by stating exactly the size of the argument, especially for leading zeros (where zero-extending would add more leading zeros). CountLeadingZeros now uses a binary search inspired implementation as proposed in Hacker's Delight. It's more than 20% faster on x64 if the builtins are disabled. CountTrailingZeros falls back to CountPopulation instead of counting in a naive loop. This is ~50% faster. R=mstarzinger@chromium.org Change-Id: I1d8bf1d7295b930724163248150444bd17fbb34e Reviewed-on: https://chromium-review.googlesource.com/741231Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#49106}
-
- 24 Oct, 2017 1 commit
-
-
Clemens Hammacher authored
Before, the standard way to create a RegList was either: RegList list = (1 << 0) | (1 << 1) | ... or RegList list = rax.bit() | rdx.bit() | ... The first way allows to make the RegList constexpr, but needs comments to document which registers you are referring to, and it has no checks that all bits you set on the RegList actually belong to valid registers. The second one uses the symbolic names, hence is much more readable and makes it harder to construct invalid RegLists. It's not constexpr though, since the {bit()} method on the register types is not constexpr. This CL adds a constexpr accessor to get the code and bit of a constexpr Register, and adds a helper method to create a constexpr RegList like this: constexpr RegList list = Register::ListOf<rax, rdx, rdi>(); This new method is used in a number of places to test its applicability. Other uses of the old pattern remain and can be cleaned up later. R=tebbi@chromium.org Change-Id: Ie7b1d6342dc5f316dcfedd0363b3540ad5e7f413 Reviewed-on: https://chromium-review.googlesource.com/728026 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#48887}
-
- 18 Oct, 2017 1 commit
-
-
Clemens Hammacher authored
This makes the function constexpr and implements it for arbitrary unsigned integer types (up to 64 bits, but this can be extended if needed). R=mstarzinger@chromium.org Bug: v8:6600, v8:6921 Change-Id: I86d427238fadd55abb5a27f31ed648d4b02fc358 Reviewed-on: https://chromium-review.googlesource.com/718457 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48696}
-
- 28 Sep, 2017 1 commit
-
-
Mostyn Bramley-Moore authored
TBR=jkummerow@chromium.org Bug: chromium:746958 Change-Id: I7500b6206c4ceb087672de5b61b7e7ad234bb425 Reviewed-on: https://chromium-review.googlesource.com/690397 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#48213}
-
- 21 Sep, 2017 1 commit
-
-
Clemens Hammacher authored
In the current implementation, compilation would fail because operator<< is not defined for enum classes. For others, the compiler finds more than one operator<<, so it fails because it's ambiguous. This CL fixes this by printing the integer value for enums, uses the operator<< for all values that support it, and prints "<unprintable>" otherwise. Also, lots of unit tests. R=ishell@chromium.org Bug: v8:6837 Change-Id: I895ed226672aa07213f9605e094b87af186ec2e4 Reviewed-on: https://chromium-review.googlesource.com/671016 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#48110}
-
- 15 Sep, 2017 1 commit
-
-
Sigurdur Asgeirsson authored
Bug: chromium:763010 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I7d479f8abb16ffd7ffc19d3a6b58da01f5feddd0 Reviewed-on: https://chromium-review.googlesource.com/661054Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org> Cr-Commit-Position: refs/heads/master@{#48038}
-
- 16 Aug, 2017 1 commit
-
-
Ulan Degenbaev authored
TBR: mlippautz@chromium.org Change-Id: I1d0c3c84e4483287aa599c7d3a0c0d1c5a4d154a Reviewed-on: https://chromium-review.googlesource.com/612177 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#47379}
-
- 11 Aug, 2017 2 commits
-
-
Ulan Degenbaev authored
This class provides byte level CAS operation using word level CAS. Bug: chromium:694255 Change-Id: I39e661ee8d11e3f61fd5cb64c36f8f5ee94d1244 Reviewed-on: https://chromium-review.googlesource.com/612170 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#47311}
-
Michael Lippautz authored
The removed building blocks have either been completely unused or have already been replaced. Bug: Change-Id: I68a4d5d42b7f1cc3c5f8d0e7ea7146c5a0f59048 Reviewed-on: https://chromium-review.googlesource.com/612163Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#47304}
-
- 07 Aug, 2017 1 commit
-
-
Clemens Hammacher authored
I want to reuse the PassType helper in another CL, thus move it from logging.h to template-utils.h, and rename it to pass_value_or_ref to match other helpers there. Also, add a boolean template parameter to declare whether array dimensions should be removed. The default is to do so, which helps to reduce the number of template instantiations by always passing arrays as pointers. Also, fix the usages in logging.h to actually use that helper when instantiating other template functions. This will reduce the number of instantiations. And finally, we now have unit tests for the template utils, to document what we expect, and test that this works on all architectures. R=ishell@chromium.org, tebbi@chromium.org Change-Id: I1ef5d2a489a5cfc7601c5ab13748674e3aa86cd6 Reviewed-on: https://chromium-review.googlesource.com/594247 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#47191}
-
- 02 Aug, 2017 1 commit
-
-
Julien Brianceau authored
Bug: chromium:750830 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: Icab7b5a1c469d5e77d04df8bfca8319784e92af4 Reviewed-on: https://chromium-review.googlesource.com/595655 Commit-Queue: Julien Brianceau <jbriance@cisco.com> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Daniel Ehrenberg <littledan@chromium.org> Cr-Commit-Position: refs/heads/master@{#47072}
-
- 27 Jul, 2017 1 commit
-
-
Ulan Degenbaev authored
BUG=chromium:739644 Change-Id: I6c7d0f48c959826dd2a8587d7a321be4387ef39f Reviewed-on: https://chromium-review.googlesource.com/586529Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46936}
-
- 25 Jul, 2017 1 commit
-
-
Clemens Hammacher authored
Add a third parameter to {AsHex} which specifies whether the prefix "0x" should be printed. Also, add the {AsHexBytes} helper which outputs the hex number as individual bytes separated by a whitespace. Also add unit tests for both helpers. Both helper will be used in an upcoming refactoring of wasm error messages: https://chromium-review.googlesource.com/c/565282 R=titzer@chromium.org Change-Id: I42d5ace9841ffb918cb4d6803b6347229e446097 Reviewed-on: https://chromium-review.googlesource.com/583448 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46859}
-
- 13 Jul, 2017 2 commits
-
-
Clemens Hammacher authored
There is just one version now, called IsPowerOfTwo. It accepts any integral type. There is one slight semantical change: Called with kMinInt, it previously returned true, because the argument was implicitly casted to an unsigned. It's now (correctly) returning false, so I had to add special handlings of kMinInt in machine-operator-reducer before calling IsPowerOfTwo on that value. R=mlippautz@chromium.org,mstarzinger@chromium.org,jgruber@chromium.org,ishell@chromium.org,yangguo@chromium.org Change-Id: Idc112a89034cdc8c03365b778b33b1c29fefb38d Reviewed-on: https://chromium-review.googlesource.com/568140Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46627}
-
Clemens Hammacher authored
This CL changes the USE macro to accept more than one parameter. This is particularly interesting for calling a method on each type in a parameter pack, as in: template<typename... T> void foo(T&&... ts) { USE(do_something(ts)...); } Drive-by fix: Allow to pass arbitrary types to USE, including references. This might prevent a copy for pass-by-value. R=ishell@chromium.org, tebbi@chromium.org Also-by: tebbi@chromium.org Change-Id: I544e83bb996aaa638e7512295973dd3e742254bc Reviewed-on: https://chromium-review.googlesource.com/567507Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46626}
-
- 12 Jul, 2017 1 commit
-
-
Daniel Clifford authored
This makes it possible for automated tests to distinguish between CHECK failures and DCHECK failures, the latter of which will continue to run in release builds after the assertion failure point. Change-Id: Ie26978c0342d401a8c85f3261749739195087579 Reviewed-on: https://chromium-review.googlesource.com/565515 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by:
Jochen Eisinger <jochen@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#46596}
-
- 10 Jul, 2017 2 commits
-
-
Benedikt Meurer authored
This reverts commit 39e335c7. Reason for revert: Breaks debug builds on Linux, especially mksnapshot fails now, i.e.: FAILED: mksnapshot python "../../build/toolchain/gcc_link_wrapper.py" --output="./mksnapshot" -- ../../third_party/llvm-build/Release+Asserts/bin/clang++ -pie -Wl,--fatal-warnings -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -Wl,--no-as-needed -lpthread -Wl,--as-needed -fuse -ld=gold -B../../third_party/binutils/Linux_x64/Release/bin -Wl,--threads -Wl,--thread-count=4 -Wl,--icf=all -m64 -Werror -Wl,--gdb-index --sysroot=../../build/linux/debian_jessie_amd64-sysroot -L../../build/linux/debian_jessie_amd64-sysroot/lib/x86_64-linux-gnu -Wl,-rpat h-link=../../build/linux/debian_jessie_amd64-sysroot/lib/x86_64-linux-gnu -L../../build/linux/debian_jessie_amd64-sysroot/usr/lib/x86_64-linux-gnu -Wl,-rpath-link=../../build/linux/debian_jessie_amd64-sysroot/usr/lib/x86_64-linux-gnu -Wl,-rpath-link=. -Wl,--disable-new-dt ags -rdynamic -nodefaultlibs -o "./mksnapshot" -Wl,--start-group @"./mksnapshot.rsp" -Wl,--end-group -ldl -lpthread -lrt -lc -lm -lgcc_s ../../src/elements.cc:3362: error: undefined reference to 'v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)7>::Kind' ../../src/elements.cc:3362: error: undefined reference to 'v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)8>::Kind' ../../src/elements.cc:3953: error: undefined reference to 'v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)9>::Kind' ../../src/profiler/heap-snapshot-generator.cc:187: error: undefined reference to 'v8::internal::(anonymous namespace)::SnapshotSizeConstants<4ul>::kExpectedHeapGraphEdgeSize' ../../src/elements.cc:3953: error: undefined reference to 'v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)10>::Kind' ../../src/profiler/heap-snapshot-generator.cc:198: error: undefined reference to 'v8::internal::(anonymous namespace)::SnapshotSizeConstants<4ul>::kExpectedHeapEntrySize' ../../src/profiler/heap-snapshot-generator.cc:199: error: undefined reference to 'v8::internal::(anonymous namespace)::SnapshotSizeConstants<8ul>::kExpectedHeapGraphEdgeSize' ../../src/profiler/heap-snapshot-generator.cc:200: error: undefined reference to 'v8::internal::(anonymous namespace)::SnapshotSizeConstants<8ul>::kExpectedHeapEntrySize' clang: error: linker command failed with exit code 1 (use -v to see invocation) ninja: build stopped: subcommand failed. Original change's description: > [base] Make USE a variadic template > > This will allow for passing more than one variable. This is > particularly interesting for calling a method on each type in a > parameter pack, as in: > > template<typename... T> > void foo(T&&... ts) { > USE(do_something(ts)...); > } > > Drive-by fix: Allow to pass arbitrary types to USE, including > references. This might prevent a copy for pass-by-value. > > R=ishell@chromium.org > > Change-Id: I8f894d730bbcd195ed83705f98771994b4bc906f > Reviewed-on: https://chromium-review.googlesource.com/565561 > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46527} TBR=clemensh@chromium.org,ishell@chromium.org Change-Id: Ibd3f0529e7a3136c4bcac15443da3d9f8dde8510 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/565141Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46534}
-
Clemens Hammacher authored
This will allow for passing more than one variable. This is particularly interesting for calling a method on each type in a parameter pack, as in: template<typename... T> void foo(T&&... ts) { USE(do_something(ts)...); } Drive-by fix: Allow to pass arbitrary types to USE, including references. This might prevent a copy for pass-by-value. R=ishell@chromium.org Change-Id: I8f894d730bbcd195ed83705f98771994b4bc906f Reviewed-on: https://chromium-review.googlesource.com/565561Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46527}
-
- 12 May, 2017 1 commit
-
-
Clemens Hammacher authored
The current implementation failed when comparing an integral type to a reference to an integral type of different signedness (see updated unittest). This CL fixes the checks to actually test the std::decay<T>::type, i.e. with all references, const or volatile modifiers stripped. R=jochen@chromium.org, ishell@chromium.org TEST=unittests/LoggingTest.CompareWithReferenceType Change-Id: Ib0ac077a91e0409ada7a80b68150cb98cbdd32f1 Reviewed-on: https://chromium-review.googlesource.com/502814Reviewed-by:
Jochen Eisinger <jochen@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45271}
-
- 04 May, 2017 1 commit
-
-
Eric Holk authored
AllocateGuarded previously fell back on Allocate and then called Guard to set the protection to PROT_NONE. Linux commits RW memory, but the important thing here is to reserve the address space without committing it. This change adds a new variant of Allocate that takes explicit permission bits so that AllocateGuarded allocates non-RW memory from the beginning. Bug: v8:6320 Change-Id: I7962acbed09938951bf3bb4af2d1f302adba2547 Reviewed-on: https://chromium-review.googlesource.com/491928 Commit-Queue: Eric Holk <eholk@chromium.org> Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Reviewed-by:
Jochen Eisinger <jochen@chromium.org> Cr-Commit-Position: refs/heads/master@{#45075}
-
- 27 Apr, 2017 3 commits
-
-
Clemens Hammacher authored
With fix for architectures where x<<32 != x. Original change's description: > [base] Introduce RoundUpToPowerOfTwo64 > > And fix RoundUpToPowerOfTwo32 to return 1 for the input 0. > 0 is no power of two. > Beside being the correct value, this also avoids a special case in the > (new) fast path using the number of leading zeros. > > R=jochen@chromium.org, ahaas@chromium.org > > Change-Id: I87173495e13b334954bcebbb55724fb666dfa809 > Reviewed-on: https://chromium-review.googlesource.com/488143 > Reviewed-by: Jochen Eisinger <jochen@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#44925} TBR=ahaas@chromium.org,jochen@chromium.org,clemensh@chromium.org,v8-reviews@googlegroups.com Change-Id: I7b4719d84a419bb7b38e3b5c9d6d183275087ace Reviewed-on: https://chromium-review.googlesource.com/488981 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44951}
-
Clemens Hammacher authored
This reverts commit 9ceaf212. Reason for revert: Fails on arm: http://build.chromium.org/p/client.v8.ports/builders/V8%20Arm%20-%20debug/builds/2950/steps/Check/logs/Bits.RoundUpToPowerOf.. Original change's description: > [base] Introduce RoundUpToPowerOfTwo64 > > And fix RoundUpToPowerOfTwo32 to return 1 for the input 0. > 0 is no power of two. > Beside being the correct value, this also avoids a special case in the > (new) fast path using the number of leading zeros. > > R=jochen@chromium.org, ahaas@chromium.org > > Change-Id: I87173495e13b334954bcebbb55724fb666dfa809 > Reviewed-on: https://chromium-review.googlesource.com/488143 > Reviewed-by: Jochen Eisinger <jochen@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#44925} TBR=ahaas@chromium.org,jochen@chromium.org,clemensh@chromium.org,v8-reviews@googlegroups.com,wasm-v8@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Ib353ee0a944316da6f919bac3bb88d4f95d98ea0 Reviewed-on: https://chromium-review.googlesource.com/488365Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44935}
-
Clemens Hammacher authored
And fix RoundUpToPowerOfTwo32 to return 1 for the input 0. 0 is no power of two. Beside being the correct value, this also avoids a special case in the (new) fast path using the number of leading zeros. R=jochen@chromium.org, ahaas@chromium.org Change-Id: I87173495e13b334954bcebbb55724fb666dfa809 Reviewed-on: https://chromium-review.googlesource.com/488143Reviewed-by:
Jochen Eisinger <jochen@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44925}
-
- 24 Apr, 2017 1 commit
-
-
brucedawson authored
VC++ 2017's STL doesn't suppress warnings as aggressively as prior versions did. This causes warnings on code which mixes signed and unsigned types. In this case a deque of unsigned integers was being queried to see how many signed integers it contains. This could be fixed by passing in unsigned 0, 1, and 2 to std::count but changing the deque from unsigned to int is simpler. R=adamk@chromium.org BUG=chromium:683729 Review-Url: https://codereview.chromium.org/2834293002 Cr-Commit-Position: refs/heads/master@{#44814}
-
- 20 Jan, 2017 1 commit
-
-
clemensh authored
In this particular case, we just did a (lhs)op(rhs), ignoring the case that lhs and rhs might have different signedness. This CL changes that to use the proper Cmp##op##Impl implementation, which does two comparisions for signed-vs-unsigned checks, avoiding compiler errors. R=ishell@chromium.org Review-Url: https://codereview.chromium.org/2642383002 Cr-Commit-Position: refs/heads/master@{#42566}
-
- 19 Dec, 2016 1 commit
-
-
yangguo authored
R=cbruni@chromium.org BUG=chromium:662388 Review-Url: https://codereview.chromium.org/2586203002 Cr-Commit-Position: refs/heads/master@{#41799}
-
- 01 Dec, 2016 1 commit
-
-
clemensh authored
The current CHECK/DCHECK implementation fails statically if a signed value is compared against an unsigned value. The common solution is to cast on each caller, which is tedious and error-prone (might hide bugs). This CL implements signed vs. unsigned comparisons by executing up to two comparisons. For example, if i is int32_t and u is uint_32_t, a DCHECK_LE(i, u) would create the check i <= 0 || static_cast<uint32_t>(i) <= u. For checks against constants, at least one of the checks can be removed by compiler optimizations. The tradeoff we have to make is to sometimes silently execute an additional comparison. And we increase code complexity of course, even though the usage is just as easy (or even easier) as before. The compile time impact seems to be minimal: I ran 3 full compilations for Optdebug on my local machine, one time on the current ToT, one time with this CL plus http://crrev.com/2524093002. Before: 143.72 +- 1.21 seconds Now: 144.18 +- 0.67 seconds In order to check that the new comparisons are working, I refactored some DCHECKs in wasm to use the new magic, and added unit test cases. R=ishell@chromium.org, titzer@chromium.org CC=ahaas@chromium.org, bmeurer@chromium.org Committed: https://crrev.com/5925074a9dab5a8577766545b91b62f2c531d3dc Review-Url: https://codereview.chromium.org/2526783002 Cr-Original-Commit-Position: refs/heads/master@{#41275} Cr-Commit-Position: refs/heads/master@{#41411}
-
- 29 Nov, 2016 1 commit
-
-
clemensh authored
This not only potentially improves performance, but also avoids weird linker errors, like the one below, where I used Smi::kMinValue in a DCHECK_LE. > [421/649] LINK ./mksnapshot > FAILED: mksnapshot > src/base/logging.h|178| error: undefined reference to 'v8::internal::Smi::kMinValue' R=bmeurer@chromium.org, ishell@chromium.org Committed: https://crrev.com/76723502528c5af003fdffc3520632ea2a13fef3 Review-Url: https://codereview.chromium.org/2524093002 Cr-Original-Commit-Position: refs/heads/master@{#41273} Cr-Commit-Position: refs/heads/master@{#41363}
-
- 24 Nov, 2016 2 commits
-
-
clemensh authored
Revert of [base] Pass scalar arguments by value in CHECK/DCHECK (patchset #3 id:40001 of https://codereview.chromium.org/2524093002/ ) Reason for revert: Seems to cause compile errors on Android. Will investigate on Monday. Original issue's description: > [base] Pass scalar arguments by value in CHECK/DCHECK > > This not only potentially improves performance, but also avoids weird > linker errors, like the one below, where I used Smi::kMinValue in a > DCHECK_EQ. > > > [421/649] LINK ./mksnapshot > > FAILED: mksnapshot > > src/base/logging.h|178| error: undefined reference to > 'v8::internal::Smi::kMinValue' > > R=bmeurer@chromium.org, ishell@chromium.org > > Committed: https://crrev.com/76723502528c5af003fdffc3520632ea2a13fef3 > Cr-Commit-Position: refs/heads/master@{#41273} TBR=bmeurer@chromium.org,ishell@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2527883004 Cr-Commit-Position: refs/heads/master@{#41278}
-
clemensh authored
This not only potentially improves performance, but also avoids weird linker errors, like the one below, where I used Smi::kMinValue in a DCHECK_EQ. > [421/649] LINK ./mksnapshot > FAILED: mksnapshot > src/base/logging.h|178| error: undefined reference to 'v8::internal::Smi::kMinValue' R=bmeurer@chromium.org, ishell@chromium.org Review-Url: https://codereview.chromium.org/2524093002 Cr-Commit-Position: refs/heads/master@{#41273}
-