Browse Source

TIRInlinedVisitor. Compiler-IR clear of inlining.

Herby Vojčík 4 years ago
parent
commit
16ee1e6f21
4 changed files with 68 additions and 54 deletions
  1. 0 46
      lang/src/Compiler-IR.js
  2. 0 8
      lang/src/Compiler-IR.st
  3. 51 0
      lang/src/Compiler-Inlining.js
  4. 17 0
      lang/src/Compiler-Inlining.st

+ 0 - 46
lang/src/Compiler-IR.js

@@ -3533,52 +3533,6 @@ return $self._visitDagNode_(anIRDynamicDictionary);
 }; }),
 $globals.IRVisitor);
 
-$core.addMethod(
-$core.method({
-selector: "visitIRInlinedClosure:",
-protocol: "visiting",
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: ["anIRInlinedClosure"],
-source: "visitIRInlinedClosure: anIRInlinedClosure\x0a\x09^ self visitIRClosure: anIRInlinedClosure",
-referencedClasses: [],
-//>>excludeEnd("ide");
-pragmas: [],
-messageSends: ["visitIRClosure:"]
-}, function ($methodClass){ return function (anIRInlinedClosure){
-var self=this,$self=this;
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-return $core.withContext(function($ctx1) {
-//>>excludeEnd("ctx");
-return $self._visitIRClosure_(anIRInlinedClosure);
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedClosure:",{anIRInlinedClosure:anIRInlinedClosure})});
-//>>excludeEnd("ctx");
-}; }),
-$globals.IRVisitor);
-
-$core.addMethod(
-$core.method({
-selector: "visitIRInlinedSequence:",
-protocol: "visiting",
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: ["anIRInlinedSequence"],
-source: "visitIRInlinedSequence: anIRInlinedSequence\x0a\x09^ self visitIRSequence: anIRInlinedSequence",
-referencedClasses: [],
-//>>excludeEnd("ide");
-pragmas: [],
-messageSends: ["visitIRSequence:"]
-}, function ($methodClass){ return function (anIRInlinedSequence){
-var self=this,$self=this;
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-return $core.withContext(function($ctx1) {
-//>>excludeEnd("ctx");
-return $self._visitIRSequence_(anIRInlinedSequence);
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedSequence:",{anIRInlinedSequence:anIRInlinedSequence})});
-//>>excludeEnd("ctx");
-}; }),
-$globals.IRVisitor);
-
 $core.addMethod(
 $core.method({
 selector: "visitIRMethod:",

+ 0 - 8
lang/src/Compiler-IR.st

@@ -912,14 +912,6 @@ visitIRDynamicDictionary: anIRDynamicDictionary
 	^ self visitDagNode: anIRDynamicDictionary
 !
 
-visitIRInlinedClosure: anIRInlinedClosure
-	^ self visitIRClosure: anIRInlinedClosure
-!
-
-visitIRInlinedSequence: anIRInlinedSequence
-	^ self visitIRSequence: anIRInlinedSequence
-!
-
 visitIRMethod: anIRMethod
 	^ self visitDagNode: anIRMethod
 !

+ 51 - 0
lang/src/Compiler-Inlining.js

@@ -2309,6 +2309,57 @@ $core.addClass("InliningError", $globals.SemanticError, [], "Compiler-Inlining")
 $globals.InliningError.comment="Instances of InliningError are signaled when using an `InliningCodeGenerator`in a `Compiler`.";
 //>>excludeEnd("ide");
 
+
+$core.addTrait("TIRInlinedVisitor", "Compiler-Inlining");
+$core.addMethod(
+$core.method({
+selector: "visitIRInlinedClosure:",
+protocol: "visiting",
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: ["anIRInlinedClosure"],
+source: "visitIRInlinedClosure: anIRInlinedClosure\x0a\x09^ self visitIRClosure: anIRInlinedClosure",
+referencedClasses: [],
+//>>excludeEnd("ide");
+pragmas: [],
+messageSends: ["visitIRClosure:"]
+}, function ($methodClass){ return function (anIRInlinedClosure){
+var self=this,$self=this;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+return $self._visitIRClosure_(anIRInlinedClosure);
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedClosure:",{anIRInlinedClosure:anIRInlinedClosure})});
+//>>excludeEnd("ctx");
+}; }),
+$globals.TIRInlinedVisitor);
+
+$core.addMethod(
+$core.method({
+selector: "visitIRInlinedSequence:",
+protocol: "visiting",
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: ["anIRInlinedSequence"],
+source: "visitIRInlinedSequence: anIRInlinedSequence\x0a\x09^ self visitIRSequence: anIRInlinedSequence",
+referencedClasses: [],
+//>>excludeEnd("ide");
+pragmas: [],
+messageSends: ["visitIRSequence:"]
+}, function ($methodClass){ return function (anIRInlinedSequence){
+var self=this,$self=this;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+return $self._visitIRSequence_(anIRInlinedSequence);
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedSequence:",{anIRInlinedSequence:anIRInlinedSequence})});
+//>>excludeEnd("ctx");
+}; }),
+$globals.TIRInlinedVisitor);
+
+$core.setTraitComposition([{trait: $globals.TIRInlinedVisitor}], $globals.IRInliner);
+$core.setTraitComposition([{trait: $globals.TIRInlinedVisitor}], $globals.IRInliningJSTranslator);
+
 $core.addMethod(
 $core.method({
 selector: "asInlinedBlockResult",

+ 17 - 0
lang/src/Compiler-Inlining.st

@@ -601,6 +601,23 @@ SemanticError subclass: #InliningError
 !InliningError commentStamp!
 Instances of InliningError are signaled when using an `InliningCodeGenerator`in a `Compiler`.!
 
+Trait named: #TIRInlinedVisitor
+	package: 'Compiler-Inlining'!
+
+!TIRInlinedVisitor methodsFor: 'visiting'!
+
+visitIRInlinedClosure: anIRInlinedClosure
+	^ self visitIRClosure: anIRInlinedClosure
+!
+
+visitIRInlinedSequence: anIRInlinedSequence
+	^ self visitIRSequence: anIRInlinedSequence
+! !
+
+IRInliner setTraitComposition: {TIRInlinedVisitor} asTraitComposition!
+IRInliningJSTranslator setTraitComposition: {TIRInlinedVisitor} asTraitComposition!
+! !
+
 !IRBlockReturn methodsFor: '*Compiler-Inlining'!
 
 asInlinedBlockResult