pmc2c-multi-nativepccmethod branch ready for testing

Peter Lobsinger plobsing at gmail.com
Fri Mar 18 00:48:27 UTC 2011


On Fri, Mar 11, 2011 at 6:43 PM, Vasily Chekalkin <bacek at bacek.com> wrote:
> For the record. I'm implementor of original "switch based MULTI
> optimization". It improved math op performance 500%. Just because
> PCC+MMD are extremely slow and put additional pressure on GC.

I've reworked things in the pmc2c-nativepccmethod-multi-2 branch. It
preserves the goal of using NativePCCMethods for multis but maintains
the switched multi. It changes much less, so there are no expected
failures, even with failures detected on the first branch. Even so,
please test this branch, as I intend to merge it in the next couple of
days.

For the record, I still think that switch-multi is wrong, but I lack a
performant alternative.

> --
> Bacek
>
> On Sat, Mar 12, 2011 at 10:30 AM, Jonathan "Duke" Leto
> <jonathan at leto.net> wrote:
>> Howdy,
>>
>> Correctness wins over performance every time, so I am +1 for this
>> branch to merge.
>>
>> Duke
>>
>> On Fri, Mar 11, 2011 at 3:17 PM, Peter Lobsinger <plobsing at gmail.com> wrote:
>>> On Fri, Mar 11, 2011 at 5:57 PM, Jonathan "Duke" Leto <jonathan at leto.net> wrote:
>>>> Howdy,
>>>>
>>>> Peter, can you comment on the possible performance-related changes
>>>> that this branch could cause?
>>>
>>> We took a small hit for the indirection NCI caused. We're not doing
>>> that anymore, so it should be a little faster.
>>>
>>> MULTIs that aliased vtables used switch statements to dispatch based
>>> on their second argument. This optimization was not faithful to the
>>> MMD algorithm, leading to slight discrepancies (and outright wrong
>>> code in some corner cases). So while this aspect may have gotten
>>> slower, it was a change from fast and wrong to slow and correct. If
>>> the switch behaviour is desired, it should be made explicit, in stead
>>> of pretending to be MMD when it is not.
>>>
>>>> Have you done any benchmarks?
>>>
>>> No. The focus of this branch was correctness and decoupling.
>>> Performance was not of primary concern and is unlikely to be affected
>>> in any major way.
>>>
>>>> Duke
>>>>
>>>> On Fri, Mar 11, 2011 at 2:35 PM, Peter Lobsinger <plobsing at gmail.com> wrote:
>>>>> The pmc2c-multi-nativepccmethod branch changes the implementation of
>>>>> MULTIs in .pmc files from NCI to NativePCCMethod. This means that
>>>>> these now handle their own PCC, in stead of rellying on NCI thunks to
>>>>> accomplish this. These can now be modified to access a more broad
>>>>> range of PCC functionality. On the NCI side of things, this
>>>>> unentangles NCI from Pmc2c, allowing for changes to proceed.
>>>>>
>>>>> At the current time, the branch passes all tests in core and I am
>>>>> testing HLLs. Please test this with whatever you see fit.
>>>>> _______________________________________________
>>>>> http://lists.parrot.org/mailman/listinfo/parrot-dev
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Jonathan "Duke" Leto
>>>> jonathan at leto.net
>>>> http://leto.net
>>>>
>>>
>>
>>
>>
>> --
>> Jonathan "Duke" Leto
>> jonathan at leto.net
>> http://leto.net
>> _______________________________________________
>> http://lists.parrot.org/mailman/listinfo/parrot-dev
>>
>


More information about the parrot-dev mailing list