1. 04 Mar, 2019 1 commit
  2. 16 Nov, 2011 1 commit
    • fschneider@chromium.org's avatar
      Fix lazy deoptimization at HInvokeFunction and enable target-recording call-function stub. · 84805694
      fschneider@chromium.org authored
      Changes the way we do lazy deoptimization:
      
      1. For side-effect instructions, we insert the lazy-deopt call at
      the following LLazyBailout instruction.
      
           CALL
           GAP
           LAZY-BAILOUT ==> lazy-deopt-call
      
      2. For other instructions (StackCheck) we insert it right after the
      instruction since the deopt targets an earlier deoptimization environment.
      
         STACK-CHECK
         GAP ==> lazy-deopt-call
      
      The pc of the lazy-deopt call that will be patched in is recorded in the
      deoptimization input data. Each Lithium instruction can have 0..n safepoints.
      All safepoints get the deoptimization index of the associated LAZY-BAILOUT
      instruction. On lazy deoptimization we use the return-pc to find the safepoint.
      The safepoint tells us the deoptimization index, which in turn finds us the
      PC where to insert the lazy-deopt-call.
      
      Additional changes:
       * RegExpLiteral marked it as having side-effects so that it 
         gets an explicitlazy-bailout instruction (instead of
         treating it specially like stack-checks)
       * Enable target recording CallFunctionStub to achieve
         more inlining on optimized code.
      
      BUG=v8:1789
      TEST=jslint and uglify run without crashing, mjsunit/compiler/regress-lazy-deopt.js
      Review URL: http://codereview.chromium.org/8492004
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      84805694
  3. 07 Dec, 2010 1 commit
  4. 23 Mar, 2010 1 commit
  5. 11 Mar, 2010 1 commit
  6. 04 Feb, 2010 1 commit
  7. 21 Dec, 2009 1 commit
  8. 27 Aug, 2009 2 commits
  9. 15 Jun, 2009 1 commit
  10. 05 Jun, 2009 1 commit
    • kmillikin@chromium.org's avatar
      Simplify the processing of deferred code in the code generator. Our · bd82b972
      kmillikin@chromium.org authored
      deferred code snippets are highly stylized.  They always make a call
      to a stub or the runtime and then return.  This change takes advantage
      of that.
      
      Creating a deferred code object now captures a snapshot of the
      registers in the virtual frame.  The registers are automatically saved
      on entry to the deferred code and restored on exit.
      
      The clients of deferred code must ensure that there is no change to
      the registers in the virtual frame (eg, by allocating which can cause
      spilling) or to the stack pointer.  That is currently the case.
      
      As a separate change, I will add either code to verify this constraint
      or else code to forbid any frame effect.
      
      The deferred code itself does not use the virtual frame or register
      allocator (or even the code generator).  It is raw macro assembler
      code.
      Review URL: http://codereview.chromium.org/118226
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      bd82b972
  11. 27 May, 2009 1 commit
  12. 31 Mar, 2009 3 commits
  13. 27 Mar, 2009 1 commit
  14. 16 Jan, 2009 1 commit
  15. 14 Jan, 2009 1 commit
  16. 26 Sep, 2008 1 commit
  17. 09 Sep, 2008 1 commit
  18. 22 Aug, 2008 1 commit
    • christian.plesner.hansen's avatar
      Included mjsunit JavaScript test suite and C++ unit tests. · c42f5829
      christian.plesner.hansen authored
      In the shell sample don't print the result of executing a script, only
      evaluating expressions.
      
      Fixed issue when building samples on Windows using a shared V8
      library.  Added visibility option on Linux build which makes the
      generated library 18% smaller.
      
      Changed build system to accept multiple build modes in one build and
      generate seperate objects, libraries and executables for each mode.
      
      Removed deferred negation optimization (a * -b => -(a * b)) since this
      visibly changes operand conversion order.
      
      Improved parsing performance by introducing stack guard in preparsing.
      Without a stack guard preparsing always bails out with stack overflow.
      
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      c42f5829
  19. 03 Jul, 2008 1 commit