Opened 11 years ago

Closed 11 years ago

#303 closed enhancement (fixed)

useless marking/unmarking reg as imm

Reported by: rme Owned by: rme
Priority: minor Milestone: IA-32 port
Component: Compiler Version:
Keywords: Cc:

Description

The compiled code for the following function produces pointless mark-as-imm/mark-as-node vinsns. It shouldn't do that.

(defun rme-make-wsp ()
  (let ((str (make-string 6  :element-type 'base-char)))
    (set-schar str 0 #\Space)
    (set-schar str 1 #\^I)
    str))
 vinsns for NIL (after generation)
#<VINSN-LABEL 4>
#<ESTABLISH-FN>
#<CHECK-EXACT-NARGS 0>
#<SAVE-LISP-CONTEXT-NO-STACK-ARGS>
#<0 := LRI 1735>
#<SETUP-UVECTOR-ALLOCATION 0>
#<0 := LRI 26>
#<#<LREG 1 GPR {3}> := %ALLOCATE-UVECTOR>
#<VPUSH-REGISTER #<LREG 1 GPR {3}>>
#<#<LREG 4 GPR [1]> := VFRAME-LOAD 0 4>
#<#<LREG 5 GPR [6]> := LRI 0>
#<#<LREG 7 GPR [3]> := LOAD-CHARACTER-CONSTANT 32>
#<MARK-AS-IMM #<LREG 8 GPR {2}>>
#<TRAP-UNLESS-TYPECODE= #<LREG 4 GPR [1]> 199>
#<CHECK-MISC-BOUND #<LREG 5 GPR [6]> #<LREG 4 GPR [1]>>
#<MARK-AS-NODE #<LREG 8 GPR {2}>>
#<#<LREG 11 GPR {0}> := LRI 32>
#<MARK-AS-IMM #<LREG 12 GPR {2}>>
#<MISC-SET-C-U32 #<LREG 11 GPR {0}> #<LREG 4 GPR [1]> 0>
#<MARK-AS-NODE #<LREG 12 GPR {2}>>
#<#<LREG 14 GPR [1]> := VFRAME-LOAD 0 4>
#<#<LREG 15 GPR [6]> := LRI 4>
#<#<LREG 17 GPR [3]> := LOAD-CHARACTER-CONSTANT 9>
#<MARK-AS-IMM #<LREG 18 GPR {2}>>
#<TRAP-UNLESS-TYPECODE= #<LREG 14 GPR [1]> 199>
#<CHECK-MISC-BOUND #<LREG 15 GPR [6]> #<LREG 14 GPR [1]>>
#<MARK-AS-NODE #<LREG 18 GPR {2}>>
#<#<LREG 21 GPR {0}> := LRI 9>
#<MARK-AS-IMM #<LREG 22 GPR {2}>>
#<MISC-SET-C-U32 #<LREG 21 GPR {0}> #<LREG 14 GPR [1]> 1>
#<MARK-AS-NODE #<LREG 22 GPR {2}>>
#<#<LREG 0 GPR [3]> := VFRAME-LOAD 0 4>
#<POPJ>

Change History (1)

comment:1 Changed 11 years ago by rme

  • Resolution set to fixed
  • Status changed from new to closed

Should be fixed in r9583

Note: See TracTickets for help on using tickets.