- Dec 21, 2008
-
-
Anders Carlsson authored
llvm-svn: 61296
-
Anders Carlsson authored
llvm-svn: 61295
-
Douglas Gregor authored
which can refer to static data members, enumerators, and member functions as well as to non-static data members. Implement correct lvalue computation for member references in C++. Compute the result type of non-static data members of reference type properly. llvm-svn: 61294
-
Fariborz Jahanian authored
using it in ObjC's method parameter encoding. llvm-svn: 61293
-
Eli Friedman authored
warning by using an unsigned index. llvm-svn: 61292
-
Eli Friedman authored
simple test that actually does VLA codegen. Note that despite the fact that the alloca isn't in the entry block, it should dominate all uses; this is guaranteed by the restrictions on goto into VLA scope in C99. llvm-svn: 61291
-
- Dec 20, 2008
-
-
Anders Carlsson authored
llvm-svn: 61290
-
Anders Carlsson authored
Check the entire StackSaveValues stack for VLAs when dealing with goto and return statements. Noticed by Eli Friedman. llvm-svn: 61289
-
Anders Carlsson authored
llvm-svn: 61288
-
Fariborz Jahanian authored
llvm-svn: 61287
-
Fariborz Jahanian authored
keep track of the original parameter decl. types. This is work in progress. llvm-svn: 61286
-
Anders Carlsson authored
Emit the size even if the declared type is a variably modified type. This lets us handle void f(int n) { int (*a)[n]; printf("size: %d\n", sizeof(*a)); } llvm-svn: 61285
-
Anders Carlsson authored
llvm-svn: 61284
-
Anders Carlsson authored
llvm-svn: 61283
-
Fariborz Jahanian authored
full encoding of the class which has an ivar of pointer to this class. Its name is encoded in the type for the ivar in the ivar-list metadata. This patch conforms to the above rule. llvm-svn: 61282
-
Dan Gohman authored
constant shift count that doesn't fit in the shift instruction's immediate field. This fixes PR3242. llvm-svn: 61281
-
Dan Gohman authored
llvm-svn: 61280
-
Nick Lewycky authored
our optz'n will apply to it, then build the replacement vector only if needed. llvm-svn: 61279
-
Dan Gohman authored
can be static member functions. llvm-svn: 61278
-
Dan Gohman authored
llvm-svn: 61277
-
Dan Gohman authored
and setDepthDirty(), respectively. This fixes PR3241. llvm-svn: 61276
-
Sebastian Redl authored
llvm-svn: 61275
-
Zhongxing Xu authored
* Now Bind() methods take and return GRState* because binding could also alter GDM. * No variables are initialized except those declared with initial values. * failed C test cases are due to bugs in RemoveDeadBindings(), which removes constraints that is still alive. This will be fixed in later patch. * default value of array and struct regions will be implemented in later patch. llvm-svn: 61274
-
Ted Kremenek authored
llvm-svn: 61273
-
rdar://problem/6454568Ted Kremenek authored
Fix <rdar://problem/6454568>: BugReporter should correctly handle switch statements with no default case. llvm-svn: 61270
-
Chris Lattner authored
llvm-svn: 61269
-
Fariborz Jahanian authored
@encode of classes and bitfields. llvm-svn: 61268
-
- Dec 19, 2008
-
-
Bill Wendling authored
llvm-svn: 61265
-
Bill Wendling authored
llvm-svn: 61264
-
Dan Gohman authored
warnings on compilers that warn about such things. llvm-svn: 61263
-
Anders Carlsson authored
llvm-svn: 61260
-
Evan Cheng authored
Fix PR3149. If an early clobber def is a physical register and it is tied to an input operand, it effectively extends the live range of the physical register. Currently we do not have a good way to represent this. 172 %ECX<def> = MOV32rr %reg1039<kill> 180 INLINEASM <es:subl $5,$1 sbbl $3,$0>, 10, %EAX<def>, 14, %ECX<earlyclobber,def>, 9, %EAX<kill>, 36, <fi#0>, 1, %reg0, 0, 9, %ECX<kill>, 36, <fi#1>, 1, %reg0, 0 188 %EAX<def> = MOV32rr %EAX<kill> 196 %ECX<def> = MOV32rr %ECX<kill> 204 %ECX<def> = MOV32rr %ECX<kill> 212 %EAX<def> = MOV32rr %EAX<kill> 220 %EAX<def> = MOV32rr %EAX 228 %reg1039<def> = MOV32rr %ECX<kill> The early clobber operand ties ECX input to the ECX def. The live interval of ECX is represented as this: %reg20,inf = [46,47:1)[174,230:0) 0@174-(230) 1@46-(47) The right way to represent this is something like %reg20,inf = [46,47:2)[174,182:1)[181:230:0) 0@174-(182) 1@181-230 @2@46-(47) Of course that won't work since that means overlapping live ranges defined by two val#. The workaround for now is to add a bit to val# which says the val# is redefined by a early clobber def somewhere. This prevents the move at 228 from being optimized away by SimpleRegisterCoalescing::AdjustCopiesBackFrom. llvm-svn: 61259
-
Anders Carlsson authored
llvm-svn: 61258
-
John Criswell authored
version number assertions. llvm-svn: 61257
-
Douglas Gregor authored
llvm-svn: 61256
-
-
Bill Wendling authored
llvm-svn: 61254
-
Gordon Henriksen authored
llvm-svn: 61253
-
Gordon Henriksen authored
This operation can be used to build dyn_cast, isa, and cast. llvm-svn: 61252
-
Chris Lattner authored
Patch by Lukasz Janyst! llvm-svn: 61251
-