|
From: | Doug Stewart |
Subject: | Re: [Octave-bug-tracker] [bug #64977] Explore options for the bytecode interpreter in Octave 9 |
Date: | Sat, 09 Dec 2023 23:54:25 -0000 |
Follow-up Comment #15, bug#64977 (group octave):
It seems quite fine with a feature branch. There is not too much code changes
in the relevant parts of the code base anyway. Could I maybe get write access
to the branch? I think that would simplify.
[comment #6 comment #6:]
> RE: the patch in comment #4, why do these functions need to be tagged with
these attributes? I'd rather avoid the clutter unless it is necessary. What
benefit do these attributes provide for these particular functions?
The whole octave_value_vm class is more or less some shenanigans to fool the
gcc optimizer into optimizing in a special way for some different problems.
The main problem is to not call ~octave_value () when m_rep is nullptr due to
a move. C++ optimizations seems quite brittle in general and are hard to
reason about, so a 'wrapper class' is quite convenient way to force behaviour.
The class can probably be refactored out though, because I think the optimizer
got better since gcc 10, and by using octave_base_value* instead of a
octave_value some of the problems could be mitigated, I discovered.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?64977>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
[Prev in Thread] | Current Thread | [Next in Thread] |