octave-bug-tracker
[Top][All Lists]
Advanced

[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)

URL:
  <https://savannah.gnu.org/bugs/?64961>

                 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.

https://octave.discourse.group/t/wip-stack-vm-for-octave/2884/176

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.








    _______________________________________________________
File Attachments:


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

<http://savannah.gnu.org/bugs/download.php?file_id=55387>

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?64961>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/




reply via email to

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