1. 30 Jan, 2014 4 commits
    • jarin@chromium.org's avatar
      The current · 99ce5a24
      jarin@chromium.org authored
      version is passing all the existing test + a bunch of new tests
      (packaged in the change list, too).
      
      The patch extends the SlotRef object to describe captured and duplicated
      objects. Since the SlotRefs are not independent of each other anymore,
      there is a new SlotRefValueBuilder class that stores the SlotRefs and
      later materializes the objects from the SlotRefs.
      
      Note that unlike the previous implementation of SlotRefs, we now build
      the SlotRef entries for the entire frame, not just the particular
      function.  This is because duplicate objects might refer to previous
      captured objects (that might live inside other inlined function's part
      of the frame).
      
      We also need to store the materialized objects between other potential
      invocations of the same arguments object so that we materialize each
      captured object at most once.  The materialized objects of frames live
      in the new MaterielizedObjectStore object (contained in Isolate),
      indexed by the frame's FP address.  Each argument materialization (and
      deoptimization) tries to lookup its captured objects in the store before
      building new ones.  Deoptimization also removes the materialized objects
      from the store. We also schedule a lazy deopt to be sure that we always
      get rid of the materialized objects and that the optmized function
      adopts the materialized objects (instead of happily computing with its
      captured representations).
      
      Concerns:
      
      - Is the FP address the right key for a frame? (Note that deoptimizer's
      representation of frame is different from the argument object
      materializer's one - it is not easy to find common ground.)
      
      - Performance is suboptimal in several places, but a quick local run of
      benchmarks does not seem to show a perf hit. Examples of possible
      improvements: smarter generation of SlotRefs (build other functions'
      SlotRefs only for captured objects and only if necessary), smarter
      lookup of stored materialized objects.
      
      - Ideally, we would like to share the code for argument materialization
      with deoptimizer's materializer.  However, the supporting data structures
      (mainly the frame descriptor) are quite different in each case, so it
      looks more like a separate project.
      
      Thanks for any feedback.
      
      R=danno@chromium.org, mstarzinger@chromium.org
      LOG=N
      BUG=
      
      Committed: https://code.google.com/p/v8/source/detail?r=18918
      
      Review URL: https://codereview.chromium.org/103243005
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      99ce5a24
    • machenbach@chromium.org's avatar
      Fix test expectations for cctest/test-debug. · 32f45eb7
      machenbach@chromium.org authored
      BUG=v8:3125
      R=bmeurer@chromium.org
      TBR=verwaest@chromium.org
      LOG=n
      
      Review URL: https://codereview.chromium.org/150173003
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      32f45eb7
    • palfia@homejinni.com's avatar
      MIPS: Turn RegExpConstructResultStub into a HydrogenCodeStub. · af4694e6
      palfia@homejinni.com authored
      Port r18902 (ba394fbc)
      
      Original commit message:
      This has the additional benefit that it is now possible to
      inline the RegExpResult construction code into Hydrogen
      builtins.
      
      BUG=
      R=plind44@gmail.com
      
      Review URL: https://codereview.chromium.org/149863003
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      af4694e6
    • machenbach@chromium.org's avatar
      Prepare push to trunk. Now working on version 3.24.28. · 33ebd4fd
      machenbach@chromium.org authored
      R=jkummerow@chromium.org
      TBR=jkummerow@chromium.org
      
      Review URL: https://codereview.chromium.org/149943002
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      33ebd4fd
  2. 29 Jan, 2014 27 commits
  3. 28 Jan, 2014 9 commits