summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Also show notes about the taken path in TextPathDiagnostics.Argyrios Kyrtzidis2010-12-031-7/+4
| | | | llvm-svn: 120783
* Remove leftover code and use the text path diagnostic client even without a ↵Argyrios Kyrtzidis2010-12-032-9/+5
| | | | | | | | specified output file since it just uses diagnostic notes. llvm-svn: 120773
* Introduce TextPathDiagnostics, a simple PathDiagnosticClient that outputs as ↵Argyrios Kyrtzidis2010-12-032-0/+81
| | | | | | | | diagnostic notes the sequence of events; useful for testing. llvm-svn: 120770
* Handle any number of SourceRanges inside BugReporter::FlushReport.Argyrios Kyrtzidis2010-12-031-6/+4
| | | | llvm-svn: 120769
* Rename Create[*]DiagnosticClient -> create[*]DiagnosticClient.Argyrios Kyrtzidis2010-12-033-5/+5
| | | | llvm-svn: 120768
* Fix diagnostic for reporting bad escape sequence.Ted Kremenek2010-12-031-1/+1
| | | | | | Patch by Paul Curtis! llvm-svn: 120759
* Reflow to a style doug prefers, increasing indentation :-)Chris Lattner2010-12-021-24/+24
| | | | llvm-svn: 120746
* When we're performing an explicit cast of some sort, don't complainDouglas Gregor2010-12-022-8/+6
| | | | | | | | | about deprecated Objective-C pointer conversions. Plus, make sure to actually set an appropriate AssignmentAction when performing an implicit conversion from an InitializationSequence. Fixes regressions in the GCC DejaGNU testsuite. llvm-svn: 120744
* Merge transparent union types using member's unqualified typePeter Collingbourne2010-12-021-1/+1
| | | | llvm-svn: 120736
* Fix range in printf warnings for invalid conversion specifiers.Ted Kremenek2010-12-021-1/+1
| | | | llvm-svn: 120735
* Merge transparent union types using member's canonical param typePeter Collingbourne2010-12-021-1/+1
| | | | llvm-svn: 120729
* Fix inverted return value in the ASTImporter. No matter how much LLVMDouglas Gregor2010-12-021-2/+2
| | | | | | code I wrote, returning "true" on error is still unnatural. llvm-svn: 120727
* Fixed source range for MS asm statement.Abramo Bagnara2010-12-021-4/+7
| | | | llvm-svn: 120724
* fix PR8726 by teaching the aggregate init optimization code to handle Chris Lattner2010-12-021-0/+33
| | | | | | structs with references in them correctly. llvm-svn: 120722
* IR Gen. part of API support for __block cxxFariborz Jahanian2010-12-026-70/+75
| | | | | | | | objects imported into blocks. //rdar://8594790. Will have a test case coming (as well as one sent to llvm test suite). llvm-svn: 120713
* Do not change the size of LookupResult::Filter based on the NDEBUGDouglas Gregor2010-12-021-2/+0
| | | | | | macri; the extra bool fits into padding anyway. llvm-svn: 120708
* Tweaks.John McCall2010-12-021-1/+1
| | | | llvm-svn: 120701
* ObjC support in the XML dumper.John McCall2010-12-021-1/+158
| | | | llvm-svn: 120700
* Merge ValueManager into SValBuilder.Ted Kremenek2010-12-0226-668/+601
| | | | llvm-svn: 120696
* Improve codegen for initializer lists to use memset more aggressivelyChris Lattner2010-12-024-20/+157
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when an initializer is variable (I handled the constant case in a previous patch). This has three pieces: 1. Enhance AggValueSlot to have a 'isZeroed' bit to tell CGExprAgg that the memory being stored into has previously been memset to zero. 2. Teach CGExprAgg to not emit stores of zero to isZeroed memory. 3. Teach CodeGenFunction::EmitAggExpr to scan initializers to determine whether they are profitable to emit a memset + inividual stores vs stores for everything. The heuristic used is that a global has to be more than 16 bytes and has to be 3/4 zero to be candidate for this xform. The two testcases are illustrative of the scenarios this catches. We now codegen test9 into: call void @llvm.memset.p0i8.i64(i8* %0, i8 0, i64 400, i32 4, i1 false) %.array = getelementptr inbounds [100 x i32]* %Arr, i32 0, i32 0 %tmp = load i32* %X.addr, align 4 store i32 %tmp, i32* %.array and test10 into: call void @llvm.memset.p0i8.i64(i8* %0, i8 0, i64 392, i32 8, i1 false) %tmp = getelementptr inbounds %struct.b* %S, i32 0, i32 0 %tmp1 = getelementptr inbounds %struct.a* %tmp, i32 0, i32 0 %tmp2 = load i32* %X.addr, align 4 store i32 %tmp2, i32* %tmp1, align 4 %tmp5 = getelementptr inbounds %struct.b* %S, i32 0, i32 3 %tmp10 = getelementptr inbounds %struct.a* %tmp5, i32 0, i32 4 %tmp11 = load i32* %X.addr, align 4 store i32 %tmp11, i32* %tmp10, align 4 Previously we produced 99 stores of zero for test9 and also tons for test10. This xforms should substantially speed up -O0 builds when it kicks in as well as reducing code size and optimizer heartburn on insane cases. This resolves PR279. llvm-svn: 120692
* attempt to fix a buildbot failure, apparently apache fails to build.Chris Lattner2010-12-023-13/+10
| | | | llvm-svn: 120688
* Add support for the common and nocommon attributes.Eric Christopher2010-12-023-1/+17
| | | | | | rdar://8560647 llvm-svn: 120650
* Perform lvalue-to-rvalue at the end of an expression statement in C.John McCall2010-12-021-0/+12
| | | | llvm-svn: 120646
* Enhance the init generation logic to emit a memset followed by a few stores whenChris Lattner2010-12-021-6/+41
| | | | | | | | | | | | | | | | | | | | | | | | | a global is larger than 32 bytes and has fewer than 6 non-zero values in the initializer. Previously we'd turn something like this: char test8(int X) { char str[10000] = "abc"; into a 10K global variable which we then memcpy'd from. Now we generate: %str = alloca [10000 x i8], align 16 %tmp = getelementptr inbounds [10000 x i8]* %str, i64 0, i64 0 call void @llvm.memset.p0i8.i64(i8* %tmp, i8 0, i64 10000, i32 16, i1 false) store i8 97, i8* %tmp, align 16 %0 = getelementptr [10000 x i8]* %str, i64 0, i64 1 store i8 98, i8* %0, align 1 %1 = getelementptr [10000 x i8]* %str, i64 0, i64 2 store i8 99, i8* %1, align 2 Which is much smaller in space and also likely faster. This is part of PR279 llvm-svn: 120645
* Simplify the ASTs by consolidating ObjCImplicitGetterSetterExpr and ↵John McCall2010-12-0224-435/+248
| | | | | | | | ObjCPropertyRefExpr into the latter. llvm-svn: 120643
* Swap order of checking for compatible vector types.Bob Wilson2010-12-021-7/+7
| | | | | | | | Check for compatible gcc, Altivec and Neon vectors before handling the lax-vector-conversions case. Otherwise there is no way to avoid the warnings from -Wvector-conversions. llvm-svn: 120633
* Eliminate two uses of NDEBUG in headers that cause different symbolsDouglas Gregor2010-12-022-16/+2
| | | | | | to be available in debug vs. release builds. llvm-svn: 120629
* Make TypeLocBuilder an implementation detail of Sema. Nobody else should be ↵Douglas Gregor2010-12-022-1/+181
| | | | | | using it llvm-svn: 120628
* Extend ExternalASTSource with the ability to lazily complete theDouglas Gregor2010-12-011-1/+31
| | | | | | | | | | | | | definition of an Objective-C class. Unlike with C/C++ classes, we don't have a well-defined point in Sema where Objective-C classes are checked for completeness, nor do we need to involve Sema when completing a class. Therefore, we take the appropriate of having the external AST source mark a particular Objective-C class as having an external declaration; when using one of the accessors of an Objective-C class that has an external declaration, we request that the external AST source fill in the Objective-C class definition. llvm-svn: 120627
* Sema/AST work for capturing copy init expressionFariborz Jahanian2010-12-012-0/+35
| | | | | | | to be used in copy helper synthesis of __block variables. wip. llvm-svn: 120617
* Rename all 'AssumeXXX' methods in libCheckerTed Kremenek2010-12-0123-127/+128
| | | | | | to 'assumeXXX'. llvm-svn: 120614
* 80-col fixups.Eric Christopher2010-12-011-21/+38
| | | | llvm-svn: 120613
* Optimized IR for vec_splatAnton Yartsev2010-12-011-16/+32
| | | | llvm-svn: 120610
* Rename all 'EvalXXX' methods in libChecker toTed Kremenek2010-12-0123-283/+283
| | | | | | 'evalXXX'. llvm-svn: 120609
* Improve our handling of cv-qualifiers in Objective-C pointerDouglas Gregor2010-12-011-29/+30
| | | | | | | | | | | | | | | conversions. Previously, we would end up collapsing qualification conversions into the Objective-C pointer conversion step, including (possibly) stripping qualifiers that shouldn't be removed. This generalizes BuildSimilarlyQualifiedPointerType() to also work on Objective-C object pointers, then eliminates the (redundant, not totally correct) BuildSimilarlyQualifiedObjCObjectPointerType() function. Fixes <rdar://problem/8714395>. llvm-svn: 120607
* Rename 'SValuator' to 'SValBuilder'. The new nameTed Kremenek2010-12-0118-74/+74
| | | | | | reflects what the class actually does. llvm-svn: 120605
* Not content to implement just "extern" explicit templateDouglas Gregor2010-12-011-4/+30
| | | | | | | | | instantiations, GCC also supports "inline" and "static" explicit template instantiations. Parse and warn about such constructs, but don't implement the semantics of either "inline" or "static". They don't seem to be widely used. llvm-svn: 120599
* Serialization: support for CUDA language extensionsPeter Collingbourne2010-12-012-0/+3
| | | | llvm-svn: 120588
* After parsing a ':' in an enum-specifier within class context,Douglas Gregor2010-12-012-4/+160
| | | | | | | | | | disambiguate between an expression (for a bit-field width) and a type (for a fixed underlying type). Since the disambiguation can be expensive (due to tentative parsing), we perform a simplistic disambiguation based on one-token lookahead before going into the full-blown tentative parsing. Based on a patch by Daniel Wallin. llvm-svn: 120582
* Improve the diagnostic when the fixed underlying type of aDouglas Gregor2010-12-011-1/+4
| | | | | | | redeclaration of an enum type differs from that of the original declaration, from Daniel Wallin llvm-svn: 120577
* AST printing for scoped enumerations and enumerations with a fixed ↵Douglas Gregor2010-12-011-3/+16
| | | | | | underlying type, from Daniel Wallin llvm-svn: 120576
* Eliminate vtables from the Type hierarchy.John McCall2010-12-011-134/+164
| | | | llvm-svn: 120562
* Restore the lvalue-to-rvalue conversion patch with a minimal fix.John McCall2010-12-016-43/+97
| | | | llvm-svn: 120555
* Remove stray emacs mode marker.Nick Lewycky2010-12-011-1/+1
| | | | llvm-svn: 120554
* Basic, Sema: add support for CUDA location attributesPeter Collingbourne2010-12-012-0/+110
| | | | llvm-svn: 120545
* Driver, Frontend: add CUDA language supportPeter Collingbourne2010-12-014-0/+12
| | | | llvm-svn: 120544
* Don't check the isysroot path for Path::isValid(); if the user hasDan Gohman2010-12-011-1/+0
| | | | | | | specified a syntactically invalid path, it's better to let the OS diagnose the problem than to silently skip it. llvm-svn: 120542
* add some infrastructure that will let us codegenChris Lattner2010-12-011-6/+67
| | | | | | | | http://llvm.org/bugs/show_bug.cgi?id=279#c3 better. No functionality change yet. llvm-svn: 120530
* Handle -nostartfiles.Rafael Espindola2010-12-011-8/+11
| | | | llvm-svn: 120528
* get some i32/i8/i1 constants from Builder, which is much less painful thanChris Lattner2010-12-011-18/+9
| | | | | | using ConstantInt::get. llvm-svn: 120527
OpenPOWER on IntegriCloud