cmp: rearrange the order in +all-c1-forms+ to hint top-levelness

This commit is contained in:
Daniel Kochmański 2023-05-22 18:11:15 +02:00
parent 0ccb877b8a
commit 18030bf1b4

View file

@ -17,42 +17,54 @@
(eval-when (:compile-toplevel :execute)
(defconstant +all-c1-forms+
'((LOCATION loc :pure :single-valued)
'(;; top-level forms
(ORDINARY c1form :pure)
(MAKE-FORM vv-loc value-c1form :side-effects)
(INIT-FORM vv-loc value-c1form :side-effects)
;; both-level forms (different semantics)
(EXT:COMPILER-LET symbols values body)
(SI:FSET function-object vv-loc macro-p pprint-p lambda-form :side-effects)
(CL:LOAD-TIME-VALUE dest-loc value-c1form :pure :single-valued)
(CL:PROGN body :pure)
;; sub-level forms
(LOCATION loc :pure :single-valued)
(VAR var :single-valued)
(cl:SETQ var value-c1form :side-effects)
(cl:PSETQ var-list value-c1form-list :side-effects)
(cl:BLOCK blk-var progn-c1form :pure)
(cl:PROGN body :pure)
(cl:PROGV symbols values form :side-effects)
(cl:TAGBODY tag-var tag-body :pure)
(cl:RETURN-FROM blk-var nonlocal value :side-effects)
(cl:FUNCALL fun-value (arg-value*) :side-effects)
(CL:SETQ var value-c1form :side-effects)
(CL:PSETQ var-list value-c1form-list :side-effects)
(CL:BLOCK blk-var progn-c1form :pure)
(CL:PROGV symbols values form :side-effects)
(CL:TAGBODY tag-var tag-body :pure)
(CL:RETURN-FROM blk-var nonlocal value :side-effects)
(CL:FUNCALL fun-value (arg-value*) :side-effects)
(CALL-LOCAL obj-fun (arg-value*) :side-effects)
(CALL-GLOBAL fun-name (arg-value*))
(cl:CATCH catch-value body :side-effects)
(cl:UNWIND-PROTECT protected-c1form body :side-effects)
(cl:THROW catch-value output-value :side-effects)
(cl:GO tag-var nonlocal :side-effects)
(ffi:C-INLINE (arg-c1form*)
(CL:CATCH catch-value body :side-effects)
(CL:UNWIND-PROTECT protected-c1form body :side-effects)
(CL:THROW catch-value output-value :side-effects)
(CL:GO tag-var nonlocal :side-effects)
(FFI:C-INLINE (arg-c1form*)
(arg-type-symbol*)
output-rep-type
c-expression-string
side-effects-p
one-liner-p)
(ffi:C-PROGN variables forms)
(FFI:C-PROGN variables forms)
(LOCALS local-fun-list body labels-p :pure)
(cl:IF fmla-c1form true-c1form false-c1form :pure)
(CL:IF fmla-c1form true-c1form false-c1form :pure)
(FMLA-NOT fmla-c1form :pure)
(FMLA-AND * :pure)
(FMLA-OR * :pure)
(cl:LAMBDA lambda-list doc body-c1form)
(cl:LET* vars-list var-init-c1form-list decl-body-c1form :pure)
(cl:VALUES values-c1form-list :pure)
(cl:MULTIPLE-VALUE-SETQ vars-list values-c1form-list :side-effects)
(cl:MULTIPLE-VALUE-BIND vars-list init-c1form body :pure)
(ext:COMPILER-LET symbols values body)
(cl:FUNCTION (GLOBAL/CLOSURE) lambda-form fun-object :single-valued)
(cl:RPLACD (dest-c1form value-c1form) :side-effects)
(CL:LAMBDA lambda-list doc body-c1form)
(CL:LET* vars-list var-init-c1form-list decl-body-c1form :pure)
(CL:VALUES values-c1form-list :pure)
(CL:MULTIPLE-VALUE-SETQ vars-list values-c1form-list :side-effects)
(CL:MULTIPLE-VALUE-BIND vars-list init-c1form body :pure)
(CL:FUNCTION (GLOBAL/CLOSURE) lambda-form fun-object :single-valued)
(CL:RPLACD (dest-c1form value-c1form) :side-effects)
(SI:STRUCTURE-REF struct-c1form type-name slot-index (:UNSAFE/NIL) :pure)
(SI:STRUCTURE-SET struct-c1form type-name slot-index value-c1form :side-effects)
@ -60,12 +72,6 @@
(WITH-STACK body :side-effects)
(STACK-PUSH-VALUES value-c1form push-statement-c1form :side-effects)
(ORDINARY c1form :pure)
(cl:LOAD-TIME-VALUE dest-loc value-c1form :pure :single-valued)
(SI:FSET function-object vv-loc macro-p pprint-p lambda-form
:side-effects)
(MAKE-FORM vv-loc value-c1form :side-effects)
(INIT-FORM vv-loc value-c1form :side-effects)
(ext:COMPILER-TYPECASE var expressions)
(ext:CHECKED-VALUE type value-c1form let-form))))