- Dec 19, 2012
-
-
Richard Smith authored
too). When instantiating a direct-initializer, if we find it has zero arguments, produce an empty ParenListExpr rather than returning a null expression. llvm-svn: 170490
-
Richard Smith authored
copy-list-initialization (and doesn't add an additional copy step): Fill in the ListInitialization bit when creating a CXXConstructExpr. Use it when instantiating initializers in order to correctly handle instantiation of copy-list-initialization. Teach TreeTransform that function arguments are initializations, and so need this special treatment too. Finally, remove some hacks which were working around SubstInitializer's shortcomings. llvm-svn: 170489
-
Ted Kremenek authored
This is plumbing needed for later functionality changes. llvm-svn: 170488
-
Ted Kremenek authored
llvm-svn: 170487
-
David Blaikie authored
Change DeclContextLookup(Const)Result to (Mutable)ArrayRef<NamedDecl*>, as per review discussion in r170365 This does limit these typedefs to being sequences, but no current usage requires them to be contiguous (we could expand this to a more general iterator pair range concept at some point). Also, it'd be nice if SmallVector were constructible directly from an ArrayRef but this is a bit tricky since ArrayRef depends on SmallVectorBaseImpl for the inverse conversion. (& generalizing over all range-like things, while nice, would require some nontrivial SFINAE I haven't thought about yet) llvm-svn: 170482
-
Eli Friedman authored
of assignment to a bool bitfield. PR14638. llvm-svn: 170480
-
Eli Friedman authored
against itself. PR14489. llvm-svn: 170474
-
Nadav Rotem authored
llvm-svn: 170472
-
Fariborz Jahanian authored
use clang's formatter. Currently, formatter is used to format declaration tags for xml comments. Since formatter is in flux and its change will break several of the clang comment tests, only a single tests is formatted using this facility. Doug has reviewed and approved it for check-in. llvm-svn: 170467
-
Douglas Gregor authored
llvm-svn: 170466
-
- Dec 18, 2012
-
-
Eli Bendersky authored
llvm-svn: 170461
-
Daniel Jasper authored
We used to format initializers like this (with a sort of hacky implementation): Constructor() : Val1(A), Val2(B) { and now format like this (with a somewhat better solution): Constructor() : Val1(A), Val2(B) { assuming this would not fit on a single line. Also added tests. As a side effect we now first analyze whether an UnwrappedLine needs to be split at all. If not, not splitting it is the best solution by definition. As this should be a very common case in normal code, not exploring the entire solution space can provide significant speedup. llvm-svn: 170457
-
Meador Inge authored
PR 14529 was opened because neither Clang or LLVM was expanding calls to creal* or cimag* into instructions that just load the respective complex field. After some discussion, it was not considered realistic to do this in LLVM because of the platform specific way complex types are expanded. Thus a way to solve this in Clang was pursued. GCC does a similar expansion. This patch adds the feature to Clang by making the creal* and cimag* functions library builtins and modifying the builtin code generator to look for the new builtin types. llvm-svn: 170455
-
Eli Bendersky authored
llvm-svn: 170440
-
Guy Benyei authored
Add OpenCL images as clang builtin types. llvm-svn: 170432
-
Guy Benyei authored
Revert changes from r170428, as I accidentally changed the line endings of these files to Windows style. llvm-svn: 170431
-
Guy Benyei authored
llvm-svn: 170428
-
David Chisnall authored
llvm-svn: 170425
-
Rafael Espindola authored
llvm-svn: 170408
-
Rafael Espindola authored
This fixes the storage class of extern decls that are merged with file level statics. The patch also fixes the linkage computation so that they are considered internal. llvm-svn: 170406
-
Richard Smith authored
llvm-svn: 170403
-
Eli Friedman authored
(This change only affects ObjC.) <rdar://problem/12857117>. llvm-svn: 170402
-
Anders Carlsson authored
When warning about a missing prototype because a function declaration is missing 'void', insert a fixit to add the void. llvm-svn: 170399
-
rdar://problem/12847524Eli Friedman authored
I'm not really happy with this fix, but I'm confident it's correct. llvm-svn: 170397
-
Eric Christopher authored
for location information. Part of PR14624 llvm-svn: 170391
-
Richard Smith authored
to an object outside its lifetime does not have undefined behavior. llvm-svn: 170387
-
- Dec 17, 2012
-
-
Rafael Espindola authored
An extern declaration following a tentative definition should not itself be considered a tentative definition. Fixes pr14614. llvm-svn: 170377
-
Chandler Carruth authored
This also requires adding support to -cc1as for passing the detecting PWD down through LLVM's debug info (which in turn required the LLVM change in r170371). The test case is weak (we only test the driver behavior) because there is currently to infrastructure for running cc1as in the test suite. So those four lines are untested (much like all other lines in that file), but we have a test for the same pattern using llvm-mc in the LLVM repository. llvm-svn: 170373
-
Argyrios Kyrtzidis authored
llvm-svn: 170364
-
Argyrios Kyrtzidis authored
llvm-svn: 170363
-
Anna Zaks authored
llvm-svn: 170362
-
Anna Zaks authored
performance heuristic After inlining a function with more than 13 basic blocks 32 times, we are not going to inline it anymore. The idea is that inlining large functions leads to drastic performance implications. Since the function has already been inlined, we know that we've analyzed it in many contexts. The following metrics are used: - Large function is a function with more than 13 basic blocks (we should switch to another metric, like cyclomatic complexity) - We consider that we've inlined a function many times if it's been inlined 32 times. This number is configurable with -analyzer-config max-times-inline-large=xx This heuristic addresses a performance regression introduced with inlining on one benchmark. The analyzer on this benchmark became 60 times slower with inlining turned on. The heuristic allows us to analyze it in 24% of the time. The performance improvements on the other benchmarks I've tested with are much lower - under 10%, which is expected. llvm-svn: 170361
-
David Chisnall authored
llvm-svn: 170354
-
Benjamin Kramer authored
This reverts commit r170344. Doesn't even compile. llvm-svn: 170351
-
David Chisnall authored
llvm-svn: 170344
-
Daniel Jasper authored
avoided. This required a minor modification of the memoization as now the "CurrentPenalty" depends on whether or not we break before the current token. Therefore, the CurrentPenalty should not be memoized but added after retrieving a value from memory. This should not affect the runtime behavior. llvm-svn: 170337
-
Daniel Jasper authored
More specifically: - Improve formatting of static initializers. - Fix formatting of lines comments in enums. - Fix formmating of trailing line comments. llvm-svn: 170316
-
Dmitry Vyukov authored
llvm-svn: 170314
-
Bill Schmidt authored
incompatibility with how complex values are returned. It is sufficient to flag all complex types as direct rather than indirect. A new test case is provided that checks correct IR generation for the various supported flavors of _Complex. llvm-svn: 170302
-
Nico Weber authored
llvm-svn: 170297
-