1. 25 Feb, 2016 26 commits
  2. 24 Feb, 2016 14 commits
    • mbrandy's avatar
      PPC: [turbofan] Introduce DeoptimizeIf And DeoptimizeUnless common operators. · e1bed4f9
      mbrandy authored
      Port c129aa4d
      
      Original commit message:
          These macro operators represent a conditional eager deoptimization exit
          without explicit branching, which greatly reduces overhead of both
          scheduling and register allocation, and thereby greatly reduces overall
          compilation time, esp. when there are a lot of eager deoptimization
          exits.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1730383002
      
      Cr-Commit-Position: refs/heads/master@{#34267}
      e1bed4f9
    • mbrandy's avatar
      PPC: [compiler] Drop the CompareNilIC. · 546ea6b8
      mbrandy authored
      Port 666aec03
      
      Original commit message:
          Since both null and undefined are also marked as undetectable now, we
          can just test that bit instead of having the CompareNilIC try to collect
          feedback to speed up the general case (without the undetectable bit
          being used).
      
          Drive-by-fix: Update the type system to match the new handling of
          undetectable in the runtime.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1733663003
      
      Cr-Commit-Position: refs/heads/master@{#34266}
      546ea6b8
    • v8-autoroll's avatar
      Update V8 DEPS. · 24e85029
      v8-autoroll authored
      Rolling v8/tools/clang to 8598a726360f2722f4db0eab732a5f6b4cb41eb9
      
      Rolling v8/tools/swarming_client to 71c61c858bb2c2deda83781978fe65e94171f58f
      
      TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org
      
      Review URL: https://codereview.chromium.org/1729263004
      
      Cr-Commit-Position: refs/heads/master@{#34265}
      24e85029
    • mbrandy's avatar
      PPC: [fullcodegen] Implement control flow across do-expressions. · 54d6d35a
      mbrandy authored
      Port ee8108b7
      
      Original commit message:
          This implements proper handling of local control flow (i.e. break and
          continue) that spans the boundary of a do-expression. We can no longer
          determine the number of operands to be dropped from the nesting of
          statements alone, instead we use the new precise operand stack depth
          tracking.
      
      R=mstarzinger@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      TEST=mjsunit/harmony/do-expressions-control
      BUG=v8:4488
      LOG=n
      
      Review URL: https://codereview.chromium.org/1735623002
      
      Cr-Commit-Position: refs/heads/master@{#34264}
      54d6d35a
    • mstarzinger's avatar
      [fullcodegen] Factor out EmitNewClosure from architectures. · a0198f2c
      mstarzinger authored
      This makes the aforementioned emitting function independent of the
      target architecture by leveraging existing abstractions.
      
      R=mvstanton@chromium.org
      
      Review URL: https://codereview.chromium.org/1730243002
      
      Cr-Commit-Position: refs/heads/master@{#34263}
      a0198f2c
    • littledan's avatar
      Ensure IteratorClose is called for errors in non-declaring assignments · 1aee7555
      littledan authored
      There was a bug in for-of loops without newly declared variables: If,
      in performing the assignment, an exception were thrown, then
      IteratorClose would not be called. The problem was that the assignment
      is done as part of assign_each, which happens before the loop is put
      back in the state which is recognized to be breaking/throwing/returning
      early.
      
      This patch modifies the for-of desugaring by setting the loop state
      before, rather than after, evaluating the assign_each portion, which is
      responsible for evaluating the assignment in for-of loops which do not
      have a declaration.
      
      This patch, together with https://codereview.chromium.org/1728973002 ,
      allow all test262 iterator return-related tests to pass.
      
      R=rossberg
      BUG=v8:4776
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1731773003
      
      Cr-Commit-Position: refs/heads/master@{#34262}
      1aee7555
    • littledan's avatar
      Fix priority of exceptions being thrown from for-of loops · 5f67e34a
      littledan authored
      In the for-of desugaring, IteratorClose is a subtle thing to get right.
      When return exists, the logic for which exception to throw is as follows:
      1. Get the 'return' property and property any exception that might come from
        the property read
      2. Call return, not yet propagating an exception if it's thrown.
      3. If we are closing the iterator due to an exception, propagate that error.
      4. If return threw, propagate that error.
      5. Check if return's return value was not an object, and throw if so
      
      Previously, we were effectively doing step 5 even if an exception "had already
      been thrown" by step 3. Because this took place in a finally block, the exception
      "won the race" and was the one propagated to the user. The fix is a simple change
      to the desugaring to do step 5 only if step 3 didn't happen.
      
      R=rossberg
      BUG=v8:4775
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1728973002
      
      Cr-Commit-Position: refs/heads/master@{#34261}
      5f67e34a
    • akos.palfi's avatar
      MIPS: Fix c-linkage. · 85c73572
      akos.palfi authored
      Per MIPS O32 ABI the first four arguments must be passed via
      the a0-a3 registers and they must be on the stack as well.
      
      TEST=cctest/test-run-wasm/*
      BUG=
      
      Review URL: https://codereview.chromium.org/1730763002
      
      Cr-Commit-Position: refs/heads/master@{#34260}
      85c73572
    • mstarzinger's avatar
      [fullcodegen] Factor out EmitNamedPropertyLoad. · 9c53fcad
      mstarzinger authored
      This makes the FullCodeGenerator::EmitNamedPropertyLoad be architecture
      independent by adding MacroAssembler::Move helpers.
      
      R=bmeurer@chromium.org
      
      Review URL: https://codereview.chromium.org/1734643002
      
      Cr-Commit-Position: refs/heads/master@{#34259}
      9c53fcad
    • jfb's avatar
      Revert of [coverage] Filter some files from instrumentation. (patchset #3... · 4014f1c7
      jfb authored
      Revert of [coverage] Filter some files from instrumentation. (patchset #3 id:40001 of https://codereview.chromium.org/1730543002/ )
      
      Reason for revert:
      This breaks `gclient sync` because v8_target_arch isn't defined.
      
      gyp: name 'v8_target_arch' is not defined while evaluating condition
      '(OS=="linux" or OS=="mac") and (target_arch=="ia32" or target_arch=="x64") and
               (v8_target_arch!="x87" and v8_target_arch!="x32") and coverage==0' in
      /media/jfb/ssd/v8/v8/build/all.gyp
      Error: Command '/usr/bin/python v8/build/gyp_v8' returned non-zero exit status 1
      in /media/jfb/ssd/v8
      
      Original issue's description:
      > [coverage] Filter some files from instrumentation.
      >
      > This filters test and third_party files to get a speed-up
      > when running tests and when collecting profile data.
      >
      > BUG=chromium:568949
      > LOG=n
      >
      > Committed: https://crrev.com/761ee31be5ab4fde05c294e5d632608fbaea8ad4
      > Cr-Commit-Position: refs/heads/master@{#34216}
      >
      > Committed: https://crrev.com/906db7448702a6ac9fab2a445c57cc85f6dd1b1a
      > Cr-Commit-Position: refs/heads/master@{#34253}
      
      TBR=tandrii@chromium.org,kjellander@chromium.org,machenbach@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=chromium:568949
      
      Review URL: https://codereview.chromium.org/1737433002
      
      Cr-Commit-Position: refs/heads/master@{#34258}
      4014f1c7
    • ishell's avatar
      [crankshaft] Remove useless HCallFunction instruction. · 9015dd1c
      ishell authored
      Everything that HCallFunction does can be easily done using more general HCallWithDescriptor, so there's no need to have this dedicated instruction around.
      
      Review URL: https://codereview.chromium.org/1731303002
      
      Cr-Commit-Position: refs/heads/master@{#34257}
      9015dd1c
    • vogelheim's avatar
      Encode interpreter::SourcePositionTable as variable-length ints. · cc40fcec
      vogelheim authored
      This reduces the memory consumption of SourcePositionTable by ca. 2/3.
      Over Octane, this reduces the source position table memory consumption
      from ~370kB to ~115kB, which makes it ca. 10% of the total bytecode size
      (~1.1MB)
      
      ----------------
      
      Reland CL in order to relive the glory days, and also fix memory leak w/ ENABLE_SLOW_CHECKS.
      
      SourcePositionTableBuilder used to have a no destructor since everything
      was zone allocated. But if ENABLE_SLOW_CHECKS, it has a heap allocated member
      and thus needs a proper constructor. ASAN thankfully notices this, and V8 no
      longer builds since this is called during mksnapshot.
      
      Breakge example: http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20ASAN%20arm64%20-%20debug%20builder/builds/4829
      
      R=jochen@chromium.org, yangguo@chromium.org, rmcilroy@chromium.org
      BUG=v8:4690
      LOG=y
      
      Committed: https://crrev.com/a6f41f7b8226555c5900440f6e3092b3545ee0f6
      Cr-Commit-Position: refs/heads/master@{#34250}
      
      patch from issue 1704943002 at patchset 200001 (http://crrev.com/1704943002#ps200001)
      
      Review URL: https://codereview.chromium.org/1731883003
      
      Cr-Commit-Position: refs/heads/master@{#34256}
      cc40fcec
    • mstarzinger's avatar
      [fullcodegen] Fix assert for operand stack depth tracking. · 3baa2902
      mstarzinger authored
      This fixes a corner case that triggered an assert in full-codegens
      operand stack depth tracking. We stop pushing operands if we overflow
      the C-stack while iterating the AST. This makes the tracking go out of
      sync before we fully returned from the tree traversal, at which point
      the thrown RangeError will abort compilation.
      
      R=ishell@chromium.org
      TEST=mjsunit/regress/regress-crbug-589472
      BUG=chromium:589472
      LOG=n
      
      Review URL: https://codereview.chromium.org/1732903002
      
      Cr-Commit-Position: refs/heads/master@{#34255}
      3baa2902
    • littledan's avatar
      Stage ES2015 iterator finalization · cc6d9384
      littledan authored
      This patch moves for-of closing to staging. There are a couple of
      minor semantics bugs remaining in finalization along edge cases, but
      we don't know of any stability issues.
      
      BUG=v8:3566
      R=rossberg
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1725203002
      
      Cr-Commit-Position: refs/heads/master@{#34254}
      cc6d9384