IRFunction.st
changeset 37 be8c2dd09dff
parent 30 1b7ff9c8c40b
child 41 f3898a3b378d
equal deleted inserted replaced
36:1bfd09c6b3d8 37:be8c2dd09dff
    48     self tempKeys: keys, new.
    48     self tempKeys: keys, new.
    49 
    49 
    50     "Modified: / 12-08-2009 / 09:22:05 / Jan Vrany <vranyj1@fel.cvut.cz>"
    50     "Modified: / 12-08-2009 / 09:22:05 / Jan Vrany <vranyj1@fel.cvut.cz>"
    51 !
    51 !
    52 
    52 
    53 addTempsIfNotDefined: temps
       
    54 
       
    55     | ir tempsToAdd |
       
    56     ir := self.
       
    57     tempsToAdd := temps asSet.
       
    58     [ ir isNil ] whileFalse: 
       
    59         [ir tempNames do:
       
    60             [:temp|
       
    61             (tempsToAdd includes:temp)
       
    62                 ifTrue:[tempsToAdd remove: temp]].
       
    63         ir := ir environmentIr].
       
    64     tempsToAdd isEmpty ifTrue:[^self].
       
    65     self addTemps: tempsToAdd
       
    66 
       
    67     "Created: / 23-03-2010 / 13:51:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
    68 !
       
    69 
       
    70 additionalLiterals
    53 additionalLiterals
    71 	^additionalLiterals.
    54 	^additionalLiterals.
    72 !
    55 !
    73 
    56 
    74 allInstructions
    57 allInstructions
   106 	^self allInstructionsMatching: [:bc | bc isTempRead].
    89 	^self allInstructionsMatching: [:bc | bc isTempRead].
   107 !
    90 !
   108 
    91 
   109 allTempWriteInstructions
    92 allTempWriteInstructions
   110 	^self allInstructionsMatching: [:bc | bc isTempStore].
    93 	^self allInstructionsMatching: [:bc | bc isTempStore].
   111 !
       
   112 
       
   113 environmentIr
       
   114     ^ environmentIr
       
   115 !
    94 !
   116 
    95 
   117 ir
    96 ir
   118 	^self.
    97 	^self.
   119 !
    98 !
   193 !IRFunction methodsFor:'debugging support'!
   172 !IRFunction methodsFor:'debugging support'!
   194 
   173 
   195 inspector2TabIRCode
   174 inspector2TabIRCode
   196 
   175 
   197     ^Tools::Inspector2Tab new
   176     ^Tools::Inspector2Tab new
   198         label: 'IR Code';
   177 	label: 'IR Code';
   199         priority: 75;
   178 	priority: 75;
   200         text: self longPrintString.
   179 	view: ((ScrollableView for:TextView) contents: self longPrintString; yourself)
   201 
   180 
   202     "Created: / 11-06-2008 / 01:05:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
   181     "Created: / 11-06-2008 / 01:05:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
   203     "Modified: / 15-02-2010 / 13:04:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
   204 ! !
   182 ! !
   205 
   183 
   206 !IRFunction methodsFor:'decompiling'!
   184 !IRFunction methodsFor:'decompiling'!
   207 
   185 
   208 ast
   186 ast
   498 ! !
   476 ! !
   499 
   477 
   500 !IRFunction class methodsFor:'documentation'!
   478 !IRFunction class methodsFor:'documentation'!
   501 
   479 
   502 version
   480 version
   503     ^ '$Header: /cvs/stx/cvut/stx/goodies/newcompiler/IRFunction.st,v 1.4 2009/10/08 11:59:08 fm Exp $'
   481     ^ '$Id$'
   504 !
   482 !
   505 
   483 
   506 version_CVS
   484 version_CVS
   507     ^ '$Header: /cvs/stx/cvut/stx/goodies/newcompiler/IRFunction.st,v 1.4 2009/10/08 11:59:08 fm Exp $'
   485     ^ '§Header: /cvs/stx/cvut/stx/goodies/newcompiler/IRFunction.st,v 1.4 2009/10/08 11:59:08 fm Exp §'
   508 !
   486 !
   509 
   487 
   510 version_SVN
   488 version_SVN
   511     ^ '$Id$'
   489     ^ '$Id::                                                                                                                        $'
   512 ! !
   490 ! !