1. 02 May, 2017 20 commits
  2. 01 May, 2017 4 commits
  3. 30 Apr, 2017 2 commits
  4. 29 Apr, 2017 7 commits
  5. 28 Apr, 2017 7 commits
    • Andreas Haas's avatar
      [wasm] Move the wasm fuzzer corpus to a different directory · 1f629aac
      Andreas Haas authored
      The current test/fuzzer/wasm directory is used for two things:
      1) as the corpus directory for clusterfuzz
      2) to test in v8 that the fuzzer runs correctly.
      
      With the newly added files from the wasm spec tests this directory grew
      quite big and adds unnecessary load on the trybots. Therefore I want to
      do the following steps:
      1) In this CL for V8: create a new directory for the clusterfuzz corpus
      2) In chromium: use the new corpus directory
      3) In v8: clean up the old directory to use it on the trybots.
      
      R=bradnelson@chromium.org
      CC=mmoroz@chromium.org
      
      Change-Id: If690022558bb5780edf5a3649fb9745ef9c7407a
      Reviewed-on: https://chromium-review.googlesource.com/490367
      Commit-Queue: Brad Nelson <bradnelson@chromium.org>
      Reviewed-by: 's avatarBrad Nelson <bradnelson@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44991}
      1f629aac
    • kozyatinskiy's avatar
      [inspector] better stacks for promises · f2bd913c
      kozyatinskiy authored
      - we should always set creation async stack if it's available regardless existing of current parent async stack,
      - we should cleanup parent link iff there is no creation and schedule async stack for parent.
      
      Let's consider example: Promise.resolve().then(x => x).then(x => x), there is three promises which will call following instrumentation:
      1) created #1 (Promise.resolve()) - collected stack #1
      2) scheduled #1 - collected stack #2
      3) created #2 with #1 as parent (first .then) - collected stack #3
      4) created #3 with #2 as parent (first .then) - collected stack #4
      5) started #2 - use stack #2 as scheduled
      6) scheduled #2 - collected stack #6
      7) finished #2
      8) started #3 - use stack #6 as scheduled
      9) scheduled #3 - collected stack #7
      10) finished #3
      
      If we collect stacks between step 4 and 5, it's possible to collect scheduled stack #2 but still have creation stack for #2 - stack #3 - so we always need to add creation event if scheduled is collected.
      
      If we collect stacks between created and scheduled we should not remove parent link even if parent was not scheduled yet.
      
      BUG=v8:6189
      R=dgozman@chromium.org
      
      Review-Url: https://codereview.chromium.org/2844753002
      Cr-Commit-Position: refs/heads/master@{#44990}
      f2bd913c
    • stanisc's avatar
      Optimized layout padding in 4 classes in ast.h · 6408032e
      stanisc authored
      This reduces sizeof of these classes by 8 bytes on 64-bit
      (16 bytes considering allocation size granularity for some of these classes).
      
      I don't know how many instances remain at the end of loading a page. These objects are Zone objects which makes it more difficult to count the number
      of instances. But looking at allocations only on cnn.com I've got 70K for
      BinaryOperation, 20K for CompareOperation, 1.5K for CaseClause. There aren't
      not many allocations of NativeFunctionLiteral but I decided to fix it too to
      keep the same layout pattern.
      
      Before:
          class v8::internal::CaseClause [sizeof = 56]
            : public v8::internal::Expression {
            [sizeof=12] v8::internal::Expression
            <padding> (4 bytes)
            [sizeof=8] v8::internal::Expression* label_
            [sizeof=8] v8::internal::Label body_target_
            [sizeof=8] v8::internal::ZoneList<v8::internal::Statement *>* statements_
            [sizeof=8] v8::internal::AstType* compare_type_
            [sizeof=4] v8::internal::FeedbackSlot feedback_slot_
            <padding> (4 bytes)
          }
      
      After:
          class v8::internal::CaseClause [sizeof = 48]
            : public v8::internal::Expression {
            [sizeof=12] v8::internal::Expression
            [sizeof=4] v8::internal::FeedbackSlot feedback_slot_
            [sizeof=8] v8::internal::Expression* label_
            [sizeof=8] v8::internal::Label body_target_
            [sizeof=8] v8::internal::ZoneList<v8::internal::Statement *>* statements_
            [sizeof=8] v8::internal::AstType* compare_type_
          }
      
      Before:
          class v8::internal::BinaryOperation [sizeof = 56]
            : public v8::internal::Expression {
            [sizeof=12] v8::internal::Expression
            [sizeof=1] bool has_fixed_right_arg_
            <padding> (3 bytes)
            [sizeof=4] int fixed_right_arg_value_
            <padding> (4 bytes)
            [sizeof=8] v8::internal::Expression* left_
            [sizeof=8] v8::internal::Expression* right_
            [sizeof=8] v8::internal::Handle<v8::internal::AllocationSite> allocation_site_
            [sizeof=4] v8::internal::FeedbackSlot feedback_slot_
            <padding> (4 bytes)
          }
      
      After:
          class v8::internal::BinaryOperation [sizeof = 48]
            : public v8::internal::Expression {
            [sizeof=12] v8::internal::Expression
            [sizeof=4] v8::internal::FeedbackSlot feedback_slot_
            [sizeof=8] v8::internal::Expression* left_
            [sizeof=8] v8::internal::Expression* right_
            [sizeof=8] v8::internal::Handle<v8::internal::AllocationSite> allocation_site_
            [sizeof=1] bool has_fixed_right_arg_
            <padding> (3 bytes)
            [sizeof=4] int fixed_right_arg_value_
          }
      
      Before:
          class v8::internal::CompareOperation [sizeof = 48]
            : public v8::internal::Expression {
            [sizeof=12] v8::internal::Expression
            <padding> (4 bytes)
            [sizeof=8] v8::internal::Expression* left_
            [sizeof=8] v8::internal::Expression* right_
            [sizeof=8] v8::internal::AstType* combined_type_
            [sizeof=4] v8::internal::FeedbackSlot feedback_slot_
            <padding> (4 bytes)
          }
      
      After:
          class v8::internal::CompareOperation [sizeof = 40]
            : public v8::internal::Expression {
            [sizeof=12] v8::internal::Expression
            [sizeof=4] v8::internal::FeedbackSlot feedback_slot_
            [sizeof=8] v8::internal::Expression* left_
            [sizeof=8] v8::internal::Expression* right_
            [sizeof=8] v8::internal::AstType* combined_type_
          }
      
      Before:
          class v8::internal::NativeFunctionLiteral [sizeof = 40]
            : public v8::internal::Expression {
            [sizeof=12] v8::internal::Expression
            <padding> (4 bytes)
            [sizeof=8] v8::internal::AstRawString* name_
            [sizeof=8] v8::Extension* extension_
            [sizeof=4] v8::internal::FeedbackSlot literal_feedback_slot_
            <padding> (4 bytes)
          }
      
      After:
          class v8::internal::NativeFunctionLiteral [sizeof = 32]
            : public v8::internal::Expression {
            [sizeof=12] v8::internal::Expression
            [sizeof=4] v8::internal::FeedbackSlot literal_feedback_slot_
            [sizeof=8] v8::internal::AstRawString* name_
            [sizeof=8] v8::Extension* extension_
          }
      
      BUG=chromium:710933
      
      Review-Url: https://codereview.chromium.org/2843293003
      Cr-Commit-Position: refs/heads/master@{#44989}
      6408032e
    • kschimpf's avatar
      Remove collecting data on max memory pages for asm.js, not applicable. · 7e4282d5
      kschimpf authored
      Only WASM has the notion of changing the maximum memory pages. This
      CL corrects the UMA stats to only collect this data for WASM only.
      
      BUG=v8:6321
      R=bradnelson@chromium.org,bbudge@chromium.org
      
      Review-Url: https://codereview.chromium.org/2845163002
      Cr-Commit-Position: refs/heads/master@{#44988}
      7e4282d5
    • Franziska Hinkelmann's avatar
      [cleanup] Delete unused FindEntryById. · b05ddffb
      Franziska Hinkelmann authored
      Bug:v8:6325
      
      Change-Id: I8ab20111f53207178e4d17bfe5b55266d7c17916
      Reviewed-on: https://chromium-review.googlesource.com/490306Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Franziska Hinkelmann <franzih@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44987}
      b05ddffb
    • Franziska Hinkelmann's avatar
      [cleanup] Add DCHECK for implicit assumption. · f2d0520c
      Franziska Hinkelmann authored
      Bug:v8:6325
      
      Change-Id: I0c66d24994a4b6811c7aec80f4aa298ba6d209e4
      Reviewed-on: https://chromium-review.googlesource.com/490366Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Franziska Hinkelmann <franzih@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44986}
      f2d0520c
    • Mythri's avatar
      Use --opt instead of --crankshaft in tests. · 7371c34b
      Mythri authored
      1. Replaces --crankshaft with --opt in tests.
      2. Also fixes presubmit to check for --opt flag when
      assertOptimized is used.
      3. Updates testrunner/local/variants.py and 
      v8_foozie.py to use --opt flag.
      This would mean, nooptimize variant means there are
      no optimizations. Not even with %OptimizeFunctionOnNextCall.
      
      Bug:v8:6325
      
      Change-Id: I638e743d0773a6729c6b9749e2ca1e2537f12ce6
      Reviewed-on: https://chromium-review.googlesource.com/490206
      Commit-Queue: Mythri Alle <mythria@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44985}
      7371c34b