diff options
author | Mattias EngdegÄrd <mattiase@acm.org> | 2024-03-21 19:35:15 +0100 |
---|---|---|
committer | Mattias EngdegÄrd <mattiase@acm.org> | 2024-03-29 11:39:38 +0100 |
commit | deae311281522864ebabaf56adafbe37032cc8a9 (patch) | |
tree | 9672a97c14084162887cd6cc54d3565c195ce9e3 /lisp/emacs-lisp/generate-lisp-file.el | |
parent | ae5f2c02bd2fc269e2cc32c8039d95fbf4225e69 (diff) | |
download | emacs-deae311281522864ebabaf56adafbe37032cc8a9.tar.gz emacs-deae311281522864ebabaf56adafbe37032cc8a9.tar.bz2 emacs-deae311281522864ebabaf56adafbe37032cc8a9.zip |
Speed up `sort` by special-casing the `value<` ordering
This gives a 1.5x-2x speed-up when using the default :lessp value,
by eliminating the Ffuncall overhead.
* src/sort.c (order_pred_lisp, order_pred_valuelt): New.
(merge_state, inorder, binarysort, count_run, gallop_left, gallop_right)
(merge_init, merge_lo, merge_hi, tim_sort):
* src/fns.c (Fsort):
When using value<, call it directly.
Diffstat (limited to 'lisp/emacs-lisp/generate-lisp-file.el')
0 files changed, 0 insertions, 0 deletions