aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-12-02Do not change the size of LookupResult::Filter based on the NDEBUGDouglas Gregor
macri; the extra bool fits into padding anyway. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120708 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02Remove NDEBUG-controlled extra data fromDouglas Gregor
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120706 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02Tweaks.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120701 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02ObjC support in the XML dumper.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120700 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02Merge ValueManager into SValBuilder.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120696 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02Add a test for calling a Neon intrinsic macro with the wrong vector type.Bob Wilson
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120694 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02Improve codegen for initializer lists to use memset more aggressivelyChris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120692 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02attempt to fix a buildbot failure, apparently apache fails to build.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120688 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02Add support for the common and nocommon attributes.Eric Christopher
rdar://8560647 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120650 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02FileCheckize.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120648 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02FileCheckize.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120647 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02Perform lvalue-to-rvalue at the end of an expression statement in C.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120646 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02Enhance the init generation logic to emit a memset followed by a few stores whenChris Lattner
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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120645 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02Simplify the ASTs by consolidating ObjCImplicitGetterSetterExpr and ↵John McCall
ObjCPropertyRefExpr into the latter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120643 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02Test use of arm_neon.h with -fno-lax-vector-conversions.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120642 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02Add a testcase for Radar 8228022.Bob Wilson
Make sure the -Wvector-conversions does not cause unnecessary warnings when using Neon intrinsics with the correct types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120634 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02Swap order of checking for compatible vector types.Bob Wilson
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120633 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02Eliminate two uses of NDEBUG in headers that cause different symbolsDouglas Gregor
to be available in debug vs. release builds. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120629 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02Make TypeLocBuilder an implementation detail of Sema. Nobody else should be ↵Douglas Gregor
using it git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120628 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Extend ExternalASTSource with the ability to lazily complete theDouglas Gregor
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120627 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Sema/AST work for capturing copy init expressionFariborz Jahanian
to be used in copy helper synthesis of __block variables. wip. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120617 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Rename all 'AssumeXXX' methods in libCheckerTed Kremenek
to 'assumeXXX'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120614 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-0180-col fixups.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120613 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Optimized IR for vec_splatAnton Yartsev
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120610 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Rename all 'EvalXXX' methods in libChecker toTed Kremenek
'evalXXX'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120609 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Improve our handling of cv-qualifiers in Objective-C pointerDouglas Gregor
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>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120607 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Rename 'SValuator' to 'SValBuilder'. The new nameTed Kremenek
reflects what the class actually does. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120605 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Fix build of in-tree libcxx. libcxx doesn't actuallyShantonu Sen
need any of the LLVM support libraries. Reviewed by Daniel Dunbar. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120602 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Not content to implement just "extern" explicit templateDouglas Gregor
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120599 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Add some comments.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120598 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Serialization: support for CUDA language extensionsPeter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120588 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01After parsing a ':' in an enum-specifier within class context,Douglas Gregor
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120582 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Improve the diagnostic when the fixed underlying type of aDouglas Gregor
redeclaration of an enum type differs from that of the original declaration, from Daniel Wallin git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120577 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01AST printing for scoped enumerations and enumerations with a fixed ↵Douglas Gregor
underlying type, from Daniel Wallin git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120576 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Eliminate vtables from the Type hierarchy.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120562 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Restore the lvalue-to-rvalue conversion patch with a minimal fix.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120555 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Remove stray emacs mode marker.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120554 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01test: add .cu extensionPeter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120553 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Basic, Sema: add support for CUDA location attributesPeter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120545 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Driver, Frontend: add CUDA language supportPeter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120544 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Basic: Add CUDA language optionPeter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120543 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Don't check the isysroot path for Path::isValid(); if the user hasDan Gohman
specified a syntactically invalid path, it's better to let the OS diagnose the problem than to silently skip it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120542 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01add some infrastructure that will let us codegenChris Lattner
http://llvm.org/bugs/show_bug.cgi?id=279#c3 better. No functionality change yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120530 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Handle -nostartfiles.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120528 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01get some i32/i8/i1 constants from Builder, which is much less painful thanChris Lattner
using ConstantInt::get. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120527 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01Implement AST import support for class template specializations.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120523 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-01When unknown method is sent to a receiver ofFariborz Jahanian
'Class' type, disgnostic should refere to a class method. Fixes // rdar://8592156 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120517 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-30A CGRecordLayout object persists. Since its contained types mayJohn McCall
refer to opaque types, they must be held via PATypeHolders. I'm not sure why this hasn't blown up before. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120491 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-30CGRecordLayoutBuilder does not need to be exported from this module.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120489 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-30Update checker build.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120487 91177308-0d34-0410-b5e6-96231b3b80d8