1. 05 Jul, 2016 17 commits
    • Miran.Karic's avatar
      MIPS: [turbofan] Fix addition for deoptimization. · 99385e8e
      Miran.Karic authored
      In turbofan, after an addition operation where the same register is the
      output and both inputs, if deoptimization is performed the input is
      overwritten with the output value and the final result is not correct.
      This is fixed by restoring the original value of the input before
      deoptimization.
      
      BUG=
      TEST=mjsunit/regress/regress-int32-truncation
      
      Review-Url: https://codereview.chromium.org/2102063002
      Cr-Commit-Position: refs/heads/master@{#37524}
      99385e8e
    • bmeurer's avatar
      [turbofan] Run value numbering as part of typed lowering. · b18b3877
      bmeurer authored
      We can already benefit from value numbering (pure) nodes at this point
      in the graph, because it makes some later passes more efficient and
      reduces the graph size early.
      
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2125613002
      Cr-Commit-Position: refs/heads/master@{#37523}
      b18b3877
    • mstarzinger's avatar
      [turbofan] Remove eager frame state from add and subtract. · 2620c426
      mstarzinger authored
      This removes the frame state input representing the before-state from
      nodes having the {JSAdd} or the {JSSubtract} operator. Lowering that
      inserts number conversions of the inputs has to be disabled when
      deoptimization is enabled, because the frame state layout is no longer
      known.
      
      R=jarin@chromium.org
      BUG=v8:5021
      
      Review-Url: https://codereview.chromium.org/2125593002
      Cr-Commit-Position: refs/heads/master@{#37522}
      2620c426
    • ssanfilippo's avatar
      Broaden the condition under which gold is used as linker. · 8465244e
      ssanfilippo authored
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2121123002
      Cr-Commit-Position: refs/heads/master@{#37521}
      8465244e
    • yangguo's avatar
      [debugger] add test case for throwing in generators. · 7a834e8b
      yangguo authored
      R=neis@chromium.org
      
      Review-Url: https://codereview.chromium.org/2117303003
      Cr-Commit-Position: refs/heads/master@{#37520}
      7a834e8b
    • bmeurer's avatar
      [intrinsic] Drop the %_ValueOf intrinsic. · 72275e66
      bmeurer authored
      This drops the %_ValueOf intrinsic, but keeps the runtime entry
      %ValueOf for now, by either migrating the functionality (mostly
      Debug mirror or toString/valueOf methods) to C++ or TurboFan
      builtins, or switching to the %ValueOf runtime call when it's
      not performance critical anyways.
      
      The %_ValueOf intrinsic was one of the last blockers for fixing
      the unsound machine operator typing in TurboFan.
      
      R=yangguo@chromium.org
      BUG=v8:5049
      
      Committed: https://crrev.com/293bd7882987f00e465710ce468bfb1eaa7d3fa2
      Review-Url: https://codereview.chromium.org/2126453002
      Cr-Original-Commit-Position: refs/heads/master@{#37512}
      Cr-Commit-Position: refs/heads/master@{#37519}
      72275e66
    • bmeurer's avatar
      [turbofan] Recognize fast path for Number.parseInt. · f50721d5
      bmeurer authored
      The Number.parseInt (and therefore the parseInt function on the global
      object) are often used instead of Math.floor or just plain int32
      truncation, and we can easily recognize those cases and provide a fast
      path in TurboFan.
      
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2125583002
      Cr-Commit-Position: refs/heads/master@{#37518}
      f50721d5
    • mstarzinger's avatar
      [turbofan] Remove eager frame state from JSMultiply. · 277fac44
      mstarzinger authored
      This removes the frame state input representing the before-state from
      nodes having the {JSMultiply} operator. Lowering that inserts number
      conversions of the inputs has to be disabled when deoptimization is
      enabled, because the frame state layout is no longer known.
      
      R=jarin@chromium.org
      BUG=v8:5021
      
      Review-Url: https://codereview.chromium.org/2111193002
      Cr-Commit-Position: refs/heads/master@{#37517}
      277fac44
    • zhengxing.li's avatar
      X87: disable Acosh/ASinh test cases for x87. · f310a829
      zhengxing.li authored
          The reason:
          same as the CL #37371 (Issue 2111493002: X87: disable some sin/cos/expm1/tan test cases for x87.), please
          refer https://codereview.chromium.org/2111493002 for more details.
      
          For Acosh/ASinh test cases, the expected values are pre-defined double precision values, the results
          generated by C++ function are extended double precision as the extended double precision is default for x87
          Gcc compiler and std lib on linux platform. The comparison of different precisons caused some of those test
          cases failed.
      
          This CL disables Acosh/ASinh test cases for x87.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2122593002
      Cr-Commit-Position: refs/heads/master@{#37516}
      f310a829
    • zhengxing.li's avatar
      X87: disable test-gap-resolver/FuzzResolver test case for x87. · bf4ef548
      zhengxing.li authored
        The reason:
        In CreateRandomOperand(), It used the register index 1 for ExplicitOperand(LocationOperand::REGISTER, rep,
        GetRegisterCode(rep, 1)).
      
        For x87 turbofan compiler, there's only 1 allocatable Float/Double register, i.e.: register index 0. the
        GetRegisterCode(rep, 1) in ExplicitOperand() always return false when rep is MachineRepresentation::kFloat32/kFloat64.
      
        It caused the test-gap-resolver/FuzzResolver failed at DCHECK_IMPLIES(kind == REGISTER && rep == MachineRepresentation::kFloat32,
        FloatRegister::from_code(index).IsAllocatable(RegisterConfiguration::TURBOFAN)), src/compiler/instruction.cc, line 259, under
        debug mode.
      
        This CL disable test-gap-resolver/FuzzResolver test case for x87.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2120203002
      Cr-Commit-Position: refs/heads/master@{#37515}
      bf4ef548
    • machenbach's avatar
      Revert of [intrinsic] Drop the %_ValueOf intrinsic. (patchset #2 id:20001 of... · 0960beb0
      machenbach authored
      Revert of [intrinsic] Drop the %_ValueOf intrinsic. (patchset #2 id:20001 of https://codereview.chromium.org/2126453002/ )
      
      Reason for revert:
      [Sheriff] Breaks without i18n:
      https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20noi18n%20-%20debug/builds/8466
      
      Original issue's description:
      > [intrinsic] Drop the %_ValueOf intrinsic.
      >
      > This drops the %_ValueOf intrinsic, but keeps the runtime entry
      > %ValueOf for now, by either migrating the functionality (mostly
      > Debug mirror or toString/valueOf methods) to C++ or TurboFan
      > builtins, or switching to the %ValueOf runtime call when it's
      > not performance critical anyways.
      >
      > The %_ValueOf intrinsic was one of the last blockers for fixing
      > the unsound machine operator typing in TurboFan.
      >
      > R=yangguo@chromium.org
      > BUG=v8:5049
      >
      > Committed: https://crrev.com/293bd7882987f00e465710ce468bfb1eaa7d3fa2
      > Cr-Commit-Position: refs/heads/master@{#37512}
      
      TBR=yangguo@chromium.org,bmeurer@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:5049
      
      Review-Url: https://codereview.chromium.org/2117273002
      Cr-Commit-Position: refs/heads/master@{#37514}
      0960beb0
    • jgruber's avatar
      Use toString tag to format receiver in stack traces · 97146803
      jgruber authored
      This concerns formatting of calls to, e.g., Math.acos in stack traces,
      in which the receiver is an object with an attached toString tag. If
      such a tag exists, use it to format the receiver typename to ensure that
      the stack trace includes 'Math.acos' instead of 'Object.acos'.
      
      R=yangguo@chromium.org
      BUG=
      
      Review-Url: https://codereview.chromium.org/2110683007
      Cr-Commit-Position: refs/heads/master@{#37513}
      97146803
    • bmeurer's avatar
      [intrinsic] Drop the %_ValueOf intrinsic. · 293bd788
      bmeurer authored
      This drops the %_ValueOf intrinsic, but keeps the runtime entry
      %ValueOf for now, by either migrating the functionality (mostly
      Debug mirror or toString/valueOf methods) to C++ or TurboFan
      builtins, or switching to the %ValueOf runtime call when it's
      not performance critical anyways.
      
      The %_ValueOf intrinsic was one of the last blockers for fixing
      the unsound machine operator typing in TurboFan.
      
      R=yangguo@chromium.org
      BUG=v8:5049
      
      Review-Url: https://codereview.chromium.org/2126453002
      Cr-Commit-Position: refs/heads/master@{#37512}
      293bd788
    • zhengxing.li's avatar
      X87: [builtins] Add receiver to builtin exit frames. · e043dcb5
      zhengxing.li authored
        port f59a2335 (r37500)
      
        original commit message:
        Stack trace generation requires access to the receiver; and while the
        receiver is already on the stack, we cannot determine its position
        during stack trace generation (it's stored in argv[0], and argc is only
        stored in a callee-saved register).
      
        This patch grants access to the receiver by pushing argc onto builtin
        exit frames as an extra argument. Compared to simply pushing the
        receiver, this requires an additional dereference during stack trace
        generation, but one fewer during builtin calls.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2118413002
      Cr-Commit-Position: refs/heads/master@{#37511}
      e043dcb5
    • mvstanton's avatar
      Removed fdlibm.js, as it is now an empty shell. · 47f54330
      mvstanton authored
      BUG=
      
      Review-Url: https://codereview.chromium.org/2106413002
      Cr-Commit-Position: refs/heads/master@{#37510}
      47f54330
    • v8-autoroll's avatar
      Update V8 DEPS. · 12291c54
      v8-autoroll authored
      Rolling v8/build to 536d6fe8a0df34c0c412da483375d71b9b931afa
      
      Rolling v8/buildtools to d2664782a3855d5be8cbbfd3c23b6652926de8cc
      
      TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org
      
      Review-Url: https://codereview.chromium.org/2124673002
      Cr-Commit-Position: refs/heads/master@{#37509}
      12291c54
    • zhengxing.li's avatar
      X87: [turbofan]: Support using push instructions for setting up tail call parameters. · c140a90c
      zhengxing.li authored
        port bd0d9e7d (r37477)
      
        original commit message:
        This optimizes the passing of stack parameters in function calls.
      
        For some architectures (ia32/x64), using pushes when possible instead
        of bumping the stack and then storing parameters generates much
        smaller code, and in some cases is faster (e.g. when a push of a memory
        location can implement a memory-to-memory copy and thus elide an
        intermediate load. On others (e.g. ARM), the benefit is smaller, where
        it's only possible to elide direct stack pointer adjustment in certain cases
        or combine multiple register stores into a single instruction in other limited
        situations. On yet other platforms (ARM64, MIPS), there are no push instructions,
        and this optimization isn't used at all.
      
        Ideally, this mechanism would be used for both tail calls and normal calls,
        but "normal" calls are currently pretty efficient, and tail calls are very
        inefficient, so this CL sets the bar low for building a new mechanism to
        handle parameter pushing that only needs to raise the bar on tail calls for now.
      
        The key aspect of this change is that adjustment to the stack pointer
        for tail calls (and perhaps later real calls) is an explicit step separate from
        instruction selection and gap resolution, but aware of both, making it possible
        to safely recognize gap moves that are actually pushes.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2120413002
      Cr-Commit-Position: refs/heads/master@{#37508}
      c140a90c
  2. 04 Jul, 2016 19 commits
  3. 03 Jul, 2016 1 commit
    • honggyu.kp's avatar
      gdb-v8-support.py: Fix old style print statement · c52685a5
      honggyu.kp authored
      Since python3 does not use the old print statement, it may not be able
      to load gdb-v8-support.py script in gdb as below:
      
        (gdb) source tools/gdb-v8-support.py
          File "tools/gdb-v8-support.py", line 170
            print result
                       ^
        SyntaxError: Missing parentheses in call to 'print'
      
      This fixes print statement for both python2 and python3.
      
      R=jochen@chromium.org
      BUG=
      
      Review-Url: https://codereview.chromium.org/2084163004
      Cr-Commit-Position: refs/heads/master@{#37488}
      c52685a5
  4. 02 Jul, 2016 2 commits
  5. 01 Jul, 2016 1 commit