summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove the "conditional save" hashtables from IR generation.John McCall2011-02-174-23/+1
| | | | llvm-svn: 125761
* The internal -fdump-record-layouts flag already dumps the layout when it was ↵Douglas Gregor2011-02-171-24/+0
| | | | | | computed; no need to do so again at the end of the translation unit llvm-svn: 125760
* The labyrinthine X86 backend no longer appears to requireDan Gohman2011-02-171-37/+0
| | | | | | these patterns. llvm-svn: 125759
* When building StaticAnalyzer/Frontend add -I "<Checkers build dir>" to allow ↵Argyrios Kyrtzidis2011-02-173-1/+5
| | | | | | | | | | Checkers.inc to be included without '..', thus being compatible with build systems of *BSDs. Patch by Joerg Sonnenberger! llvm-svn: 125758
* Replace a FIXME with a comment describing why we did what we didDouglas Gregor2011-02-171-2/+5
| | | | llvm-svn: 125757
* Remove the last virtual member function from the Decl hierarchy,Douglas Gregor2011-02-172-5/+0
| | | | | | | | reducing the size of all declarations by one pointer. For a 64-bit Clang parsing Cocoa.h, this saves ~630k of memory (about 3.5% of ASTContext's memory usage for this header). llvm-svn: 125756
* Devirtualize TagDecl::completeDefinition().Douglas Gregor2011-02-174-20/+20
| | | | llvm-svn: 125755
* Devirtualize DeclaratorDecl::getInnerLocStart() and TagDecl::getInnerLocStart().Douglas Gregor2011-02-174-20/+27
| | | | llvm-svn: 125754
* Move Align(val, alignment) utility function to ARMUtils.h.Johnny Chen2011-02-172-5/+5
| | | | llvm-svn: 125753
* Improve diagnostics on missing property decl.Fariborz Jahanian2011-02-173-3/+4
| | | | llvm-svn: 125752
* Devirtualize NamedDecl::getNameForDiagnostic().Douglas Gregor2011-02-174-42/+27
| | | | llvm-svn: 125751
* Devirtualize RedeclarableTemplateDecl::newCommon().Douglas Gregor2011-02-172-2/+13
| | | | llvm-svn: 125750
* Fix wrong logic in promotion of signed mul-with-overflow (I pointed this out atDuncan Sands2011-02-171-18/+12
| | | | | | | | | the time but presumably my email got lost). Examples where the previous logic got it wrong: (1) a signed i8 multiply of 64 by 2 overflows, but the high part is zero; (2) a signed i8 multiple of -128 by 2 overflows, but the high part is all ones. llvm-svn: 125748
* Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 generally.NAKAMURA Takumi2011-02-179-15/+5
| | | | | | No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32. In llvm side, i686 and x64 can be treated as similar way. llvm-svn: 125747
* Fix whitespace.NAKAMURA Takumi2011-02-172-9/+9
| | | | llvm-svn: 125746
* Implement a sub-group of -Wconversion: -Wliteral-conversion. ThisChandler Carruth2011-02-175-6/+59
| | | | | | | | | | | specifically targets literals which are implicitly converted, a those are more often unintended and trivial to fix. This can be especially helpful for diagnosing what makes 'const int x = 1e6' not an ICE. Original patch authored by Jim Meehan with contributions from other Googlers and a few cleanups from myself. llvm-svn: 125745
* Change the representation of GNU ?: expressions to use a different expressionJohn McCall2011-02-1740-429/+986
| | | | | | | | | | | | | | | | | | | | | | class and to bind the shared value using OpaqueValueExpr. This fixes an unnoticed problem with deserialization of these expressions where the deserialized form would lose the vital pointer-equality trait; or rather, it fixes it because this patch also does the right thing for deserializing OVEs. Change OVEs to not be a "temporary object" in the sense that copy elision is permitted. This new representation is not totally unawkward to work with, but I think that's really part and parcel with the semantics we're modelling here. In particular, it's much easier to fix things like the copy elision bug and to make the CFG look right. I've tried to update the analyzer to deal with this in at least some obvious cases, and I think we get a much better CFG out, but the printing of OpaqueValueExprs probably needs some work. llvm-svn: 125744
* lib/Frontend/InitHeaderSearch.cpp: Add mingw-w64's include paths.NAKAMURA Takumi2011-02-171-0/+8
| | | | llvm-svn: 125743
* Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 instead.NAKAMURA Takumi2011-02-176-16/+4
| | | | | | No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32. llvm-svn: 125742
* Fix whitespace.NAKAMURA Takumi2011-02-174-20/+19
| | | | llvm-svn: 125741
* Devirtualize Decl::getNextRedeclaration().Douglas Gregor2011-02-175-10/+91
| | | | llvm-svn: 125740
* Implement -Wenum-compare, which warns when comparing two enums ofChandler Carruth2011-02-174-4/+235
| | | | | | | | | | | different types. We omit the warning when the enum types are anonymous. Unlike GCC, this warning does not distinguish between C++ and C/ObjC for controling whether it is on by default, it is always on by default. Original patch contributed by Richard Trieu (@ Google), I fixed some style issues, and cleaned it up for submission. llvm-svn: 125739
* This has been implemented.Duncan Sands2011-02-171-10/+0
| | | | llvm-svn: 125738
* Simple little optimization to Decl::getCanonicalDecl(), eliminating some ↵Douglas Gregor2011-02-171-4/+4
| | | | | | heavyweight machinery and indirection that we don't need llvm-svn: 125737
* Devirtualize Decl::getSourceRange()Douglas Gregor2011-02-175-16/+38
| | | | llvm-svn: 125736
* Devirtualize Decl::getCanonicalDecl().Douglas Gregor2011-02-175-9/+32
| | | | llvm-svn: 125735
* Transform "A + B >= A + C" into "B >= C" if the adds do not wrap. Likewise ↵Duncan Sands2011-02-172-93/+125
| | | | | | | | | for some variations (some of these were already present so I unified the code). Spotted by my auto-simplifier as occurring a lot. llvm-svn: 125734
* Step #1/N of implementing support for __label__: split labels intoChris Lattner2011-02-1739-384/+294
| | | | | | | | | | | | | | | | | | | LabelDecl and LabelStmt. There is a 1-1 correspondence between the two, but this simplifies a bunch of code by itself. This is because labels are the only place where we previously had references to random other statements, causing grief for AST serialization and other stuff. This does cause one regression (attr(unused) doesn't silence unused label warnings) which I'll address next. This does fix some minor bugs: 1. "The only valid attribute " diagnostic was capitalized. 2. Various diagnostics printed as ''labelname'' instead of 'labelname' 3. This reduces duplication of label checking between functions and blocks. Review appreciated, particularly for the cindex and template bits. llvm-svn: 125733
* Devirtualize Decl::getBody() and Decl::hasBody().Douglas Gregor2011-02-174-5/+23
| | | | llvm-svn: 125731
* De-virtualize Decl::isOutOfLine().Douglas Gregor2011-02-174-7/+17
| | | | llvm-svn: 125730
* When printing a qualified type, look through a substituted templateDouglas Gregor2011-02-177-13/+73
| | | | | | | | | | parameter type to see what's behind it, so that we don't end up printing silly things like "float const *" when "const float *" would make more sense. Also, replace the pile of "isa" tests with a simple switch enumerating all of the cases, making a few more obvious cases use prefix qualifiers. llvm-svn: 125729
* Switch to SmallVector in SimpleRegisterCoalescing for a 3.5% speedup on 403.gcc.Cameron Zwarich2011-02-171-3/+3
| | | | llvm-svn: 125728
* Adjust indenting of arguments.Cameron Zwarich2011-02-171-3/+3
| | | | llvm-svn: 125727
* Return Changed from SplitPHIEdges rather than always returning true.Cameron Zwarich2011-02-171-1/+1
| | | | llvm-svn: 125726
* lit/TestingConfig.py: Add the environment variable PRINTF_EXPONENT_DIGITS as ↵NAKAMURA Takumi2011-02-171-0/+1
| | | | | | | | | | workaround [PR6745] for mingw's tests. Danil Malyshev suggested this. FIXME: It does not improve MSVC's issue. [Danil Malyshev] Defining PRINTF_EXPONENT_DIGITS env is the suggested way to make MinGW ANSI/POSIX compatible. This is not only about the case we are discussing, but in general, I'd like to have explicitly defined compatibility mode for all the tests running on MinGW. llvm-svn: 125725
* simplify a bit.Chris Lattner2011-02-172-4/+2
| | | | llvm-svn: 125724
* tidy upChris Lattner2011-02-171-2/+2
| | | | llvm-svn: 125723
* Improve parser recovery in "for" statements, from Richard Smith!Douglas Gregor2011-02-172-7/+38
| | | | llvm-svn: 125722
* Add serialization for Expr* arguments for attributes to clang tablegen files.Alexis Hunt2011-02-171-0/+2
| | | | | | Patch thanks to Zach Anderson. llvm-svn: 125721
* I will not hold on to temporary StringRefs.Douglas Gregor2011-02-171-50/+51
| | | | | | | | | | | | | | | I will not hold on to temporary StringRefs. I will not hold on to temporary StringRefs. I will not hold on to temporary StringRefs. I will not hold on to temporary StringRefs. I will not hold on to temporary StringRefs. I will not hold on to temporary StringRefs. I will not hold on to temporary StringRefs. I will not hold on to temporary StringRefs. I will not hold on to temporary StringRefs. I will not hold on to temporary StringRefs. llvm-svn: 125718
* When Parser::ParseExpressionList isn't given a completer, fall back toDouglas Gregor2011-02-172-0/+16
| | | | | | | normal "expression" completion. Fixes the most annoying code-completion bug I've found. llvm-svn: 125715
* Fix PR9025 and add a diagnostic (and sometimes a fixit) for an overloadedMatt Beaumont-Gay2011-02-173-6/+77
| | | | | | | function name used as the base of a member expression. Early feedback from Chandler Carruth, and code review from Nick Lewycky. llvm-svn: 125714
* Bump up IdentifierInfo::ObjCOrBuiltinID to use 11 bits instead of 10. Fixes ↵Ted Kremenek2011-02-171-2/+2
| | | | | | | | PR 9231. Apparently we can blow out the number of builtin IDs on FreeBSD with only 10 bits. llvm-svn: 125713
* Begin overhaul of scan-build/ccc-analyzer's handling of checker options.Ted Kremenek2011-02-172-119/+61
| | | | | | | | We now rely on 'clang --analyze' to provide the default set of checkers. We're still working on the new '-analyzer-checker <checker>' interface, and once that's ready we'll wire it up to scan-build. llvm-svn: 125712
* preserve NUW/NSW when transforming add x,xChris Lattner2011-02-172-2/+15
| | | | llvm-svn: 125711
* filecheckizeChris Lattner2011-02-171-3/+14
| | | | llvm-svn: 125710
* Fix thinko, basic blocks are SESE. The exits may have many edges though.Nick Lewycky2011-02-171-1/+1
| | | | llvm-svn: 125709
* Disable default synthesized properties until we can properly re-evaluate the ↵Ted Kremenek2011-02-171-2/+1
| | | | | | feature. llvm-svn: 125708
* fix clang -MM output to escape spaces in filenames. This seems to beChris Lattner2011-02-171-7/+18
| | | | | | the only character that GCC escapes. PR9224. llvm-svn: 125707
* Modified version of Marco Minutoli's host arch patch.Greg Clayton2011-02-171-14/+8
| | | | llvm-svn: 125706
OpenPOWER on IntegriCloud