diff gen/arrays.cpp @ 1480:b3ba2c6ff038

Use `llvm.memset` instead of `_d_array_init_i1` and `_d_array_init_i8`. This exposes what's happening to LLVM, and memset is probably faster than the runtime functions we were using anyway.
author Frits van Bommel <fvbommel wxs.nl>
date Sun, 07 Jun 2009 13:57:59 +0200
parents a5526b7a5ae6
children 0c8d6d345001
line wrap: on
line diff
--- a/gen/arrays.cpp	Sat Jun 06 20:16:13 2009 +0200
+++ b/gen/arrays.cpp	Sun Jun 07 13:57:59 2009 +0200
@@ -112,15 +112,16 @@
     switch (arrayelemty->ty)
     {
     case Tbool:
-        funcname = "_d_array_init_i1";
-        break;
+        val = gIR->ir->CreateZExt(val, LLType::Int8Ty, ".bool");
+        // fall through
 
     case Tvoid:
     case Tchar:
     case Tint8:
     case Tuns8:
-        funcname = "_d_array_init_i8";
-        break;
+        Logger::println("Using memset for array init");
+        DtoMemSet(ptr, val, dim);
+        return;
 
     case Twchar:
     case Tint16: