about summary refs log tree commit diff
path: root/src/rustc/back
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2012-03-19 14:06:59 -0700
committerGraydon Hoare <graydon@mozilla.com>2012-03-19 14:29:39 -0700
commit869b2d706493549e1fc4a621fe9a44fa58d83c5c (patch)
tree882f79b4939e5ac60fa54a95c9be70a3d10f3605 /src/rustc/back
parentbbfa08d9474bd08b03718639ad82315d66097e6e (diff)
downloadrust-869b2d706493549e1fc4a621fe9a44fa58d83c5c.tar.gz
rust-869b2d706493549e1fc4a621fe9a44fa58d83c5c.zip
Send string concatenation to specialized upcall, shave 17s off librustc compile time.
Diffstat (limited to 'src/rustc/back')
-rw-r--r--src/rustc/back/upcall.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/rustc/back/upcall.rs b/src/rustc/back/upcall.rs
index a0bb2c5937d..cf862d3ca44 100644
--- a/src/rustc/back/upcall.rs
+++ b/src/rustc/back/upcall.rs
@@ -18,6 +18,7 @@ type upcalls =
      mark: ValueRef,
      vec_grow: ValueRef,
      vec_push: ValueRef,
+     str_concat: ValueRef,
      cmp_type: ValueRef,
      log_type: ValueRef,
      alloc_c_stack: ValueRef,
@@ -69,6 +70,9 @@ fn declare_upcalls(targ_cfg: @session::config,
               dvi("vec_push",
                 [T_ptr(T_ptr(opaque_vec_t)), T_ptr(tydesc_type),
                  T_ptr(T_i8())]),
+          str_concat:
+              d("str_concat", [T_ptr(opaque_vec_t), T_ptr(opaque_vec_t)],
+                T_ptr(opaque_vec_t)),
           cmp_type:
               dv("cmp_type",
                  [T_ptr(T_i1()), T_ptr(tydesc_type),