1. 20 Oct, 2015 1 commit
  2. 01 Jun, 2015 1 commit
  3. 02 Mar, 2015 1 commit
  4. 06 Oct, 2014 1 commit
  5. 04 Aug, 2014 1 commit
  6. 12 Jun, 2014 1 commit
    • m.m.capewell@googlemail.com's avatar
      Remove forced type changes when they can't deopt · 649057e0
      m.m.capewell@googlemail.com authored
      Hydrogen attempts to force representation changes on certain operations in order
      to deoptimise on the change rather than the operation. However, these forced
      changes are often unnecessary on 64-bit platforms, and cause poor code
      generation, so this patch makes some of them conditional on whether it's
      possible for deoptimisation to occur in the change.
      
      On ARM64, this prevents sequences like:
                        ;;; <@46,#89> smi-tag
      0x7ff282c7f050   144  lsl x4, x4, #32
                        ;;; <@48,#90> smi-untag
      0x7ff282c7f054   148  asr x5, x4, #32
                        ;;; <@50,#31> mul-const-i-s
      0x7ff282c7f058   152  lsl w6, w5, #3
      
      BUG=
      R=jkummerow@chromium.org
      
      Review URL: https://codereview.chromium.org/303263010
      
      git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      649057e0
  7. 03 Jun, 2014 1 commit
  8. 29 Apr, 2014 1 commit
  9. 06 Mar, 2014 1 commit
  10. 13 Feb, 2014 1 commit
    • vegorov@chromium.org's avatar
      Improve positions tracking inside the HGraphBuilder. · 8f170a66
      vegorov@chromium.org authored
      Instead of tracking simple absolute offset from the start of the script like other places do, track a pair of (inlining id, offset from the start of inlined function).
      
      This enables us to pinpoint with inlining path an instruction came from. Previously in multi-script environments we emitted positions that made very little sense because inside a single optimized function they would point to different scripts without a way to distinguish them.
      
      Start dumping the source of every inlined function to make possible IR viewing tools with integrated source views as there was previously no way to acquire this information from IR dumps. We also dump source position at which each inlining occured.
      
      Tracked positions are written into hydrogen.cfg as pos:<inlining-id>_<offset>.
      
      Flag --emit-opt-code-positions is renamed by this change into --hydrogen-track-positions to better convey it's meaning.
      
      In addition this change assigned global unique identifier to each optimization performed inside isolate. This allows to precisely match compilation artifacts (e.g. IR and disassembly) and deoptimizations.
      
      BUG=
      R=yangguo@chromium.org
      
      Review URL: https://codereview.chromium.org/140683011
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      8f170a66
  11. 18 Nov, 2013 1 commit
    • vegorov@chromium.org's avatar
      Reapply r11765 · 0ec0d5fc
      vegorov@chromium.org authored
      Add static_cast<int> in HPositionInfo::position to please Win64 build.
      
      Improvements in positions handling in optimizing compiler.
      
      - When building binary arithmetic op and comparison restore source position of the operation itself before building operation itself after it was changed by building operands. This ensures that position recorded for operation points to the operation token instead of pointing to the rightmost operand;
      
      - Add support for recording operands' positions and use these positions when inserting HChange instructions;
      
      - When generating hydrogen.cfg emit H-instruction position as BCI (previously 0 was emitted), additionally on every lithium instruction emit annotation pointing to corresponding hydrogen-instruction. This allows to easily reach from deopt_id to lithium instruction and from it to hydrogen instruction and source position.
      
      R=danno@chromium.org
      
      Review URL: https://codereview.chromium.org/59703011
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      0ec0d5fc
  12. 14 Nov, 2013 2 commits
  13. 21 Oct, 2013 1 commit
  14. 27 Aug, 2013 1 commit
  15. 14 Aug, 2013 1 commit
  16. 13 Aug, 2013 1 commit
  17. 25 Jul, 2013 1 commit
  18. 23 Jul, 2013 1 commit
  19. 08 Jul, 2013 1 commit