- Feb 12, 2009
-
-
Evan Cheng authored
If availability info is kept when fallthrough into a bb, add the available registers to live-in set. llvm-svn: 64372
-
Daniel Dunbar authored
designating an object. llvm-svn: 64371
-
Daniel Dunbar authored
- Doesn't yet handle case where values are passed in mixed (general purpose & floating point) registers; otherwise largely functional. Code still needs some cleaning. Fixes: MultiSource/Applications/lua/lua MultiSource/Applications/siod/siod MultiSource/Applications/sqlite3/sqlite3 SingleSource/Regression/C/PR640 SingleSource/UnitTests/2003-07-09-SignedArgs SingleSource/UnitTests/2007-03-02-VaCopy gcc compat test suite results (Darwin x86-32 & -64): -- # of expected passes 1262 # of unexpected failures 56 # of unresolved testcases 34 # of unsupported tests 2 Compare to: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20090209/012050.html llvm-svn: 64370
-
Evan Cheng authored
Replace one of burr scheduling heuristic with something more sensible. Now calcMaxScratches simply compute the number of true data dependencies. This actually improve a couple of tests in dejagnu suite as many tests in llvm nightly test suite. llvm-svn: 64369
-
Daniel Dunbar authored
llvm-svn: 64368
-
Julien Lerouge authored
exceptions. llvm-svn: 64367
-
Julien Lerouge authored
llvm-svn: 64366
-
Ted Kremenek authored
llvm-svn: 64365
-
Chris Lattner authored
calls with the tail marker when inlining them through an invoke. Patch, testcase, and perfect analysis by Jay Foad! llvm-svn: 64364
-
Chris Lattner authored
llvm-svn: 64363
-
Chris Lattner authored
forget about already inserted expressions. llvm-svn: 64362
-
Chris Lattner authored
llvm-svn: 64361
-
Ted Kremenek authored
Add method 'isSingleton()' to ImmutableSet. This returns true if the set contains exactly one element. llvm-svn: 64359
-
Ted Kremenek authored
llvm-svn: 64356
-
Ted Kremenek authored
llvm-svn: 64355
-
Ted Kremenek authored
llvm-svn: 64354
-
Ted Kremenek authored
to use this stat information in the PTH file using a 'StatSysCallCache' object. Performance impact (Cocoa.h, PTH): - number of stat calls reduces from 1230 to 425 - fsyntax-only: time improves by 4.2% We can reduce the number of stat calls to almost zero by caching negative stat calls and directory stat calls in the PTH file as well. llvm-svn: 64353
-
Nick Lewycky authored
llvm-svn: 64352
-
Ted Kremenek authored
- set the 'StatSysCallCache' object using a setter method instead of FileManager's constructor. This allows the cache to be installed after the FileManager object is created. - Add 'file mode' to FileEntry (useful for stat caching) llvm-svn: 64351
-
Mike Stump authored
llvm-svn: 64350
-
Chris Lattner authored
similar logic in llvm-gcc and will hopefully be fixed soon. llvm-svn: 64349
-
Chris Lattner authored
llvm-svn: 64348
-
Douglas Gregor authored
llvm-svn: 64347
-
Anders Carlsson authored
llvm-svn: 64346
-
Ted Kremenek authored
for use by FileManager. FileManager now takes a StatSysCallCache* in its constructor (which defaults to NULL). This will be used for evaluating whether or not caching 'stat' system calls in PTH is a performance win. This shim adds no observable performance impact in the case where the 'StatSysCallCache*' is null. llvm-svn: 64345
-
Douglas Gregor authored
complex conversions where the conversion between the real types is an integral promotion. This is how G++ handles complex promotions for its complex integer extension. llvm-svn: 64344
-
Douglas Gregor authored
system. Since C99 doesn't have overloading and C++ doesn't have _Complex, there is no specification for this. Here's what I think makes sense. Complex conversions come in several flavors: - Complex promotions: a complex -> complex conversion where the underlying real-type conversion is a floating-point promotion. GCC seems to call this a promotion, EDG does something else. This is given "promotion" rank for determining the best viable function. - Complex conversions: a complex -> complex conversion that is not a complex promotion. This is given "conversion" rank for determining the best viable function. - Complex-real conversions: a real -> complex or complex -> real conversion. This is given "conversion" rank for determining the best viable function. These rules are the same for C99 (when using the "overloadable" attribute) and C++. However, there is one difference in the handling of floating-point promotions: in C99, float -> long double and double -> long double are considered promotions (so we give them "promotion" rank), while C++ considers these conversions ("conversion" rank). llvm-svn: 64343
-
Bill Wendling authored
llvm-svn: 64342
-
Fariborz Jahanian authored
All relevant dejagnu enocding tests pass in this mode. llvm-svn: 64341
-
Evan Cheng authored
llvm-svn: 64340
-
Evan Cheng authored
Remove a bogus assertion. It's possible a live-in available value is used by a previous instruction. llvm-svn: 64339
-
Ted Kremenek authored
llvm-svn: 64338
-
Mike Stump authored
llvm-svn: 64337
-
Douglas Gregor authored
This commit adds a new attribute, "overloadable", that enables C++ function overloading in C. The attribute can only be added to function declarations, e.g., int *f(int) __attribute__((overloadable)); If the "overloadable" attribute exists on a function with a given name, *all* functions with that name (and in that scope) must have the "overloadable" attribute. Sets of overloaded functions with the "overloadable" attribute then follow the normal C++ rules for overloaded functions, e.g., overloads must have different parameter-type-lists from each other. When calling an overloaded function in C, we follow the same overloading rules as C++, with three extensions to the set of standard conversions: - A value of a given struct or union type T can be converted to the type T. This is just the identity conversion. (In C++, this would go through a copy constructor). - A value of pointer type T* can be converted to a value of type U* if T and U are compatible types. This conversion has Conversion rank (it's considered a pointer conversion in C). - A value of type T can be converted to a value of type U if T and U are compatible (and are not both pointer types). This conversion has Conversion rank (it's considered to be a new kind of conversion unique to C, a "compatible" conversion). Known defects (and, therefore, next steps): 1) The standard-conversion handling does not understand conversions involving _Complex or vector extensions, so it is likely to get these wrong. We need to add these conversions. 2) All overloadable functions with the same name will have the same linkage name, which means we'll get a collision in the linker (if not sooner). We'll need to mangle the names of these functions. llvm-svn: 64336
-
- Feb 11, 2009
-
-
Nate Begeman authored
the two non-mask arguments to a shufflevector must be the same width, but they do not have to be the same width as the result value. llvm-svn: 64335
-
Fariborz Jahanian authored
all but one dejagnu encoding tests for darwin pass in nonfragile abi mode. llvm-svn: 64334
-
Daniel Dunbar authored
case on x86_64. llvm-svn: 64333
-
Dale Johannesen authored
reflect reality. Acknowledgements to John Clements for prodding me into this. llvm-svn: 64332
-
Gabor Greif authored
add efficient versions of op_begin and op_end. Up to now always those from User have been called, which in most cases follow an indirection (OperandList) even if the exact Instruction type is known. llvm-svn: 64331
-
Steve Naroff authored
llvm-svn: 64330
-