comparison runtime/internal/lifetime.d @ 1506:76936858d1c6

Return `void*` from _d_allocclass so LLVM doesn't do weird things with it... This allows `-instcombine` followed by `-gvn` to do devirtualization, so add `-gvn` in strategic places in the default pass order.
author Frits van Bommel <fvbommel wxs.nl>
date Sat, 20 Jun 2009 11:39:13 +0200
parents d7ec997de427
children
comparison
equal deleted inserted replaced
1505:1e5a14691e77 1506:76936858d1c6
105 105
106 106
107 /** 107 /**
108 * 108 *
109 */ 109 */
110 extern (C) Object _d_allocclass(ClassInfo ci) 110 extern (C) void* _d_allocclass(ClassInfo ci)
111 { 111 {
112 void* p; 112 void* p;
113 113
114 debug(PRINTF2) printf("_d_allocclass(ci = %p, %s)\n", ci, cast(char *)ci.name.ptr); 114 debug(PRINTF2) printf("_d_allocclass(ci = %p, %s)\n", ci, cast(char *)ci.name.ptr);
115 /+ 115 /+
148 // initialize it 148 // initialize it
149 // ldc does this inline 149 // ldc does this inline
150 //(cast(byte*) p)[0 .. ci.init.length] = ci.init[]; 150 //(cast(byte*) p)[0 .. ci.init.length] = ci.init[];
151 151
152 debug(PRINTF) printf("initialization done\n"); 152 debug(PRINTF) printf("initialization done\n");
153 return cast(Object) p; 153 return p;
154 } 154 }
155 155
156 /** 156 /**
157 * 157 *
158 */ 158 */