]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/compiler/tree/propagation/known-words/known-words.factor
compiler.tree.propagation: Propagate length slot of primitive resize calls
[factor.git] / basis / compiler / tree / propagation / known-words / known-words.factor
index 5c54c9f56e4ca08fc85f634a8f9f106af09a655b..dad34ccf3efbb44173eeee4761b9b86eff127d4e 100644 (file)
@@ -391,3 +391,16 @@ generic-comparison-ops [
 \ tag [
     drop fixnum 0 num-types get [a,b) <class/interval-info>
 ] "outputs" set-word-prop
+
+! Primitive resize operations
+
+: propagate-resize-fixed-length-sequence ( n-info in-info class -- out-info )
+    nip <sequence-info> ;
+
+{ { resize-array array }
+  { resize-byte-array byte-array }
+  { resize-string string } }
+[
+    [ propagate-resize-fixed-length-sequence ] curry
+    "outputs" set-word-prop
+] assoc-each