1. 21 Feb, 2019 8 commits
    • Mythri's avatar
      [ic] Update LoadIC builtins to handle no feedback cases · 90e5e244
      Mythri authored
      This cl moves the valid feeback vector checks to the builtins and uses
      fast paths runtime when possible even whithout a valid feedback vector.
      For LoadNamedProperty it calls LoadIC_Uninitialized which does not need
      any type feedback and for LoadKeyedProperty it follows the megamorphic path
      but doesnot use the stub cache.
      
      Bug: v8:8293
      Change-Id: I6ef9653e3f43c15cb882cbf82c3c2f63fb705a81
      Reviewed-on: https://chromium-review.googlesource.com/c/1475393Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Mythri Alle <mythria@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59755}
      90e5e244
    • Michael Achenbach's avatar
      Whitespace change to trigger bots · 55e6a98d
      Michael Achenbach authored
      TBR=santa
      
      Change-Id: I0ff05d47526d7e648c026daecb63ad80b668d9d8
      Reviewed-on: https://chromium-review.googlesource.com/c/1481215Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59754}
      55e6a98d
    • Jakob Gruber's avatar
      Remove invalid DCHECK in ReplacementStringBuilder · c54bbd2c
      Jakob Gruber authored
      The DCHECK verified capacity just before the call to EnsureCapacity()
      (which extends capacity if needed). This DCHECK can just be removed
      since FixedArray::set() already checks the given index is in-bounds.
      
      Drive-by: Remove similar duplicate DCHECKs in FixedArrayBuilder.
      
      Bug: chromium:933776
      Change-Id: I9f058548063a170ea6dce112a3877792887efcca
      Reviewed-on: https://chromium-review.googlesource.com/c/1479955Reviewed-by: 's avatarSimon Zünd <szuend@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59753}
      c54bbd2c
    • Peter Marshall's avatar
      [tracing] Fix races in TracingController implementation · 51e80efd
      Peter Marshall authored
      The default TracingController (used by d8 and Node) has some concurrency
      issues. The new test flushes these out, when a second thread logs trace
      events while the main thread calls StopTracing().
      
      - Use an acquire load in UpdateCategoryGroupEnabledFlags() because this
        was racing with GetCategoryGroupEnabled() where a new category is
        added in the slow path. g_category_groups is append-only, but
        reads/writes to g_category_index need to be correctly ordered so that
        new categories are added and only then is the change to the index
        visible. The relaxed load ignored this and caused unsynchronized
        read/write.
      - Use a relaxed load in ~ScopedTracer() to access category_group_enabled
        as this previously used a non-atomic operation which caused a race
        with UpdateCategoryGroupEnabledFlag() which does a relaxed store.
      - Replace TracingController::mode_ with an atomic bool as read/writes to
        mode_ were not synchronized and caused TSAN errors. It only has two
        states and it doesn't seem like we will extend this so just convert it
        to bool.
      - Take the lock around calling trace_object->Initialize in
        AddTraceEvent(), and around trace_buffer_->Flush() in StopTracing().
        These two raced previously as the underlying TraceBufferRingBuffer
        passes out pointers to TraceObjects in a synchronized way, but the
        caller (AddTraceEvent) then writes into the object without
        synchronization. This leads to races when Flush() is called, at which
        time TraceBufferRingBuffer assumes that all the pointers it handed out
        are to valid, initialized TraceObjects - which is not true because
        AddTraceEvent may still be calling Initialize on them. This could be
        the cause of issues in Node.js where the last line of tracing/logging
        sometimes gets cut off. This is kind of a band-aid solution - access
        to the TraceObjects handed out by the ring buffer really needs proper
        synchronization which at this point would require redesign. It's quite
        likely we will replace this with Perfetto in the near future so not
        much point investing in this code right now.
      - Enable TracingCpuProfiler test which was flaky due to these bugs.
      
      Bug: v8:8821
      Change-Id: I141296800c6906ac0e7f3f21dd16d861b07dae62
      Reviewed-on: https://chromium-review.googlesource.com/c/1477283
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarAli Ijaz Sheikh <ofrobots@google.com>
      Cr-Commit-Position: refs/heads/master@{#59752}
      51e80efd
    • Georg Neis's avatar
      [turbofan] Remove redundant things from AccessInfoFactory · f2dcbf8d
      Georg Neis authored
      Bug: v8:7790
      Change-Id: I92657d3aae6ba34b2aeeb6f000962707577811b6
      Reviewed-on: https://chromium-review.googlesource.com/c/1478696Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Georg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59751}
      f2dcbf8d
    • Benedikt Meurer's avatar
      [cleanup] Remove obsolete representations. · adb7e37b
      Benedikt Meurer authored
      In the Crankshaft days we (mis)used the Representation to also express
      the various internal representations that the compiler understands. But
      with TurboFan we now have proper MachineRepresentation and MachineType,
      which do that independently. So there's no need to have this in the
      Representation class anymore, and instead the Representation class only
      needs to deal with the field representations.
      
      Bug: v8:8749, v8:8834, v8:8865
      Change-Id: I34ea9558b5fdf20d6c7939b52762eaffd4316b06
      Reviewed-on: https://chromium-review.googlesource.com/c/1479954
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59750}
      adb7e37b
    • Jaroslav Sevcik's avatar
      [turbofan] Support f64 truncation in f64->tagged representation change. · 9371781f
      Jaroslav Sevcik authored
      Bug: chromium:933331
      Change-Id: I598a32b1efe2d4b7e8278ddf84140c72f787afa8
      Reviewed-on: https://chromium-review.googlesource.com/c/1475496Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59749}
      9371781f
    • Z Duong Nguyen-Huu's avatar
      Reland "Make format torque tools work on win" · 04bb510c
      Z Duong Nguyen-Huu authored
      This is a reland of 1fdf6405
      
      Original change's description:
      > Make format torque tools work on win
      >
      > Reformatting Torque file is required to upload a CL
      > but it can only work on POSIX
      >
      > Change-Id: I51283e3f6b29abf492be7efb5b8f10454d09fb37
      > Reviewed-on: https://chromium-review.googlesource.com/c/1475919
      > Reviewed-by: Michael Stanton <mvstanton@chromium.org>
      > Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#59719}
      
      Change-Id: I09a19a9989091205eb413fd60b2e8bec289092fd
      Reviewed-on: https://chromium-review.googlesource.com/c/1479530
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59748}
      04bb510c
  2. 20 Feb, 2019 32 commits