[parrot/parrot] 3e8b2f: pmc2c: inline gc write barrier into vtable methods

GitHub noreply at github.com
Wed Apr 23 22:02:03 UTC 2014


  Branch: refs/heads/rurban/pmc2c_orig
  Home:   https://github.com/parrot/parrot
  Commit: 3e8b2f57f7eb7b8c7b3138aa08de578589bef833
      https://github.com/parrot/parrot/commit/3e8b2f57f7eb7b8c7b3138aa08de578589bef833
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-04-23 (Wed, 23 Apr 2014)

  Changed paths:
    M lib/Parrot/Pmc2c/Emitter.pm
    M lib/Parrot/Pmc2c/Method.pm
    M lib/Parrot/Pmc2c/PMC.pm
    M lib/Parrot/Pmc2c/PMC/Object.pm
    M src/io/io_private.h
    M src/pmc/alarm.pmc
    M src/pmc/arrayiterator.pmc
    M src/pmc/bigint.pmc
    M src/pmc/boolean.pmc
    M src/pmc/bytebuffer.pmc
    M src/pmc/continuation.pmc
    M src/pmc/env.pmc
    M src/pmc/eventhandler.pmc
    M src/pmc/exception.pmc
    M src/pmc/exceptionhandler.pmc
    M src/pmc/fixedbooleanarray.pmc
    M src/pmc/fixedintegerarray.pmc
    M src/pmc/handle.pmc
    M src/pmc/hashiterator.pmc
    M src/pmc/hashiteratorkey.pmc
    M src/pmc/imageiofreeze.pmc
    M src/pmc/imageiosize.pmc
    M src/pmc/imageiostrings.pmc
    M src/pmc/imageiothaw.pmc
    M src/pmc/imccompiler.pmc
    M src/pmc/integer.pmc
    M src/pmc/iterator.pmc
    M src/pmc/key.pmc
    M src/pmc/lexpad.pmc
    M src/pmc/managedstruct.pmc
    M src/pmc/nativepccmethod.pmc
    M src/pmc/nci.pmc
    M src/pmc/object.pmc
    M src/pmc/opcode.pmc
    M src/pmc/oplib.pmc
    M src/pmc/packfileannotation.pmc
    M src/pmc/packfilesegment.pmc
    M src/pmc/packfileview.pmc
    M src/pmc/parrotinterpreter.pmc
    M src/pmc/parrotlibrary.pmc
    M src/pmc/pointer.pmc
    M src/pmc/ptrbuf.pmc
    M src/pmc/resizablepmcarray.pmc
    M src/pmc/scheduler.pmc
    M src/pmc/schedulermessage.pmc
    M src/pmc/sockaddr.pmc
    M src/pmc/sub.pmc
    M src/pmc/task.pmc
    M src/pmc/unmanagedstruct.pmc

  Log Message:
  -----------
  pmc2c: inline gc write barrier into vtable methods

removed wrong UNUSED(INTERP) and UNUSED(SELF)
some methods with return values are marked TODO, need to add the write barriers manually.

A missing write barrier caused one error:
t/examples/shootout.t: 16 examples/shootout/regexdna.pir SEGV

TODO GC write barrier to:
default.pop_float
default.pop_integer
default.pop_pmc
default.pop_string
default.shift_float
default.shift_integer
default.shift_pmc
default.shift_string
CallContext.shift_pmc
CallContext.shift_string
Key.shift_pmc
ArrayIterator.pop_float
ArrayIterator.pop_integer
ArrayIterator.pop_pmc
ArrayIterator.pop_string
ArrayIterator.shift_float
ArrayIterator.shift_integer
ArrayIterator.shift_pmc
ArrayIterator.shift_string
Task.pop_pmc
Capture.pop_float
Capture.pop_integer
Capture.pop_pmc
Capture.pop_string
Capture.shift_float
Capture.shift_integer
Capture.shift_pmc
Capture.shift_string
HashIterator.shift_integer
HashIterator.shift_pmc
HashIterator.shift_string
ImageIOThaw.shift_float
ImageIOThaw.shift_integer
ImageIOThaw.shift_pmc
ImageIOThaw.shift_string
ResizablePMCArray.pop_float
ResizablePMCArray.pop_integer
ResizablePMCArray.pop_pmc
ResizablePMCArray.pop_string
ResizablePMCArray.shift_float
ResizablePMCArray.shift_integer
ResizablePMCArray.shift_pmc
ResizablePMCArray.shift_string
Object.pop_float
Object.pop_integer
Object.pop_pmc
Object.pop_string
Object.shift_float
Object.shift_integer
Object.shift_pmc
Object.shift_string
OrderedHashIterator.pop_pmc
OrderedHashIterator.shift_pmc
OrderedHashIterator.shift_string
PMCList.pop_pmc
PMCList.shift_pmc
ResizableBooleanArray.pop_integer
ResizableBooleanArray.shift_integer
ResizableFloatArray.pop_float
ResizableFloatArray.shift_float
ResizableIntegerArray.pop_integer
ResizableIntegerArray.shift_integer
ResizableStringArray.pop_float
ResizableStringArray.pop_integer
ResizableStringArray.pop_pmc
ResizableStringArray.pop_string
ResizableStringArray.shift_float
ResizableStringArray.shift_integer
ResizableStringArray.shift_pmc
ResizableStringArray.shift_string
Scheduler.shift_pmc
StringIterator.pop_integer
StringIterator.pop_pmc
StringIterator.pop_string
StringIterator.shift_integer
StringIterator.shift_pmc
StringIterator.shift_string


  Commit: c7b73a0c7de9946a6e1cdef1382a3be831610ab3
      https://github.com/parrot/parrot/commit/c7b73a0c7de9946a6e1cdef1382a3be831610ab3
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-04-23 (Wed, 23 Apr 2014)

  Changed paths:
    M lib/Parrot/Pmc2c/Emitter.pm
    M lib/Parrot/Pmc2c/Method.pm
    M lib/Parrot/Pmc2c/PCCMETHOD.pm
    M lib/Parrot/Pmc2c/PMC.pm

  Log Message:
  -----------
  [pmc2c] WIP :no_wb, detection of :manual_wb, RETURN() also for VTABLE methods

add_write_barrier now calls Parrot::Pmc2c::PCCMETHOD::rewrite_RETURNs, but
this does not work yet.


  Commit: 7dabf0ec808c4850e70842892f28bf6886397bdd
      https://github.com/parrot/parrot/commit/7dabf0ec808c4850e70842892f28bf6886397bdd
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-04-23 (Wed, 23 Apr 2014)

  Changed paths:
    M src/pmc/arrayiterator.pmc
    M src/pmc/capture.pmc

  Log Message:
  -----------
  [pmc] partially use new WB markers


  Commit: b24b3823b05f8759c6eae7d134373fcc302aba10
      https://github.com/parrot/parrot/commit/b24b3823b05f8759c6eae7d134373fcc302aba10
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-04-23 (Wed, 23 Apr 2014)

  Changed paths:
    M lib/Parrot/Pmc2c/Parser.pm

  Log Message:
  -----------
  [pmc2c] set manual_wb for :no_wb and PARROT_GC_WRITE_BARRIER in --dump

detect it now earlier, in the parser


  Commit: b10192cd003fdf62a735ec33fd1ddd4a6255e3ab
      https://github.com/parrot/parrot/commit/b10192cd003fdf62a735ec33fd1ddd4a6255e3ab
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-04-23 (Wed, 23 Apr 2014)

  Changed paths:
    M lib/Parrot/Pmc2c/Method.pm

  Log Message:
  -----------
  [pmc2c] small decl optimization


Compare: https://github.com/parrot/parrot/compare/8a61e523ebf6...b10192cd003f


More information about the parrot-commits mailing list