1. 05 Jun, 2015 1 commit
  2. 28 May, 2015 1 commit
    • mstarzinger's avatar
      [turbofan] Introduce prediction for exception handlers. · d8b94f34
      mstarzinger authored
      This introduces a conservative prediction for each exception handler
      whether it will locally catch an exception or re-throw it to outside
      the code bondaries. It will allow for a more intuitive prediction of
      whether an exception is considered "caught" or "uncaught".
      
      R=bmeurer@chromium.org,yangguo@chromium.org
      BUG=chromium:492522
      LOG=N
      
      Review URL: https://codereview.chromium.org/1158563008
      
      Cr-Commit-Position: refs/heads/master@{#28681}
      d8b94f34
  3. 21 May, 2015 1 commit
  4. 19 May, 2015 1 commit
  5. 08 May, 2015 2 commits
  6. 05 May, 2015 1 commit
    • bmeurer's avatar
      [turbofan] Fix tail call optimization. · d21de2a4
      bmeurer authored
      Tail calls are matched on the graph, with a dedicated tail call
      optimization that is actually testable. The instruction selection can
      still fall back to a regular if the platform constraints don't allow to
      emit a tail call (i.e. the return locations of caller and callee differ
      or the callee takes non-register parameters, which is a restriction that
      will be removed in the future).
      
      Also explicitly limit tail call optimization to stubs for now and drop
      the global flag.
      
      BUG=v8:4076
      LOG=n
      
      Review URL: https://codereview.chromium.org/1114163005
      
      Cr-Commit-Position: refs/heads/master@{#28219}
      d21de2a4
  7. 04 May, 2015 1 commit
  8. 30 Apr, 2015 2 commits
    • balazs.kilvady's avatar
      MIPS: Fix 'Detect simple tail calls'. · a384c143
      balazs.kilvady authored
      4b122b75
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1116913002
      
      Cr-Commit-Position: refs/heads/master@{#28183}
      a384c143
    • svenpanne's avatar
      Detect simple tail calls · 4b122b75
      svenpanne authored
      This CL contains the first steps towards tail call optimization:
      
        * Structurally detect tail calls during instruction selection,
          looking for special return/call combinations.
      
        * Added new architecture-specific instructions for tail calls which
          jump instead of call and take care of frame adjustment.
      
        * Moved some code around.
      
      Currently we restrict tail calls to callees which only use registers
      for arguments/return value and to call sites which are explicitly
      marked as being OK for tail calls. This excludes, among other things,
      call sites in sloppy JS functions and our IC machinery (both need in
      general to be able to access the caller's frame).
      
      All this is behind a flag --turbo-tail-calls, which is currently off
      by default, so it can easily be toggled.
      
      Review URL: https://codereview.chromium.org/1108563002
      
      Cr-Commit-Position: refs/heads/master@{#28150}
      4b122b75
  9. 20 Apr, 2015 2 commits
  10. 14 Apr, 2015 1 commit
  11. 09 Apr, 2015 2 commits
    • balazs.kilvady's avatar
      MIPS: [turbofan] Materialize JSFunction from frame if possible. · 8157b6c9
      balazs.kilvady authored
      Port 725cdc53
      
      Original commit message:
      This reduces the overhead of recursive calls when context specialization
      is enabled. Based on this it might be possible to further reduce the
      overhead by also specializing the call itself.
      
      As a drive-by-fix, port the fast context materialization optimization to
      arm and arm64, that was previously only supported on x64 and ia32.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1074743002
      
      Cr-Commit-Position: refs/heads/master@{#27700}
      8157b6c9
    • dcarney's avatar
      [turbofan] cleanup InstructionOperand a little · 07ff6d9f
      dcarney authored
      - ConstantOperand was using a too-small field too store its virtual register
      - drop ConvertTo, replace it with simple copy
      - split AllocatedOperand off from Immediate and Constant to make assignment clearer, also paving the way for small Immediates
      - put zone first in *Operand::New
      - driveby: drop delayed ssa deconstruction experiment
      
      R=titzer@chromium.org
      BUG=
      
      Review URL: https://codereview.chromium.org/1050803002
      
      Cr-Commit-Position: refs/heads/master@{#27692}
      07ff6d9f
  12. 08 Apr, 2015 2 commits
  13. 01 Apr, 2015 2 commits
  14. 31 Mar, 2015 1 commit
  15. 30 Mar, 2015 1 commit
    • balazs.kilvady's avatar
      MIPS: [turbofan] Add backend support for float32 operations. · dd402998
      balazs.kilvady authored
      Port 8dad78cd
      
      Original commit message:
      This adds the basics necessary to support float32 operations in TurboFan.
      The actual functionality required to detect safe float32 operations will
      be added based on this later. Therefore this does not affect production
      code except for some cleanup/refactoring.
      
      In detail, this patchset contains the following features:
      - Add support for float32 operations to arm, arm64, ia32 and x64
        backends.
      - Add float32 machine operators.
      - Add support for float32 constants to simplified lowering.
      - Handle float32 representation for phis in simplified lowering.
      
      In addition, contains the following (related) cleanups:
      - Fix/unify naming of backend instructions.
      - Use AVX comparisons when available.
      - Extend ArchOpcodeField to 9 bits (required for arm64).
      - Refactor some code duplication in instruction selectors.
      
      BUG=v8:3589
      LOG=n
      
      Review URL: https://codereview.chromium.org/1046953004
      
      Cr-Commit-Position: refs/heads/master@{#27531}
      dd402998
  16. 27 Mar, 2015 1 commit
  17. 26 Mar, 2015 2 commits
  18. 25 Mar, 2015 1 commit
  19. 24 Mar, 2015 1 commit
  20. 20 Mar, 2015 2 commits
  21. 19 Mar, 2015 1 commit
  22. 12 Mar, 2015 2 commits
  23. 10 Mar, 2015 1 commit
    • balazs.kilvady's avatar
      MIPS: [turbofan] Unify Math.floor / Math.ceil optimization. · 9c8bead9
      balazs.kilvady authored
      Port 022ea7e0
      
      Original commit message:
      Provide an intrinsic %MathFloor / %_MathFloor that is used to optimize
      both Math.ceil and Math.floor, and use the JS inlining mechanism to
      inline Math.ceil into TurboFan code. Although we need to touch code
      outside of TurboFan to make this work, this does not affect the way we
      handle Math.ceil and/or Math.floor in CrankShaft, because for CrankShaft
      the old-style builtin function id based inlining still kicks in first.
      
      Once this solution is stabilized, we can use it for Math.floor as well.
      And once that is settled, we can establish it as the unified way to
      inline builtins, and get rid of the specialized builtin function id
      based inlining at some point.
      
      Note that "builtin" applies to basically every piece of internal
      JavaScript/intrinsics based code, so this also applies to the yet to be
      defined JavaScript based code stubs and handlers.
      
      BUG=v8:3953
      LOG=n
      
      Review URL: https://codereview.chromium.org/998503002
      
      Cr-Commit-Position: refs/heads/master@{#27117}
      9c8bead9
  24. 05 Mar, 2015 1 commit
  25. 04 Mar, 2015 1 commit
  26. 25 Feb, 2015 1 commit
  27. 23 Feb, 2015 1 commit
  28. 20 Feb, 2015 1 commit
  29. 18 Feb, 2015 1 commit
  30. 17 Feb, 2015 1 commit
  31. 16 Feb, 2015 1 commit