From ce118eb9bca784396335f6f10d59219362545afa Mon Sep 17 00:00:00 2001 From: Paul Khuong Date: Thu, 23 Jun 2011 11:05:54 -0400 Subject: [PATCH] Microoptimisation for block headers on x86-64 Only emit a jmp over the header if a predecessor falls through to the current block, and it there is a trampoline. Otherwise, it's not worth the cost of a branch to skip a few NOPs. --- src/compiler/x86-64/call.lisp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/x86-64/call.lisp b/src/compiler/x86-64/call.lisp index b19771d..4071fb7 100644 --- a/src/compiler/x86-64/call.lisp +++ b/src/compiler/x86-64/call.lisp @@ -561,7 +561,7 @@ ;;; calls. Emit a header for local calls to pop the return address ;;; in the right place. (defun emit-block-header (start-label trampoline-label fall-thru-p alignp) - (when (and fall-thru-p (or trampoline-label alignp)) + (when (and fall-thru-p trampoline-label) (inst jmp start-label)) (when alignp (emit-alignment n-lowtag-bits #x90)) -- 1.7.10.4