;;; compiled by jimb@wookumz.gnu.ai.mit.edu on Wed May 26 23:10:41 1993
;;; from file /gd/gnu/emacs/19.0/lisp/byte-opt.el
;;; emacs version 19.8.0.
;;; bytecomp version FSF 2.08
;;; optimization is on.

(byte-code "MM#" [byte-compile-log-lap-1 #[(format &rest args) "H\n !ǉ	\"*#!" [byte-code-vector 0 error "The old version of the disassembler is loaded.  Reload new-bytecomp as well." byte-compile-log-1 apply format nil a c mapcar #[(arg) ": 9 !\" !O!@!. \"=; s >J AA@Z >X A@Z A!\"s O!=} A= > #" [arg string-match "^byte-" symbol-name intern 5 nil integerp c error "non-symbolic byte-op %s" TAG byte-goto-ops byte-constref-ops a "^byte-." constant const 0 (unbind call const) format "(%s %s)"] 4] args] 7] byte-compile-log-lap (macro . #[(format-string &rest args) "BBE" [and (memq byte-optimize-log (quote (t byte))) byte-compile-log-lap-1 format-string args] 5]) put inline byte-optimizer byte-optimize-inline-handler] 4)
(defalias 'byte-optimize-inline-handler #[(form) "A\"B" [progn mapcar #[(sexp) "	!9; \n\"A5 \n!; \n\"A; \nK:/ \n@=; \n!; 	!< 	)" [car-safe sexp fn assq byte-compile-function-environment fboundp byte-compile-macro-environment macro subrp byte-compile-inline-expand] 4] form] 4 "\
byte-optimize-handler for the `inline' special-form."])
(byte-code "MMMM" [byte-inline-lapcode #[(lap) "\n!\"" [nconc nreverse lap byte-compile-output] 3] byte-compile-inline-expand #[(form) "@	\"A 	! 	K! 	\" :3 @=3 A@!:G @=G A@	#9U AB! !q HHHHFEAB @=} 	\"AB*" [form name assq byte-compile-function-environment fboundp fn byte-compile-warn "attempt to inline %s before it was defined" autoload load error "file \"%s\" didn't define \"%s\"" byte-compile-inline-expand byte-code-function-p lambda 0 byte-code 1 2 3 "%s is not a lambda"] 8] byte-compile-unfold-lambda #[(form &optional name) " \n@\nA!# HHHHFEA@AAˉ@;H AH A@:] @@=] A @= t \"A \" @= A \"AA \"  @ BDB   \" @@DBAAb = \"\nA!BBB\"#>$>>'()\n!\"!#!+\")." [name "anonymous lambda" form values lambda byte-code-function-p 0 byte-code 1 2 3 nil bindings restp optionalp body arglist interactive &optional error "&optional found after &rest in %s" "nothing after &optional in %s" t &rest "nothing after &rest in %s" "multiple vars after &rest in %s" list byte-compile-warn "attempt to open-code %s with too few arguments" too-few "attempt to open-code %s with too many arguments" let nreverse progn newform byte-optimize byte-optimize-log (t source) 4 print-length print-level print-escape-newlines byte-compile-log-1 format "  %s	==>	%s" prin1-to-string] 8] byte-optimize-form-code-walker #[(form for-effect) "	!	:%   	9? 	=?m	m=G 	AA8 	!\"	A@m?m	m!U !=[ 	!m>s 	A@\"	AA\"BBm= 	A\"Bm= 	AA 	A\"A Bm@m	A@\"m= 	AA 	A@\"	AA\"BBm	A@\"m= 	A@\"	8\"	AAA\"BBBm>	A\"Bm=	A@\"	AA\"BBm==	A@\"	8\"	\"\"BBBm>	A!!g!!@\"\"g!A!Q	A!#$>'()	!\"!+!!!B)m	A\"Bm=	!\"m>	m=	A@\"	AABBm=	A@\"	AABBm		4\"=	\"m9!=!\"	mfNf:=:	!\"f#Y$>Y'()!\"!+	A\"B\"m	A\"B*" [car-safe form nil tmp fn for-effect byte-compile-delete-errors t quote byte-compile-warn "malformed quote form: %s" prin1-to-string byte-code-function-p lambda byte-compile-unfold-lambda (let let*) mapcar #[(binding) "9 AA !\"@A@\"D" [binding byte-compile-warn "malformed let binding: %s" prin1-to-string byte-optimize-form nil] 4] byte-optimize-body cond #[(clause) ": @\"A\"B!\"" [clause byte-optimize-form nil byte-optimize-body for-effect byte-compile-warn "malformed cond form: %s" prin1-to-string] 4] progn byte-optimize-form prog1 prog2 2 (save-excursion save-restriction) with-output-to-temp-buffer if nthcdr 3 (and or) reverse backwards setcar byte-optimize byte-optimize-log (t source) 4 print-length print-level print-escape-newlines byte-compile-log-1 format "  all subforms of %s called for effect; deleted" nreverse interactive "misplaced interactive spec: %s" (defun defmacro function condition-case save-window-excursion) unwind-protect catch macroexpand byte-compile-macro-environment mocklisp "%s is a malformed function" side-effect-free error-free "%s called for effect" "  %s called for effect; deleted" append (nil)] 8]] 2)
(defalias 'byte-optimize-form #[(form &optional for-effect) "	\n\"É	:_ 	@9_ \n! 	@N* 	@N_ 		!=_ V 	>V ̉	!!#!+\n\"` 	*" [byte-optimize-form-code-walker form for-effect nil new opt byte-for-effect-optimizer byte-optimizer byte-optimize byte-optimize-log (t source) t 4 print-length print-level print-escape-newlines byte-compile-log-1 format "  %s	==>	%s" prin1-to-string byte-optimize-form] 7 "\
The source-level pass of the optimizer."])
(byte-code "MMMMMMMMM#MMMMM#################################ҁ@ #ҁA #ҁB #ҁC ӁD #D E MF G MҁH ӁF #I J MK L MM N MO P MQ R MҁS ӁI #ҁT ӁK #ҁU ӁM #ҁV ӁO #ҁW ӁQ #ҁX ӁY #ҁZ ӁY #ҁ[ ӁY #\\ ] M^ _ Mҁ` Ӂ\\ #ҁa Ӂ^ #ҁb Ӂc #ҁd Ӂc #c e Mҁf Ӂg #g h Mҁi Ӂj #j k Ml m no?o@p q #oAo*nYn@p r #nAnD*s t Mҁu v s #w x" [byte-optimize-body #[(forms all-for-effect) "2  A@ @\"' + \nBA !," [forms nil new fe result rest all-for-effect byte-optimize-form nreverse] 5] byte-compile-trueconstp (macro . #[(form) "\nD\nDED\nDDC\nECF" [cond consp form eq car (quote quote) not symbolp t] 6]) byte-optimize-associative-math #[(form) "	A\n& \n@! \n@B \n@B\nA AR J 	@	@\"AD 	@!BF @ES 	@\"S 	+" [nil form rest constants args numberp apply nreverse] 6] byte-optimize-nonassociative-math #[(form) "	A@! 	AA@! 		A@	AA\n@!/ 	@\n@\"\nA \n< 	@\nBB= *" [numberp form rest constant] 3] byte-optimize-delay-constants-math #[(form start fun) "	S\n\"AAS @! \n!	S\n\"A? @!\" @B\"\" \n\"!\"C\") \n)" [nthcdr start form rest numberp nil constants copy-sequence setcar nconc delq apply fun nreverse] 6] byte-optimize-plus #[(form) "	#	> 	!\"	A ɏ	" [byte-optimize-delay-constants-math form 1 + 0 delq copy-sequence nil (eval form) ((error form))] 4] byte-optimize-minus #[(form) "	#	\"!@=) 	!	AA	\"\"\"P 	A@!P !P 	A@Z	8E	\"!\"\")	AAAj 	A@=j 	@	AABk 	!" [byte-optimize-delay-constants-math form 2 + reverse nthcdr 3 last 0 copy-sequence setcdr delq numberp nconc - byte-optimize-predicate] 9] byte-optimize-multiply #[(form) "	#A 	!@= 	ADn =. 	!\"n =? 	!\"Dn =m 	A\">m 	!\"	A@9W 		@	@E\"n 	)" [byte-optimize-delay-constants-math form 1 * reverse last 0 progn delq copy-sequence -1 - 2 t mapcar symbolp setcar +] 7] byte-compile-butlast #[(form) "\n!A!" [nreverse reverse form] 3] put byte-optimizer byte-compile-inline-expand byte-optimize-divide #[(form) "	#	AA!@!M 	GUM U- 		!A!)M 	A@!M 	@	A@\"	AA	!A!)BB	A@=_ 	AA# = 	\"y 		!A!)| 	A@D 	)" [byte-optimize-delay-constants-math form 2 * reverse last numberp 3 1 nreverse / nil 0 append (progn) (0) -1 - nthcdr] 5] byte-optimize-logmumble #[(form) "		@#	>' 	@= 	AB\" 	!\"? 	!=> 	>> 	!\"? 	!" [byte-optimize-delay-constants-math form 1 byte-optimize-predicate 0 logand progn delq copy-sequence car-safe logior -1] 5] byte-optimize-binary-predicate #[(form) "A@: A@@= A@9 A@>M 8:/ 8@=; 89> 8>C Ə@8A@E" [form quote (nil t) 2 nil (byte-code "\n!D" [quote eval form] 3) ((error form))] 3] byte-optimize-predicate #[(form) "	A\n. . \n@: \n@@=& \n@9?& \n@>\nA	 9 ȏ: 	*" [t form rest ok quote (nil t) nil (byte-code "\n!D" [quote eval form] 3) ((error form))] 4] byte-optimize-identity #[(form) "A AA A@AGAGU  Ă! #" [form byte-compile-warn "identity called with %d arg%s, but requires 1" 1 "" "s"] 5] identity + * - / max min = eq eql equal string= string-equal < > <= >= 1+ 1- not null memq consp listp symbolp stringp string< string-lessp logand logior logxor lognot car cdr car-safe cdr-safe quote byte-optimize-quote #[(form) "A@: A@9 A@> A@" [form (nil t)] 2] byte-optimize-zerop #[(form) "	A@! 	! 	A@E	" [numberp form eval byte-compile-delete-errors = 0] 3] zerop byte-optimize-and #[(form) "A?6 >) !A@  A \"!EAA3 A@!" [form nil progn byte-optimize-and copy-sequence setcdr byte-optimize-predicate] 7] byte-optimize-or #[(form) "	> 	!\"	AAB @:% @@=/ @92 @= 	!@	>\" 	AAN 	!Q 	A@)" [nil form delq copy-sequence rest quote t setcdr byte-optimize-predicate] 5] byte-optimize-cond #[(form) "A\" 	!\" A>$ !\"	A 	@!:? 	@!@=M 	@!9P 	@!=& 	A=z 	@As 	@AAl 	@ABv 	@A@v 	@@ 	A !	@>\"' )!= A@: @A @@@AAB!E )" [nil rest assq form delq copy-sequence car-safe quote t progn setcdr cond clauses or byte-optimize-cond] 6] byte-optimize-if #[(form) "A@: 	@= 	9 	=! 8 	; \"5 \"B 8 8X \"\"T 	8E  8e \" 	D\"y \"B| 8E 	E)" [form clause quote t 2 nthcdr 4 progn 3 equal (nil) if not nil] 7] byte-optimize-while #[(form) "A@ " [form] 1] and or cond if while /= byte-compile-negation-optimizer atom nlistp byte-optimize-funcall #[(form) "A@	!> 	A@AAB )" [form fn car-safe (quote function)] 2] byte-optimize-apply #[(form) "A@GS8	 	!=C 	A@<8 AA!A!\nD	A@\"#)@ 	!\"φD *" [form last fn car-safe quote nreverse reverse butlast nconc funcall mapcar #[(x) "	D" [quote x] 2] byte-compile-warn "last arg to apply can't be a literal atom: %s" prin1-to-string nil] 6] funcall apply let byte-optimize-letX let* #[(form) "A@ AAB8 \" @=0 A@\"\"#A@!A!@A@F)" [form progn 2 nthcdr 3 let append (progn) mapcar car cdr (nil) reverse binds let* nil] 7] nth byte-optimize-nth #[(form) "A@> A@U 8 8DD!" [form (0 1) car 0 2 cdr byte-optimize-predicate] 4] nthcdr byte-optimize-nthcdr #[(form) "A@> !% 8	S!$ D )" [form count (0 1 2) byte-optimize-predicate 2 natnump cdr] 4] (% * + / /= 1+ < <= = > >= append aref ash assoc assq boundp buffer-file-name buffer-local-variables buffer-modified-p buffer-substring capitalize car cdr concat coordinates-in-window-p copy-marker count-lines documentation downcase elt fboundp featurep file-directory-p file-exists-p file-locked-p file-name-absolute-p file-newer-than-file-p file-readable-p file-symlink-p file-writable-p format get get-buffer get-buffer-window getenv get-file-buffer length logand logior lognot logxor lsh marker-buffer max member memq min mod next-window nth nthcdr previous-window rassq regexp-quote reverse string< string= string-lessp string-equal substring user-variable-p window-buffer window-edges window-height window-hscroll window-width zerop) (arrayp atom bobp bolp buffer-end buffer-list buffer-size buffer-string bufferp char-or-string-p commandp cons consp current-buffer dot dot-marker eobp eolp eq eql equal get-largest-window identity integerp integer-or-marker-p interactive-p keymapp list listp make-marker mark mark-marker markerp minibuffer-window natnump nlistp not null numberp one-window-p point point-marker processp selected-window sequencep stringp subrp symbolp syntax-table-p vector vectorp windowp) side-effect-and-error-free-fns side-effect-free-fns side-effect-free t error-free byte-compile-splice-in-already-compiled-code #[(form) ">\n !A@8#!8\\\n]\nT" [byte-optimize (t lap) byte-compile-normal-call form byte-inline-lapcode byte-decompile-bytecode-1 2 t byte-compile-depth 3 byte-compile-maxdepth] 5] byte-code byte-compile (byte-constant byte-constant2 byte-varref byte-varset byte-varbind) byte-constref-ops] 5)
(defalias 'disassemble-offset #[nil "	WG \"\"=# THE =D THTH\"\\E )YV ZY} X} THTH\"\\Y X TH" [op byte-nth logand 7 tem 248 6 ptr bytes lsh 8 byte-constant byte-constant2 byte-goto-if-not-nil-else-pop byte-listN byte-insertN] 4 "\
Don't call this!"])
(defalias 'byte-decompile-bytecode #[(bytes constvec) "\"+" [nil 0 byte-compile-tag-number byte-compile-variables byte-compile-constants byte-decompile-bytecode-1 bytes constvec] 3 "\
Turns BYTECODE into lapcode, refering to CONSTVEC."])
(byte-code "MB\n\n\"" [byte-decompile-bytecode-1 #[(bytes constvec &optional make-splicable) "G	\nU H H>^ 	\"X  B	B	@A =k s > H= ; \" \" CB@ \" CB@  = SU     BBBT! 0@@	\"'ABAB\"	\"	AA)	<	\"@A@IAUBB!\"." [bytes 0 nil retcount endtag tmp lap offset op tags tag optr ptr length disassemble-offset byte-code-vector byte-goto-ops assq byte-compile-make-tag byte-constant2 byte-constant byte-constref-ops constvec assoc byte-compile-constants byte-compile-variables make-splicable byte-return byte-goto rest setcdr delq error "optimizer error: missed tags %s" mapcar cdr nreverse] 12] TAG byte-goto-ops byte-tagref-ops (byte-goto-if-nil byte-goto-if-not-nil byte-goto-if-nil-else-pop byte-goto-if-not-nil-else-pop) byte-conditional-ops (byte-constant byte-dup byte-symbolp byte-consp byte-stringp byte-listp byte-numberp byte-integerp byte-eq byte-equal byte-not byte-cons byte-list1 byte-list2 byte-interactive-p "Byte-codes that can be moved past an unbind.") byte-after-unbind-ops (byte-constant byte-dup byte-symbolp byte-consp byte-stringp byte-listp byte-integerp byte-numberp byte-eq byte-equal byte-not byte-car-safe byte-cdr-safe byte-cons byte-list1 byte-list2 byte-point byte-point-max byte-point-min byte-following-char byte-preceding-char byte-current-column byte-eolp byte-eobp byte-bolp byte-bobp byte-current-buffer byte-interactive-p) byte-compile-side-effect-and-error-free-ops nconc (byte-varref byte-nth byte-memq byte-car byte-cdr byte-length byte-aref byte-symbol-value byte-get byte-concat2 byte-concat3 byte-sub1 byte-add1 byte-eqlsign byte-gtr byte-lss byte-leq byte-geq byte-diff byte-negate byte-plus byte-max byte-min byte-mult byte-char-after byte-char-syntax byte-buffer-substring byte-string= byte-string< byte-nthcdr byte-elt byte-member byte-assq byte-quo byte-rem) byte-compile-side-effect-free-ops] 3)
(defconst byte-boolean-vars (quote (abbrev-all-caps abbrevs-changed byte-metering-on check-protected-fields completion-auto-help completion-ignore-case cursor-in-echo-area debug-on-next-call debug-on-quit defining-kbd-macro delete-exited-processes enable-recursive-minibuffers indent-tabs-mode insert-default-directory inverse-video load-in-progress menu-prompting mode-line-inverse-video no-redraw-on-reenter noninteractive parse-sexp-ignore-comments pop-up-frames pop-up-windows print-escape-newlines print-escape-newlines truncate-partial-width-windows visible-bell vms-stmlf-recfm words-include-escapes x-save-under)) "\
DEFVAR_BOOL variables.  Giving these any non-nil value sets them to t.
If this does not enumerate all DEFVAR_BOOL variables, the byte-optimizer
may generate incorrect code.")
(defalias 'byte-optimize-lapcode #[(lap &optional for-effect) "  	\n\n=F >F !\n\n/ \n@\nA@\n8@= @> @JH	\nA\n	U > \"\"\"\n	U > \"\"\n	U > \"\"\"\n!\n@&>uA=u@=\"	<@)>4ى	\"\"<8\">o,o>o/01A@A@	!A@%!+\n@=1AA=1@>1A@8>	@=\n@>	A@>A=\"C=B=@	>@	B&@\"	\"\n>$@\"@ \"\"\n@@ =t@=t@A >t>]ՁB #\nA\n\"\"\n@C =@D =@E =>ՁF @D =E D AB#@D =E D \"\"\n@D =@E =H@=HA=H@D =E D G>2ՁH GAB&\"G\")\n@=@I>@D =m@J =tA@yA@?>ՁK #\nA\n\"\"@)>>ՁL AB$\">ՁL AB$\"\n@=~\nA	@@@ =	A	A	@A=~	@@=~M >dN O\nA	=LAOP PO4>cՁQ OO&)	@@ \"	@\"	\n\n@R =@R =S >,>/01T A@A@#!+U \"\">A\"\n@R =AU \"AV >3,3>3/01W A@\"!+\"\n@X >(@Y >(\n	Z >[O\\]	A		@@R =\\j	@[B[O^ PO]T]j\\	@@R =_ 	@A\"	@N `]a Wb Ձc Od Qe f [!``E\"$>Ձg ]UN h ``&)i \n	\",\n@j =d@k>d>OՁl %\n\"\nA\"\n@j =@m >AWAS\"U\n\"@n =\nB\"\">Ձl @ATB@n =\n@\nA@AU@n =\nA@N %\n@&>dA>A@	@o >d	=\n@=1	@=\n>DՁp @	$	@q =Vq \"	A\"\n@r >A>A	@@s >	@=	@@t \"@>@\"A\">\nՁu @$\nR 	8@=	v  	AB\">Ձw @A@$A@\"	A@\"\n@=@=A>A	@@x >	@=	@@A@Py Sz >>lՁ{ %@\"A\"\nB\n>Ձ| #R 	8@=	v  	AB\"	A@\"\"\n@} =b	@=b	A\n>b	A>A	@@=b		@AA=b	A@8>b	v  ~>;	Ձ AA@	@AA@	@~A@@ ~B&\n@ B\nAB\"	~\"	AB\")\n@=\n@R =\nA>A	@A=\n	@@ >\nv  ~>	Ձ A@AA@	@	@@ \"A~B~A@&	~\"	AB\"	@@J =	\n=\"	C=B=@B\nAB\"	@@ >A@\")\nA\nO =\nq\n@\nA@@>e\nA=T\nA>e\nABe\nA=>e\nA=B=@=\n\n8@=\nA\n8@=\n@ >\n>\nՁ &\nAA@AB\"\nA@ B\"h@ >\"\n		A	@@@ =\nA	@A=	@	@@=		@ B\"\nh>hՁ $h@j =h@j =h>RՁL j AA\\B$\"AA\\\"\nA\n$\n\\." [nil first-time 0 byte-compile-delete-errors byte-compile-side-effect-free-ops byte-compile-side-effect-and-error-free-ops side-effect-free tmp3 tmp2 tmp rest add-depth keep-going off2 lap2 off1 lap1 off0 lap0 byte-optimize-log (t byte) byte-compile-log-lap-1 "  ---- next pass" lap 2 byte-discard t byte-stack+-info 1 "  %s discard	-->	<deleted>" delq "  %s discard	-->	<deleted> discard" -1 "  %s discard	-->	discard discard" setcar setcdr error "Optimizer error: too much on the stack" byte-goto-ops byte-goto "<deleted>" byte-goto-always-pop-ops "Depth conflict at tag %d" (t byte) byte-optimize (t source) 4 print-length print-level print-escape-newlines byte-compile-log-1 format "  (goto %s) %s:	-->	%s %s:" prin1-to-string byte-varref (byte-varset byte-varbind) byte-boolean-vars byte-constant (byte-constant byte-dup) (nil t) assq byte-compile-constants "  %s %s %s	-->	%s %s %s" "  %s %s	-->	dup %s" byte-dup (byte-varset byte-varbind) "  dup %s discard	-->	%s" byte-not byte-goto-if-nil byte-goto-if-not-nil "  not %s	-->	%s" inverse "  %s %s %s:	-->	%s %s:" byte-conditional-ops byte-goto-if-nil-else-pop "  %s %s	-->	<deleted>" "  %s %s	-->	%s" (t byte) "" str " dup" "  %s%s %s	-->	%s%s dup" TAG (t byte) "  adjascent tags %d and %d merged" rassq (t byte) "  unused tag %d removed" (byte-goto byte-return) (TAG nil) (t lap) deleted opt-p i " %s" "%d:" tagstr 6 apply "  %s" " %s	-->	%s <deleted> %s" nconc nreverse "  %s <%d unreachable op%s> %s	-->	%s <deleted> %s" "s" rplacd byte-unbind byte-after-unbind-ops "  %s %s	-->	%s %s" (byte-varbind byte-save-excursion byte-save-restriction) byte-varbind (byte-goto byte-return) "  %s [%s]	-->	%s" byte-return (byte-goto-if-nil-else-pop byte-goto-if-not-nil-else-pop) (byte-discard byte-goto-if-nil byte-goto-if-not-nil byte-goto-if-nil-else-pop byte-goto-if-not-nil-else-pop) ((byte-goto-if-nil-else-pop byte-goto-if-nil) (byte-goto-if-not-nil-else-pop byte-goto-if-not-nil)) "  %s-else-pop [%s]	-->	%s" byte-compile-make-tag "  %s [%s]	-->	%s <skip>" (byte-discard byte-goto-if-nil byte-goto-if-not-nil byte-goto-if-nil-else-pop byte-goto-if-not-nil-else-pop) (byte-goto-if-nil byte-goto-if-nil-else-pop) (byte-goto-if-not-nil byte-goto-if-not-nil-else-pop) "  %s goto [%s]	-->	%s %s" "  %s goto [%s]	-->	<deleted> goto <skip>" byte-varset newtag "  %s: %s ... %s %s	-->	%s: %s %s: ... %s %s %s" (byte-goto byte-goto-if-nil byte-goto-if-not-nil byte-goto-if-nil-else-pop) "%s %s: ... %s: %s	-->	%s ... %s:" ((byte-goto-if-nil . byte-goto-if-not-nil) (byte-goto-if-not-nil . byte-goto-if-nil) (byte-goto-if-nil-else-pop . byte-goto-if-not-nil-else-pop) (byte-goto-if-not-nil-else-pop . byte-goto-if-nil-else-pop)) (byte-goto-if-nil-else-pop byte-goto-if-not-nil byte-goto-if-nil byte-goto-if-not-nil byte-goto byte-goto) byte-compile-variables byte-constref-ops (byte-varbind byte-varset) "  %s %s %s	-->	%s dup %s" (byte-constant byte-varref) "  %s [dup/%s]... %s	-->	%s dup..." byte-compile-maxdepth] 14 "\
Simple peephole optimizer.  LAP is both modified and returned."])
(provide (quote byte-optimize))
