[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #64961] Use 32-bit bytecode interpreter stack

From: Petter
Subject: [Octave-bug-tracker] [bug #64961] Use 32-bit bytecode interpreter stack elements on 32-bit systems
Date: Sat, 2 Dec 2023 09:17:18 -0500 (EST)


                 Summary: Use 32-bit bytecode interpreter stack elements on
32-bit systems
                   Group: GNU Octave
               Submitter: 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: 
        Originator Email: 
             Open/Closed: Open
                 Release: dev
         Discussion Lock: Any
        Operating System: GNU/Linux
           Fixed Release: None
         Planned Release: None


Follow-up Comments:

Date: Sat 02 Dec 2023 02:17:16 PM UTC By: Petter <petter>
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

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.

File Attachments:

Date: Sat 02 Dec 2023 02:17:16 PM UTC  Name: octave_32767.patch  Size: 4KiB  
By: petter



Reply to this item at:


Message sent via Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]