summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
...
* 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-022-5/+8
| | | | llvm-svn: 120724
* fix PR8726 by teaching the aggregate init optimization code to handle Chris Lattner2010-12-022-0/+46
| | | | | | structs with references in them correctly. llvm-svn: 120722
* Test for // rdar://8594790Fariborz Jahanian2010-12-021-0/+25
| | | | llvm-svn: 120717
* Attempt to fix linux buildbots by adding -ffreestanding for arm_neon tests.Bob Wilson2010-12-022-4/+4
| | | | | | | The arm_neon.h header includes stdint.h and it picks up the system header without -ffreestanding. llvm-svn: 120716
* IR Gen. part of API support for __block cxxFariborz Jahanian2010-12-029-78/+83
| | | | | | | | 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-022-16/+1
| | | | | | macri; the extra bool fits into padding anyway. llvm-svn: 120708
* Remove NDEBUG-controlled extra data fromDouglas Gregor2010-12-022-91/+5
| | | | | | | | | TemplateArgumentLocInfo. Unfortunately, this means that we lose some internal consistency checking when building a debug Clang. However, having data structures change size/layout depending on NDEBUG causes pain for clients of the Clang API. llvm-svn: 120706
* 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-0236-947/+827
| | | | llvm-svn: 120696
* Add a test for calling a Neon intrinsic macro with the wrong vector type.Bob Wilson2010-12-022-5/+13
| | | | | | | | This does not work so well with the -fno-lax-vector-conversions option for testing the arm_neon.h header but that is a really useful test, so I split this out to a separate Sema test to check for the warning. llvm-svn: 120694
* Improve codegen for initializer lists to use memset more aggressivelyChris Lattner2010-12-025-20/+187
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-026-1/+36
| | | | | | rdar://8560647 llvm-svn: 120650
* FileCheckize.Eric Christopher2010-12-021-3/+7
| | | | llvm-svn: 120648
* FileCheckize.Eric Christopher2010-12-021-4/+4
| | | | llvm-svn: 120647
* 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-022-6/+53
| | | | | | | | | | | | | | | | | | | | | | | | | 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-0230-584/+351
| | | | | | | | ObjCPropertyRefExpr into the latter. llvm-svn: 120643
* Test use of arm_neon.h with -fno-lax-vector-conversions.Bob Wilson2010-12-021-0/+1
| | | | llvm-svn: 120642
* Add a testcase for Radar 8228022.Bob Wilson2010-12-021-0/+9
| | | | | | | Make sure the -Wvector-conversions does not cause unnecessary warnings when using Neon intrinsics with the correct types. llvm-svn: 120634
* 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-024-24/+6
| | | | | | 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-3/+3
| | | | | | using it llvm-svn: 120628
* Extend ExternalASTSource with the ability to lazily complete theDouglas Gregor2010-12-013-4/+86
| | | | | | | | | | | | | 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-013-0/+44
| | | | | | | to be used in copy helper synthesis of __block variables. wip. llvm-svn: 120617
* Rename all 'AssumeXXX' methods in libCheckerTed Kremenek2010-12-0125-144/+145
| | | | | | 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-0131-342/+342
| | | | | | 'evalXXX'. llvm-svn: 120609
* Improve our handling of cv-qualifiers in Objective-C pointerDouglas Gregor2010-12-013-43/+62
| | | | | | | | | | | | | | | 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-0122-97/+97
| | | | | | reflects what the class actually does. llvm-svn: 120605
* Fix build of in-tree libcxx. libcxx doesn't actuallyShantonu Sen2010-12-011-1/+1
| | | | | | | need any of the LLVM support libraries. Reviewed by Daniel Dunbar. llvm-svn: 120602
* Not content to implement just "extern" explicit templateDouglas Gregor2010-12-013-4/+38
| | | | | | | | | 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
* Add some comments.Bob Wilson2010-12-011-1/+4
| | | | llvm-svn: 120598
* Serialization: support for CUDA language extensionsPeter Collingbourne2010-12-013-0/+6
| | | | llvm-svn: 120588
* After parsing a ':' in an enum-specifier within class context,Douglas Gregor2010-12-014-5/+191
| | | | | | | | | | 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-012-2/+5
| | | | | | | 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-012-209/+166
| | | | llvm-svn: 120562
* Restore the lvalue-to-rvalue conversion patch with a minimal fix.John McCall2010-12-019-43/+114
| | | | llvm-svn: 120555
* Remove stray emacs mode marker.Nick Lewycky2010-12-011-1/+1
| | | | llvm-svn: 120554
* test: add .cu extensionPeter Collingbourne2010-12-011-1/+1
| | | | llvm-svn: 120553
* Basic, Sema: add support for CUDA location attributesPeter Collingbourne2010-12-018-2/+150
| | | | llvm-svn: 120545
* Driver, Frontend: add CUDA language supportPeter Collingbourne2010-12-017-0/+19
| | | | llvm-svn: 120544
* Basic: Add CUDA language optionPeter Collingbourne2010-12-011-1/+2
| | | | llvm-svn: 120543
* 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
OpenPOWER on IntegriCloud