[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
feature/native-comp 6b7c257 6/8: * Unline some functions to optimize boo
From: |
Andrea Corallo |
Subject: |
feature/native-comp 6b7c257 6/8: * Unline some functions to optimize bootstrap time |
Date: |
Wed, 11 Nov 2020 19:03:07 -0500 (EST) |
branch: feature/native-comp
commit 6b7c257e0bab055ab62ff15fb3d1e5fe352bc816
Author: Andrea Corallo <akrl@sdf.org>
Commit: Andrea Corallo <akrl@sdf.org>
* Unline some functions to optimize bootstrap time
* lisp/emacs-lisp/comp.el (comp-mvar-value-vld-p)
(comp-mvar-value, comp-mvar-fixnum-p, comp-set-op-p)
(comp-assign-op-p, comp-call-op-p, comp-type-hint-p)
(comp-func-ret-typeset, comp-function-pure-p)
(comp-alloc-class-to-container, comp-lex-byte-func-p)
(comp-lap-eob-p, comp-lap-fall-through-p, comp-emit)
(comp-emit-set-call, comp-mvar-propagate)
(comp-function-foldable-p, comp-function-call-maybe-fold)
(comp-trampoline-filename): Uninline functions.
---
lisp/emacs-lisp/comp.el | 38 +++++++++++++++++++-------------------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index 055adcc..e026d3b 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -449,7 +449,7 @@ Interg values are handled in the `range' slot.")
(range '() :type list
:documentation "Integer interval."))
-(defsubst comp-mvar-value-vld-p (mvar)
+(defun comp-mvar-value-vld-p (mvar)
"Return t if one single value can be extracted by the MVAR constrains."
(or (= (length (comp-mvar-valset mvar)) 1)
(let ((r (comp-mvar-range mvar)))
@@ -461,7 +461,7 @@ Interg values are handled in the `range' slot.")
(integerp high)
(= low high)))))))
-(defsubst comp-mvar-value (mvar)
+(defun comp-mvar-value (mvar)
"Return the constant value of MVAR.
`comp-mvar-value-vld-p' *must* be satisfied before calling
`comp-mvar-const'."
@@ -477,7 +477,7 @@ Interg values are handled in the `range' slot.")
(car v)
(caar (comp-mvar-range mvar)))))
-(defsubst comp-mvar-fixnum-p (mvar)
+(defun comp-mvar-fixnum-p (mvar)
"Return t if MVAR is certainly a fixnum."
(when-let (range (comp-mvar-range mvar))
(let* ((low (caar range))
@@ -518,15 +518,15 @@ To be used by all entry points."
((null (native-comp-available-p))
(error "Cannot find libgccjit"))))
-(defsubst comp-set-op-p (op)
+(defun comp-set-op-p (op)
"Assignment predicate for OP."
(when (memq op comp-limple-sets) t))
-(defsubst comp-assign-op-p (op)
+(defun comp-assign-op-p (op)
"Assignment predicate for OP."
(when (memq op comp-limple-assignments) t))
-(defsubst comp-call-op-p (op)
+(defun comp-call-op-p (op)
"Call predicate for OP."
(when (memq op comp-limple-calls) t))
@@ -534,11 +534,11 @@ To be used by all entry points."
"Limple INSN call predicate."
(comp-call-op-p (car-safe insn)))
-(defsubst comp-type-hint-p (func)
+(defun comp-type-hint-p (func)
"Type-hint predicate for function name FUNC."
(when (memq func comp-type-hints) t))
-(defsubst comp-func-ret-typeset (func)
+(defun comp-func-ret-typeset (func)
"Return the typeset returned by function FUNC. "
(or (alist-get func comp-known-ret-types) '(t)))
@@ -564,13 +564,13 @@ To be used by all entry points."
comp-ctxt))
(comp-ctxt-funcs-h comp-ctxt)))
-(defsubst comp-function-pure-p (f)
+(defun comp-function-pure-p (f)
"Return t if F is pure."
(or (get f 'pure)
(when-let ((func (comp-symbol-func-to-fun f)))
(comp-func-pure func))))
-(defsubst comp-alloc-class-to-container (alloc-class)
+(defun comp-alloc-class-to-container (alloc-class)
"Given ALLOC-CLASS, return the data container for the current context.
Assume allocation class 'd-default as default."
(cl-struct-slot-value 'comp-ctxt (or alloc-class 'd-default) comp-ctxt))
@@ -682,7 +682,7 @@ instruction."
;;; spill-lap pass specific code.
-(defsubst comp-lex-byte-func-p (f)
+(defun comp-lex-byte-func-p (f)
"Return t if F is a lexically-scoped byte compiled function."
(and (byte-code-function-p f)
(fixnump (aref f 0))))
@@ -945,12 +945,12 @@ Points to the next slot to be filled.")
byte-switch byte-pushconditioncase)
"LAP end of basic blocks op codes.")
-(defsubst comp-lap-eob-p (inst)
+(defun comp-lap-eob-p (inst)
"Return t if INST closes the current basic blocks, nil otherwise."
(when (memq (car inst) comp-lap-eob-ops)
t))
-(defsubst comp-lap-fall-through-p (inst)
+(defun comp-lap-fall-through-p (inst)
"Return t if INST fall through, nil otherwise."
(when (not (memq (car inst) '(byte-goto byte-return)))
t))
@@ -1047,13 +1047,13 @@ If SSA non-nil populate it of m-var in ssa form."
do (aset v i mvar)
finally return v))
-(defsubst comp-emit (insn)
+(defun comp-emit (insn)
"Emit INSN into basic block BB."
(let ((bb (comp-limplify-curr-block comp-pass)))
(cl-assert (not (comp-block-closed bb)))
(push insn (comp-block-insns bb))))
-(defsubst comp-emit-set-call (call)
+(defun comp-emit-set-call (call)
"Emit CALL assigning the result the the current slot frame.
If the callee function is known to have a return type propagate it."
(cl-assert call)
@@ -2395,18 +2395,18 @@ Forward propagate immediate involed in assignments."
(`(setimm ,lval ,v)
(setf (comp-mvar-value lval) v))))))
-(defsubst comp-mvar-propagate (lval rval)
+(defun comp-mvar-propagate (lval rval)
"Propagate into LVAL properties of RVAL."
(setf (comp-mvar-typeset lval) (comp-mvar-typeset rval)
(comp-mvar-valset lval) (comp-mvar-valset rval)
(comp-mvar-range lval) (comp-mvar-range rval)))
-(defsubst comp-function-foldable-p (f args)
+(defun comp-function-foldable-p (f args)
"Given function F called with ARGS return non-nil when optimizable."
(and (comp-function-pure-p f)
(cl-every #'comp-mvar-value-vld-p args)))
-(defsubst comp-function-call-maybe-fold (insn f args)
+(defun comp-function-call-maybe-fold (insn f args)
"Given INSN when F is pure if all ARGS are known remove the function call."
(cl-flet ((rewrite-insn-as-setimm (insn value)
;; See `comp-emit-setimm'.
@@ -2925,7 +2925,7 @@ Prepare every function for final compilation and drive
the C back-end."
;; Primitive funciton advice machinery
-(defsubst comp-trampoline-filename (subr-name)
+(defun comp-trampoline-filename (subr-name)
"Given SUBR-NAME return the filename containing the trampoline."
(concat (comp-c-func-name subr-name "subr--trampoline-" t) ".eln"))
- feature/native-comp updated (e20cdf9 -> 2435c10), Andrea Corallo, 2020/11/11
- feature/native-comp e96cd4e 2/8: Add initial nativecomp typeset and range propagation support, Andrea Corallo, 2020/11/11
- feature/native-comp 00b4e0a 4/8: * Fix limple-mode for new type and range limple semantic, Andrea Corallo, 2020/11/11
- feature/native-comp c3d0e2a 1/8: * Rename two nativecomp functions, Andrea Corallo, 2020/11/11
- feature/native-comp a214882 5/8: * Add to elisp-mode `emacs-lisp-native-compile-and-load', Andrea Corallo, 2020/11/11
- feature/native-comp 6b7c257 6/8: * Unline some functions to optimize bootstrap time,
Andrea Corallo <=
- feature/native-comp 2435c10 8/8: * Nativecomp testsuite rework for derived return type specifiers, Andrea Corallo, 2020/11/11
- feature/native-comp 175efec 3/8: Add a nativecomp testcase, Andrea Corallo, 2020/11/11
- feature/native-comp 93a80a4 7/8: * Add nativecomp derived return type specifier computation support, Andrea Corallo, 2020/11/11