bugGNU Octave - Bugs: bug #64961, Use 32-bit bytecode interpreter...


bug #64961: Use 32-bit bytecode interpreter stack elements on 32-bit systems

Submitter:  Petter <petter>
Submitted:  Sat 02 Dec 2023 02:17:16 PM UTC
Category:  Interpreter Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Performance
Status:  None Assigned to:  None
Originator Name:  Open/Closed:  * Open
Release:  * dev Operating System:  * GNU/Linux
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup

Sat 02 Dec 2023 02:17:16 PM UTC, original submission:  

M├╝tzel noted that the bytecode interpreter testsuite ran suspiciously slow on a Alpine 32-bit buildbot.


This patch changes the stack element size on 32-bit systems to 32-bit instead of 64-bit, which should speed 32-bit platforms up a bit.

It could not recreate the issue however on my Debian 32-bit VM. 'make check' and 'make check-vm'
runs in about the same time (without and with the patch). Running through a VM seem to introduce too much noise to benchmark the patch too, but smaller stack elements should be fundamentally better.

However 'make check' and 'make check-vm' choked on 'quadcc.cc-tst' with or with-out the patch, so I had to delete it to run the testsuite. The testsuite takes 5 minutes without quadcc.cc-tst and with it, it didn't complete in an hour.

Remove always 64-bit type fields in stack element union, to decrease
the memory footprint of the stack. Instead use octave_idx_type that
is 32-bits on 32-bit systems.

* pt-bytecode.h: (stack_element) Remove always 64-bit types.
                                 Add octave_idx_type idx field instead.
* pt-bytecode-vm.cc: Use idx field where appropiate.

Petter <petter>


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:

Attached Files
file #55387:  octave_32767.patch added by petter (4KiB - text/x-patch)


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by petter (Submitted the item)

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.


    Follows 1 latest change.

    Date Changed by Updated Field Previous Value => Replaced by
    2023-12-02 petter Attached File- Added octave_32767.patch, #55387

    Back to the top

    Powered by Savane 3.12.
    Corresponding source code