1. 09 Nov, 2017 25 commits
  2. 08 Nov, 2017 15 commits
    • Bill Budge's avatar
      Revert "[Memory] Use OS::Allocate for all OS memory allocations." · 1ea3fd2e
      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: 's avatarBill Budge <bbudge@chromium.org>
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49242}
      1ea3fd2e
    • Eric Holk's avatar
      [wasm fuzzer] Require AST fuzzer modules to validate · ea08828b
      Eric Holk authored
      The Wasm AST-based fuzzer is supposed to create valid modules by
      construction. This change adds a CHECK to enforce this property.
      
      Additionally, this change exposed several cases where we were not generating
      valid modules before:
        * Block types did not match up correctly
        * Memory operations could have invalid alignments
        * Storing an i64 could generate an i32 argument incorrectly.
      This CL includes fixes for these issues as well.
      
      Bug: 
      Change-Id: I1aef5532bc880367ec46dc6e79b2d4dbacf2f84b
      Reviewed-on: https://chromium-review.googlesource.com/757129
      Commit-Queue: Eric Holk <eholk@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49241}
      ea08828b
    • Junliang Yan's avatar
      [wasm] Fix expected function to match interpreter's function · a4d96612
      Junliang Yan authored
      b % 32 could produce negative results. Therefore, the result
      of the shift could be undefined values.
      
      Bug: 
      Change-Id: I6c2f7201df424735695aa01891d46523e3c5bd12
      Reviewed-on: https://chromium-review.googlesource.com/759079
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49240}
      a4d96612
    • Sathya Gunasekaran's avatar
      [class] Use CreateDataProperty runtime call · 24b26a0c
      Sathya Gunasekaran authored
      StoreDataPropertyInLiteral doesn't throw (because the previous uses of
      this didn't throw), but class fields can throw on defining the
      property which means we can't use this. Changing to CreateDataProperty
      runtime call instead.
      
      Bug: v8:5367
      Change-Id: I1ab45413b121972dd18fe2b35a0cedd8efe0e0bf
      Reviewed-on: https://chromium-review.googlesource.com/757824
      Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49239}
      24b26a0c
    • Adam Klein's avatar
      Restore pretenuring of HeapNumber literals · 299b2960
      Adam Klein authored
      This was a regression from 317cf321
      which showed up, at least, on Kraken.
      
      Bug: chromium:782150
      Change-Id: Ifd69b86c566182f1a50761b67c911bdde2aed997
      Reviewed-on: https://chromium-review.googlesource.com/759101Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49238}
      299b2960
    • Yang Guo's avatar
      [map] Fix map constructor to correctly throw. · 3c8195d9
      Yang Guo authored
      We need to throw before rethrowing, otherwise the exception does
      not trigger a debugger event and is not reported if uncaught.
      
      R=gsathya@chromium.org, jgruber@chromium.org
      
      Bug: v8:7047
      Change-Id: I7ce0253883a21d6059e4e0ed0fc56dc55a0dcba6
      Reviewed-on: https://chromium-review.googlesource.com/758372Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49237}
      3c8195d9
    • Alexei Filippov's avatar
      [cpu-profiler] Add static CollectSample method to the CpuProfiler API. · 295c9cc6
      Alexei Filippov authored
      The method forces all running profilers attached to the provided isolate
      to collect a sample with the current stack.
      
      It is going to be used to synchronize trace events generated by embedder with the samples
      collected by the profiler.
      
      Also it will finally allow us to break dependency of isolate on CPU profiler.
      
      BUG=chromium:721099
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I81a0f8a463f837b5201bc8edaf2eb4f3761e3ff8
      Reviewed-on: https://chromium-review.googlesource.com/750264Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Alexei Filippov <alph@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49236}
      295c9cc6
    • Bill Budge's avatar
      [Memory] Use OS::Allocate for all OS memory allocations. · 7e78506f
      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: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49235}
      7e78506f
    • Jungshik Shin's avatar
      Reenable intl/number-format/format-currency test · 494aa2e0
      Jungshik Shin authored
      Now that ICU 60.1 was autorolled in, reenable
      number-format/format-currency test the expected result of which was
      adjusted to match the output from ICU 60.1/CLDR 32.
      
      Bug: chromium:766816
      Test: intl/number-format/format-currency
      Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng
      Change-Id: If58d493821d505b86202e134b9e2061504dd5e6a
      Reviewed-on: https://chromium-review.googlesource.com/758027Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Commit-Queue: Jungshik Shin <jshin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49234}
      494aa2e0
    • Andreas Rossberg's avatar
      Fix construction of stack frames with callee-save slots · ad7624e5
      Andreas Rossberg authored
      Function prologues created slots for callee-saved registers twice on all platforms.
      This didn't affect JS because it doesn't use callee-save, but would probably have
      badly broken exceptions raised in Wasm code because Isolate::UnwindAndFindHandler
      was restoring registers and SP incorrectly. It also broke the in-progress CL for
      on-stack multiple returns.
      
      No tests included with this fix, because currently it is almost impossible to test
      directly (according to mstarzinger). But it will be tested indirectly via the upcoming
      multi-return support.
      
      Change-Id: If763cafc03de0a912eca48d5e25e8edfc4552b24
      Reviewed-on: https://chromium-review.googlesource.com/758374Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Commit-Queue: Andreas Rossberg <rossberg@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49233}
      ad7624e5
    • Georg Neis's avatar
      [bigint] Avoid some allocations in BigInt.asIntN and BigInt.asUintN. · 1817199c
      Georg Neis authored
      Bug: v8:6791
      Change-Id: I05c8be6ac880c5ab5451db24dd0ad57b74bde8ba
      Reviewed-on: https://chromium-review.googlesource.com/757137
      Commit-Queue: Georg Neis <neis@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49232}
      1817199c
    • Clemens Hammacher's avatar
      [wasm] [fuzzer] Omit input hash in error message · d1652012
      Clemens Hammacher authored
      For each single bug, the fuzzer might find many very similar inputs
      which trigger this bug. All of them are reported as individual bugs
      currently, which means lots of noise in bug reports and increased
      workload for the clusterfuzz sheriffs.
      After this change, all bugs of the same category ("compiles !=
      validates", "interpreter != liftoff", ...) will be grouped together.
      This requires us to fix them soon after reporting, as they will hide
      all other bugs of the same category.
      
      R=ahaas@chromium.org
      CC=mmoroz@chromium.org
      
      Change-Id: Ie203eed0c7681e3450df977b10c0d9dbbc402d34
      Reviewed-on: https://chromium-review.googlesource.com/758438Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49231}
      d1652012
    • Mathias Bynens's avatar
      [test] Enable passing Unicode property class tests · 4cc8e1d9
      Mathias Bynens authored
      Instead of disabling the entire RegExp Unicode property escape test
      suite, this patch explicitly lists the failing tests and only disables
      them.
      
      BUG=v8:4743
      
      Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng
      Change-Id: If398eb4fcc8d9d96279dc5afb29489e699744d9f
      Reviewed-on: https://chromium-review.googlesource.com/758757
      Commit-Queue: Mathias Bynens <mathias@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49230}
      4cc8e1d9
    • Mathias Bynens's avatar
      [regexp] Support Emoji_Component property class · 63536799
      Mathias Bynens authored
      This patch adds support for Emoji_Component within Unicode property
      escapes in regular expressions.
      
      The Emoji_Component binary property was added in Emoji data v5
      and is supported in ICU 60.1.
      
      An `#if` directive is used to prevent breaking Node.js until they
      update their ICU.
      
      BUG=v8:4743
      
      Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng
      Change-Id: If1b49a4c175e88f1840ca5ef8d57829d6d8c3291
      Reviewed-on: https://chromium-review.googlesource.com/758261Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Mathias Bynens <mathias@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49229}
      63536799
    • Georg Neis's avatar
      [compiler] Replace type->IsInhabited() by !type->IsNone(). · d98ef522
      Georg Neis authored
      They have been meaning the same thing for a while now.
      
      R=jarin@chromium.org
      
      Bug: 
      Change-Id: Ie5988e6429b795babfa1e1f79841a9f03b8362dc
      Reviewed-on: https://chromium-review.googlesource.com/758268
      Commit-Queue: Georg Neis <neis@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49228}
      d98ef522