- Oct 29, 2012
-
-
Quentin Colombet authored
llvm-svn: 166957
-
Richard Smith authored
The problem is as follows: C++11 has contexts which are not potentially-evaluated, and yet in which we are required or encouraged to perform constant evaluation. In such contexts, we are not permitted to implicitly define special member functions for literal types, therefore we cannot evalaute those constant expressions. Punt on this in one more context for now by skipping checking constexpr variable initializers if they occur in dependent contexts. llvm-svn: 166956
-
Ulrich Weigand authored
llvm-svn: 166954
-
Chad Rosier authored
llvm-svn: 166953
-
Ulrich Weigand authored
llvm-svn: 166952
-
Ulrich Weigand authored
treating it as if it were an IEEE floating-point type with 106-bit mantissa. This makes compile-time arithmetic on "long double" for PowerPC in clang (in particular parsing of floating point constants) work, and fixes all "long double" related failures in the test suite. llvm-svn: 166951
-
Greg Clayton authored
llvm-svn: 166950
-
Chad Rosier authored
equivalent to [expr1 + expr2]. See test cases for more examples. rdar://12470392 llvm-svn: 166949
-
Nadav Rotem authored
llvm-svn: 166948
-
Michael Liao authored
- Add missing pattern on X86ISD::VZEXT from VR256 to VR256 when AVX2 is enabled. llvm-svn: 166947
-
Quentin Colombet authored
llvm-svn: 166946
-
Joerg Sonnenberger authored
llvm-svn: 166945
-
Jakob Stoklund Olesen authored
Partial copies can show up even when CoalescerPair.isPartial() returns false. For example: %vreg24:dsub_0<def> = COPY %vreg31:dsub_0; QPR:%vreg24,%vreg31 Such a partial-partial copy is not good enough for the transformation adjustCopiesBackFrom() needs to do. llvm-svn: 166944
-
Ulrich Weigand authored
This fixes PR12757. llvm-svn: 166943
-
Jordan Rose authored
Previously, the warning would erroneously fire on this: for (Test *a in someArray) use(a.weakProp); ...because it looks like the same property is being accessed over and over. However, clearly this is not the case. We now ignore loops like this for local variables, but continue to warn if the base object is a parameter, global variable, or instance variable, on the assumption that these are not repeatedly usually assigned to within loops. Additionally, do-while loops where the condition is 'false' are not really loops at all; usually they're just used for semicolon-swallowing macros or using "break" like "goto". <rdar://problem/12578785&12578849> llvm-svn: 166942
-
Jordan Rose authored
Our one basic suppression heuristic is to assume that functions do not usually return NULL. However, when one of the arguments is NULL it is suddenly much more likely that NULL is a valid return value. In this case, we don't suppress the report here, but we do attach /another/ visitor to go find out if this NULL argument also comes from an inlined function's error path. This new behavior, controlled by the 'avoid-suppressing-null-argument-paths' analyzer-config option, is turned off by default. Turning it on produced two false positives and no new true positives when running over LLVM/Clang. This is one of the possible refinements to our suppression heuristics. <rdar://problem/12350829> llvm-svn: 166941
-
Jordan Rose authored
Additionally, don't collect PostStore nodes -- they are often used in path diagnostics. Previously, we tried to track null arguments in the same way as any other null values, but in many cases the necessary nodes had already been collected (a memory optimization in ExplodedGraph). Now, we fall back to using the value of the argument at the time of the call, which may not always match the actual contents of the region, but often will. This is a precursor to improving our suppression heuristic. <rdar://problem/12350829> llvm-svn: 166940
-
Duncan Sands authored
wrapper returns a vector of integers when passed a vector of pointers) by having getIntPtrType itself return a vector of integers in this case. Outside of this wrapper, I didn't find anywhere in the codebase that was relying on the old behaviour for vectors of pointers, so give this a whirl through the buildbots. llvm-svn: 166939
-
Bob Wilson authored
We may need to change the way profile counter values are stored, but saturation is the wrong thing to do. Just remove it for now. Patch by Alastair Murray! llvm-svn: 166938
-
Nadav Rotem authored
Change the PassManagerBuilder (used by -O3) loop vectorizer flag from -vectorize to -vectorize-loops because we dont want to share the same flag as the bb-vectorizer. llvm-svn: 166937
-
Hans Wennborg authored
llvm-svn: 166936
-
Reed Kotler authored
llvm-svn: 166935
-
NAKAMURA Takumi authored
llvm-svn: 166934
-
NAKAMURA Takumi authored
llvm-svn: 166932
-
NAKAMURA Takumi authored
llvm-svn: 166931
-
Preston Gurd authored
incorrect instruction sequence due to it not being aware that an inline assembly instruction may reference memory. This patch fixes the problem by causing the scheduler to always assume that any inline assembly code instruction could access memory. This is necessary because the internal representation of the inline instruction does not include any information about memory accesses. This should fix PR13504. llvm-svn: 166929
-
Bill Schmidt authored
ELF subtarget. The existing logic is used as a fallback to avoid any changes to the Darwin ABI. PPC64 ELF now has two possible data layout strings: one for FreeBSD, which requires 8-byte alignment, and a default string that requires 16-byte alignment. I've added a test for PPC64 Linux to verify the 16-byte alignment. If somebody wants to add a separate test for FreeBSD, that would be great. Note that there is a companion patch to update the alignment information in Clang, which I am committing now as well. llvm-svn: 166928
-
Bill Schmidt authored
ELF subtarget. The existing description string is moved from PPC64TargetInfo to its DarwinTargetInfo subclass, to avoid any changes to the Darwin ABI. PPC64TargetInfo now has two possible description strings: one for FreeBSD, which requires 8-byte alignment, and a default string that requires 16-byte alignment. I've added a test for PPC64 Linux to verify the 16-byte alignment. If somebody wants to add a separate test for FreeBSD, that would be great. Note that there is a companion patch to update the alignment information in LLVM, which I am committing now as well. llvm-svn: 166927
-
Duncan Sands authored
just call getPointerTypeSizeInBits. No functionality change. llvm-svn: 166926
-
Duncan Sands authored
preferred alignment. Correct the documentation. llvm-svn: 166925
-
Ulrich Weigand authored
llvm-svn: 166924
-
Duncan Sands authored
llvm-svn: 166923
-
Duncan Sands authored
llvm-svn: 166922
-
Daniel Jasper authored
llvm-svn: 166921
-
Tim Northover authored
Patch by Amara Emerson. llvm-svn: 166920
-
Tim Northover authored
Patch by Amara Emerson. llvm-svn: 166919
-
Tim Northover authored
Currently only implemented for ELF. Patch by Amara Emerson. llvm-svn: 166918
-
Daniel Jasper authored
Types, QualTypes and TypeLocs. Review: http://llvm-reviews.chandlerc.com/D83 llvm-svn: 166917
-
Evgeniy Stepanov authored
llvm-svn: 166916
-
Nick Lewycky authored
llvm-svn: 166915
-