From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Peter =?UTF-8?Q?M=C3=BCnster?= Newsgroups: gmane.emacs.bugs Subject: bug#18522: 24.4.50; mapcar is very slow Date: Wed, 24 Feb 2016 21:03:41 +0100 Message-ID: <87y4a9kh9e.fsf@roche-blanche.net> References: <8738bkdjqg.fsf@micropit.roche-blanche.homenet.org> <87h9h2xr9k.fsf@roche-blanche.net> <56C99AD0.2000309@gmx.at> <87wppywbaz.fsf@roche-blanche.net> <87d1rquo4a.fsf@roche-blanche.net> <878u2eun9o.fsf@roche-blanche.net> <834md2niqt.fsf@gnu.org> <87k2lyszy2.fsf@roche-blanche.net> <83bn79n66p.fsf@gnu.org> <87vb5hry9y.fsf@roche-blanche.net> <83r3g4lnor.fsf@gnu.org> <87r3g4o4uw.fsf@roche-blanche.net> <83h9h0jwfo.fsf@gnu.org> <87mvqru119.fsf@roche-blanche.net> <8360xfjsyr.fsf@gnu.org> <878u2bs7tl.fsf@roche-blanche.net> <83r3g3iajr.fsf@gnu.org> <87twkypfqx.fsf@roche-blanche.net> <83vb5egg8y.fsf@gnu.org> <87fuwikmzc.fsf@roche-blanche.net> <83io1ege6r.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1456344270 11876 80.91.229.3 (24 Feb 2016 20:04:30 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 24 Feb 2016 20:04:30 +0000 (UTC) Cc: larsi@gnus.org, 18522@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Feb 24 21:04:18 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1aYffS-00018Q-Ju for geb-bug-gnu-emacs@m.gmane.org; Wed, 24 Feb 2016 21:04:14 +0100 Original-Received: from localhost ([::1]:38057 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aYffO-00062X-UB for geb-bug-gnu-emacs@m.gmane.org; Wed, 24 Feb 2016 15:04:10 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:59548) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aYffL-00062P-3e for bug-gnu-emacs@gnu.org; Wed, 24 Feb 2016 15:04:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aYffG-00055I-Vm for bug-gnu-emacs@gnu.org; Wed, 24 Feb 2016 15:04:07 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:47121) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aYffG-00055E-Rq for bug-gnu-emacs@gnu.org; Wed, 24 Feb 2016 15:04:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84) (envelope-from ) id 1aYffG-0000TW-6c; Wed, 24 Feb 2016 15:04:02 -0500 X-Loop: help-debbugs@gnu.org In-Reply-To: <8738bkdjqg.fsf@micropit.roche-blanche.homenet.org> Resent-From: Peter =?UTF-8?Q?M=C3=BCnster?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org, bugs@gnus.org Resent-Date: Wed, 24 Feb 2016 20:04:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 18522 X-GNU-PR-Package: emacs,gnus X-GNU-PR-Keywords: Original-Received: via spool by 18522-submit@debbugs.gnu.org id=B18522.14563442351814 (code B ref 18522); Wed, 24 Feb 2016 20:04:02 +0000 Original-Received: (at 18522) by debbugs.gnu.org; 24 Feb 2016 20:03:55 +0000 Original-Received: from localhost ([127.0.0.1]:44248 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aYff9-0000TC-Ly for submit@debbugs.gnu.org; Wed, 24 Feb 2016 15:03:55 -0500 Original-Received: from smtp02.smtpout.orange.fr ([80.12.242.124]:47499 helo=smtp.smtpout.orange.fr) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aYff7-0000Sy-T1 for 18522@debbugs.gnu.org; Wed, 24 Feb 2016 15:03:54 -0500 Original-Received: from micropit.roche-blanche.homenet.org ([2.14.65.45]) by mwinf5d03 with ME id NL3h1s00C0yazV603L3huT; Wed, 24 Feb 2016 21:03:47 +0100 X-ME-Helo: micropit.roche-blanche.homenet.org X-ME-Auth: ZHJwbUB3YW5hZG9vLmZy X-ME-Date: Wed, 24 Feb 2016 21:03:47 +0100 X-ME-IP: 2.14.65.45 Original-Received: by micropit.roche-blanche.homenet.org (Postfix, from userid 1000) id 5725DF425; Wed, 24 Feb 2016 21:03:41 +0100 (CET) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:113746 Archived-At: On Wed, Feb 24 2016, Eli Zaretskii wrote: > What is that "f0" there? Can you annotate it as well? Sorry, I thought, that only the part after "Fset_default():" was important. Here something more complete: --8<---------------cut here---------------start------------->8--- │ /* If this variable is not always local in all buffers, │ set it in the buffers that don't nominally have a local value. */ │ if (idx > 0) │ ↑ jle 95 │ { │ struct buffer *b; │ int i = 0; │ FOR_EACH_BUFFER (b) 0.08 │ mov all_buffers,%rcx │ test %rcx,%rcx │ ↓ je 180 │ { │ i++; │ if (!PER_BUFFER_VALUE_P (b, idx)) 0.02 │ cmp last_per_buffer_idx,%edx │ ↓ jge 160 │ { │ struct buffer *b; │ int i = 0; │ FOR_EACH_BUFFER (b) │ { │ i++; │ mov $0x1,%edx 0.02 │ ↓ jmp f3 │ nop 15.24 │ f0: add $0x1,%edx │ if (!PER_BUFFER_VALUE_P (b, idx)) 14.02 │ f3: cmpb $0x0,0x320(%rcx,%rax,1) 10.65 │ ↓ jne 101 │ set_per_buffer_value(): │ } │ │ INLINE void │ set_per_buffer_value (struct buffer *b, int offset, Lisp_Object value) │ { │ *(Lisp_Object *)(offset + (char *) b) = value; 14.11 │ mov %rbp,(%rcx,%rsi,1) │ Fset_default(): │ set it in the buffers that don't nominally have a local value. */ │ if (idx > 0) │ { │ struct buffer *b; │ int i = 0; │ FOR_EACH_BUFFER (b) 14.36 │101: mov 0x2d8(%rcx),%rcx 21.80 │ test %rcx,%rcx 5.16 │ ↑ jne f0 │ { │ i++; │ if (!PER_BUFFER_VALUE_P (b, idx)) │ set_per_buffer_value (b, offset, value); │ } │ fprintf(stderr, "XXXXX: %d\n", i); 0.00 │10d: mov stderr@@GLIBC_2.2.5,%rdi 2.18 │ mov $0x5e90e5,%esi │ xor %eax,%eax │ → callq fprintf@plt │ ↑ jmpq 95 │ nop --8<---------------cut here---------------end--------------->8--- -- Peter