php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #69703 Use __builtin_clzl on PowerPC
Submitted: 2015-05-25 01:53 UTC Modified: 2015-06-18 13:59 UTC
Votes:3
Avg. Score:4.7 ± 0.5
Reproduced:3 of 3 (100.0%)
Same Version:3 (100.0%)
Same OS:3 (100.0%)
From: dja at axtens dot net Assigned: kalle (profile)
Status: Closed Package: Performance problem
PHP Version: 5.6Git-2015-05-25 (Git) OS: Linux
Private report: No CVE-ID: None
 [2015-05-25 01:53 UTC] dja at axtens dot net
Description:
------------
Zend/zend_alloc.c uses __builtin_clzl in zend_mm_high_bit and zend_mm_low_but, but only if (defined(__arm__) ||  defined(__aarch64__)). This is overly restrictive: it's also usable if __defined__(__powerpc__).

This causes a bump to speed on POWER systems: previously zend_mm_high_bit shows up on perf reports, with this patch the functions drop out of the profile entirely.


Patches

__builtin_clzl.patch (last revision 2015-05-25 01:53 UTC by dja at axtens dot net)

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2015-05-28 08:25 UTC] [email protected]
-Status: Open +Status: Assigned -Assigned To: +Assigned To: dmitry
 [2015-05-28 08:25 UTC] [email protected]
Dmitry, can you verify if this patch can safely go into 5.6? It is obsolete for master it seems
 [2015-05-28 08:30 UTC] [email protected]
Looks fine.
 [2015-05-28 12:31 UTC] [email protected]
Automatic comment on behalf of kalle
Revision: http://git.php.net/?p=php-src.git;a=commit;h=de696d851f18efb40298d92b83d761a39964b910
Log: Fixed bug #69703 (Use __builtin_clzl on PowerPC) -- Patch by dja at axtens dot net
 [2015-05-28 12:31 UTC] [email protected]
-Status: Assigned +Status: Closed
 [2015-05-28 12:38 UTC] [email protected]
-Assigned To: dmitry +Assigned To: kalle
 [2015-05-28 12:43 UTC] [email protected]
I committed this only to 5.6, as 5.5 is going to security only mode in 22 days (unless Julien decides it should go through).

This should be available in 5.6.10 (on 11th of June)
 [2015-05-29 09:14 UTC] [email protected]
Automatic comment on behalf of kalle
Revision: http://git.php.net/?p=php-src.git;a=commit;h=de696d851f18efb40298d92b83d761a39964b910
Log: Fixed bug #69703 (Use __builtin_clzl on PowerPC) -- Patch by dja at axtens dot net
 [2015-06-18 13:44 UTC] [email protected]
1. This also went into PHP 5.5.
2. Should that be powerpc64 instead of powerpc ?

See also https://github.com/php/php-src/pull/1245
 [2015-06-18 13:59 UTC] [email protected]
Lior, it probably should. Feel free to take over this report if you like as I cannot verify anything on a PPC.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Wed Dec 31 03:00:01 2025 UTC