1. 02 Feb, 2018 1 commit
  2. 29 Nov, 2017 1 commit
    • Georg Neis's avatar
      No longer desugar the exponentiation (**) operator. · b97567a9
      Georg Neis authored
      Prior to this change, the exponentiation operator was rewritten by the
      parser to a call of the Math.pow builtin. However, Math.pow does not
      accept BigInt arguments, while the exponentiation operator must accept
      them.
      
      This CL
      - removes the parser's special treatment of ** and **=, treating them
        like any other binary op instead.
      - adds a TFC builtin Exponentiate that does the right thing for
        all inputs.
      - adds interpreter bytecodes Exp and ExpSmi whose handlers call the
        Exponentiate builtin. For simplicity, they currently always collect
        kAny feedback.
      - adds a Turbofan operator JSExponentiate with a typed-lowering to
        the existing NumberPow and a generic-lowering to the Exponentiate
        builtin. There is currently no speculative lowering.
      
      Note that exponentiation for BigInts is actually not implemented yet,
      so we can't yet test it.
      
      Bug: v8:6791
      Change-Id: Id90914c9c3fce310ce01e715c09eaa9f294f4f8a
      Reviewed-on: https://chromium-review.googlesource.com/785694Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Commit-Queue: Georg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49696}
      b97567a9
  3. 25 Oct, 2017 1 commit
  4. 31 Aug, 2017 1 commit
  5. 16 Jun, 2017 2 commits
    • Mythri's avatar
      [Interpreter] Refactor arithmetic bytecode handlers. · 18d05c87
      Mythri authored
      The Smi versions of arithmetic bytecodes (AddSmi, SubSmi, MulSmi,
      DivSmi, ModSmi) have a fast path for Smi case and call to a builtin
      on the slow path. However, this builtin is only used by these bytecode
      handlers. This cl removes the builtins and inlines them into
      bytecode handlers. This will also save few checks in the slow-path.
      
      Subtract, multiply, divide and modulus also share the same checks to 
      collect type feedback on several cases. This cl also refactors them
      to share the same code.
      
      Also removed a couple of TODOs that are no longer relevant.
      
      Bug: v8:4280, v8:6474
      Change-Id: Id23bd61c2074564a1beacb0632165f52370ff226
      Reviewed-on: https://chromium-review.googlesource.com/530845
      Commit-Queue: Mythri Alle <mythria@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45982}
      18d05c87
    • Mythri's avatar
      Reset profiler ticks when the type feedback changes. · 97b8ab33
      Mythri authored
      Profiler ticks are reset when the type feedback changes for Load / Store ICs.
      This cl extends this to other operations as well. This allows us to tier up
      functions when the feedback vectors are stable. This is the first step for
      a set of follow up cls that will change the heuristics used in
      runtime-profiler.
      
      Bug: 
      Change-Id: I875209712c6161e425a03475c14890a49155c0e1
      Reviewed-on: https://chromium-review.googlesource.com/529165Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Mythri Alle <mythria@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45974}
      97b8ab33
  6. 22 Mar, 2017 1 commit