- Jan 03, 2014
-
-
Rafael Espindola authored
Before this patch any program that wanted to know the final symbol name of a GlobalValue had to link with Target. This patch implements a compromise solution where the mangler uses DataLayout. This way, any tool that already links with Target (llc, clang) gets the exact behavior as before and new IR files can be mangled without linking with Target. With this patch the mangler is constructed with just a DataLayout and DataLayout is extended to include the information the Mangler needs. llvm-svn: 198438
-
Ana Pazos authored
llvm-svn: 198437
-
David Blaikie authored
This reverts commit r198398, thus reapplying r198397. I had accidentally introduced an endianness issue when applying the hash to the type unit. Using support::ulittle64_t in the reinterpret_cast in addDwarfTypeUnitType fixes this issue. Original commit message: Debug Info: Type Units: Simplify type hashing using IR-provided unique names. What's good for LTO metadata size problems ought to be good for non-LTO debug info size too, so let's rely on the same uniqueness in both cases. If it's insufficient for non-LTO for whatever reason (since we now won't be uniquing CU-local types or any C types - but these are likely to not be the most significant contributors to type bloat) we should consider a frontend solution that'll help both LTO and non-LTO alike, rather than using DWARF-level DIE-hashing that only helps non-LTO debug info size. It's also much simpler this way and benefits C++ even more since we can deduplicate lexically separate definitions of the same C++ type since they have the same mangled name. llvm-svn: 198436
-
Aaron Ballman authored
llvm-svn: 198435
-
Joerg Sonnenberger authored
llvm-svn: 198434
-
Aaron Ballman authored
Removed one of the string versions of getQualifiedNameAsString, and switched over to using printQualifiedName where possible. No functional changes intended. llvm-svn: 198433
-
Argyrios Kyrtzidis authored
- Remove the additions to ObjCMethodDecl & ObjCIVarDecl that were getting de/serialized and consolidate all functionality for the checking for this warning in Sema::DiagnoseUnusedBackingIvarInAccessor - Don't check immediately after the method body is finished, check when the @implementation is finished. This is so we can see if the ivar was referenced by any other method, even if the method was defined after the accessor. - Don't silence the warning if any method is called from the accessor silence it if the accessor delegates to another method via self. rdar://15727325 llvm-svn: 198432
-
Marshall Clow authored
Patch by Howard. First part of fix for PR18218; add type traits needed to do the right thing. Fix the problems in PR18218 for isnan and pow - they also need to be applied to the other functions in <cmath>. Also, a drive-by fix for the test - now actually calls test_abs() llvm-svn: 198431
-
Rafael Espindola authored
llvm-svn: 198430
-
Aaron Ballman authored
llvm-svn: 198429
-
Aaron Ballman authored
Fixed a FIXME; created a print method for Selectors that accepts a raw_ostream, and started using it in places it made sense. No functional changes intended, just API cleanliness. llvm-svn: 198428
-
Alexander Kornienko authored
llvm-svn: 198427
-
Alexander Kornienko authored
Summary: This allows for a better alternative to the FrontendAction hack used in clang-tidy in order to get static analyzer's ASTConsumer. Reviewers: jordan_rose, krememek Reviewed By: jordan_rose CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2505 llvm-svn: 198426
-
David Peixotto authored
The loop rerolling pass was failing with an assertion failure from a failed cast on loops like this: void foo(int *A, int *B, int m, int n) { for (int i = m; i < n; i+=4) { A[i+0] = B[i+0] * 4; A[i+1] = B[i+1] * 4; A[i+2] = B[i+2] * 4; A[i+3] = B[i+3] * 4; } } The code was casting the SCEV-expanded code for the new induction variable to a phi-node. When the loop had a non-constant lower bound, the SCEV expander would end the code expansion with an add insted of a phi node and the cast would fail. It looks like the cast to a phi node was only needed to get the induction variable value coming from the backedge to compute the end of loop condition. This patch changes the loop reroller to compare the induction variable to the number of times the backedge is taken instead of the iteration count of the loop. In other words, we stop the loop when the current value of the induction variable == IterationCount-1. Previously, the comparison was comparing the induction variable value from the next iteration == IterationCount. This problem only seems to occur on 32-bit targets. For some reason, the loop is not rerolled on 64-bit targets. PR18290 llvm-svn: 198425
-
Aaron Ballman authored
Simplifying the mutual exclusion check now that the diagnostics engine knows how to handle Attr objects directly. Updates an associated test case due to the attribute name being properly quoted again. llvm-svn: 198424
-
Alexander Kornienko authored
Reviewers: klimek Reviewed By: klimek CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2504 llvm-svn: 198423
-
Joey Gouly authored
llvm-svn: 198422
-
Aaron Ballman authored
Using the proper helper function instead of manually doing this work. No functional changes intended. llvm-svn: 198421
-
Aaron Ballman authored
llvm-svn: 198420
-
Aaron Ballman authored
llvm-svn: 198419
-
Aaron Ballman authored
llvm-svn: 198418
-
Joey Gouly authored
llvm-svn: 198417
-
Aaron Ballman authored
llvm-svn: 198416
-
Aaron Ballman authored
It turns out the problem was a bit more wide-spread. Removing a lot of unneeded typecasts. getScopeRep() already returns a NestedNameSpecifier. No functional changes intended. llvm-svn: 198414
-
Aaron Ballman authored
llvm-svn: 198413
-
Aaron Ballman authored
Removing some more unnecessary manual quotes from diagnostics. Updated the related test case to ensure correctness. llvm-svn: 198412
-
Daniel Jasper authored
Before: #define LIST(L) \ L(FirstElement) L(SecondElement) L(ThirdElement) L(FourthElement) \ L(FifthElement) After: #define LIST(L) \ L(FirstElement) \ L(SecondElement) \ L(ThirdElement) \ L(FourthElement) \ L(FifthElement) llvm-svn: 198407
-
Alexander Kornienko authored
llvm-svn: 198405
-
NAKAMURA Takumi authored
llvm-svn: 198404
-
NAKAMURA Takumi authored
clang-tidy: Fix build since r198402 in the case that the source tree of clang-tools-extra is not located on clang/tools/extra. FIXME: Get rid of private headers in other modules. llvm-svn: 198403
-
Alexander Kornienko authored
Summary: Made ClangTidyAction more slim and moved its declaration to header to allow easy creation of Clang-tidy ASTConsumer. Don't derive from clang::ento::AnalysisAction, use clang::ento::CreateAnalysisConsumer instead (I'll propose making this function a part of a public API in a separate patch). Use MultiplexConsumer instead of a custom class. Don't re-filter checkers list for each TU. Reviewers: klimek Reviewed By: klimek CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2481 llvm-svn: 198402
-
Alp Toker authored
Back out the part of r198399 that enabled LLVM_FINAL/LLVM_OVERRIDE on VS 2010. DwarfUnit.h legitimately uses them on destructors which unfortunately triggers Compiler Error C3665 (override specifier not allowed on a destructor/finalizer) prior to MSVC 2012: virtual ~DwarfCompileUnit() LLVM_OVERRIDE; llvm-svn: 198401
-
Arnold Schwaighofer authored
cycles This allows the value equality check to work even if we don't have a dominator tree. Also add some more comments. I was worried about compile time impacts and did not implement reachability but used the dominance check in the initial patch. The trade-off was that the dominator tree was required. The llvm utility function isPotentiallyReachable cuts off the recursive search after 32 visits. Testing did not show any compile time regressions showing my worries unjustfied. No compile time or performance regressions at O3 -flto -mavx on test-suite + externals. Addresses review comments from r198290. llvm-svn: 198400
-
Alp Toker authored
The 'sealed' definition of LLVM_FINAL can be dropped once VS 2010 is decommissioned. Some of this is speculative so will keep an eye on the waterfall -- ping me if you see failures. Incremental work towards C++11 migration. llvm-svn: 198399
-
David Blaikie authored
Reverting due to bot failure I won't have time to investigate until tomorrow. This reverts commit r198397. llvm-svn: 198398
-
David Blaikie authored
What's good for LTO metadata size problems ought to be good for non-LTO debug info size too, so let's rely on the same uniqueness in both cases. If it's insufficient for non-LTO for whatever reason (since we now won't be uniquing CU-local types or any C types - but these are likely to not be the most significant contributors to type bloat) we should consider a frontend solution that'll help both LTO and non-LTO alike, rather than using DWARF-level DIE-hashing that only helps non-LTO debug info size. It's also much simpler this way and benefits C++ even more since we can deduplicate lexically separate definitions of the same C++ type since they have the same mangled name. llvm-svn: 198397
-
Rui Ueyama authored
llvm-svn: 198396
-
Aaron Ballman authored
llvm-svn: 198395
-
Eric Christopher authored
llvm-svn: 198394
-
Eric Christopher authored
llvm-svn: 198393
-