1. 17 Jan, 2013 3 commits
  2. 07 Jan, 2013 1 commit
  3. 18 Dec, 2012 1 commit
  4. 10 Dec, 2012 1 commit
  5. 05 Dec, 2012 1 commit
  6. 03 Dec, 2012 2 commits
  7. 30 Nov, 2012 2 commits
  8. 19 Nov, 2012 1 commit
  9. 14 Nov, 2012 1 commit
  10. 05 Nov, 2012 2 commits
  11. 11 Oct, 2012 1 commit
    • svenpanne@chromium.org's avatar
      Added a simple dead code removal phase. · f03fd70d
      svenpanne@chromium.org authored
      We iteratively remove all dead Hydrogen instruction until we reach a fixed point. We consider an instruction dead if it is unused, has no observable side effects and is deletable. The last part of the condition is currently not very nice: We basically have to whitelist "safe" instructions, because we are missing more detailed dependencies and/or more detailed tracking of side effects.
      
      We disable dead code elimination for now in our test runners, because we have tons of poorly written tests which wouldn't test anymore what they are supposed to test with this phase enabled. To get test coverage for dead code elimination itself, we should enable it on a few build bots. This is not really a perfect state, but the best we can do for now.
      
      This patch includes a few const-correctness fixes, most of them were necessary for this CL.
      
      Review URL: https://codereview.chromium.org/11088027
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12697 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      f03fd70d
  12. 12 Sep, 2012 1 commit
  13. 07 Sep, 2012 1 commit
  14. 23 Aug, 2012 1 commit
  15. 22 Aug, 2012 1 commit
    • vegorov@chromium.org's avatar
      Allow uint32 value on optimized frames if they are consumed by safe operations. · f476d4d4
      vegorov@chromium.org authored
      Safe operations are those that either do not observe unsignedness or have special support for uint32 values:
      
      - all binary bitwise operations: they perform ToInt32 on inputs;
      - >> and << shifts: they perform ToInt32 on left hand side and ToUint32 on right hand side;
      - >>> shift: it performs ToUint32 on both inputs;
      - stores to integer external arrays (not pixel, float or double ones): these stores are "bitwise";
      - HChange: special support added for conversions of uint32 values to double and tagged values;
      - HSimulate: special support added for deoptimization with uint32 values in registers and stack slots;
      - HPhi: phis that have only safe uses and only uint32 operands are uint32 themselves.
      
      BUG=v8:2097
      TEST=test/mjsunit/compiler/uint32.js
      
      Review URL: https://chromiumcodereview.appspot.com/10778029
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      f476d4d4
  16. 16 Aug, 2012 1 commit
  17. 10 Aug, 2012 1 commit
    • svenpanne@chromium.org's avatar
      Inline simple setter calls. · f9aea9fc
      svenpanne@chromium.org authored
      Currently only simple setter calls are handled (i.e. no calls in count
      operations or compound assignments), and deoptimization in the setter is not
      handled at all. Because of the latter, we temporarily hide this feature behind
      the --inline-accessors flag, just like inlining getters.
      
      We now use an enum everywhere we depend on the handling of a return value,
      passing around several boolean would be more confusing.
      
      Made VisitReturnStatement and the final parts of TryInline more similar, so
      matching them visually is a bit easier now.
      
      Simplified the signature of AddLeaveInlined, the target of the HGoto can simply
      be retrieved from the function state.
      
      Review URL: https://chromiumcodereview.appspot.com/10836133
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      f9aea9fc
  18. 09 Aug, 2012 1 commit
  19. 06 Aug, 2012 1 commit
  20. 30 Jul, 2012 1 commit
  21. 27 Jul, 2012 2 commits
  22. 26 Jul, 2012 1 commit
  23. 23 Jul, 2012 1 commit
  24. 19 Jul, 2012 3 commits
  25. 17 Jul, 2012 2 commits
  26. 16 Jul, 2012 1 commit
  27. 13 Jul, 2012 1 commit
  28. 12 Jul, 2012 2 commits
  29. 11 Jul, 2012 2 commits