- Oct 29, 2012
-
-
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
-
Nick Lewycky authored
llvm-svn: 166914
-
Nick Lewycky authored
llvm-svn: 166913
-
Nick Lewycky authored
llvm-svn: 166912
-
Nadav Rotem authored
Get the number of registers by calling getTypeLegalizationCost. PR14199. llvm-svn: 166911
-
Lang Hames authored
llvm-svn: 166910
-
Rafael Espindola authored
globals. llvm-svn: 166909
-
Rafael Espindola authored
split module can see each other. If it is keeping a symbol that already has a non local linkage, it doesn't need to change it. llvm-svn: 166908
-
Rafael Espindola authored
output of both llvm-extract foo.ll -func=bar and llvm-extract foo.ll -func=bar -delete so the two new files could not be linked together anymore. With this change alias are handled almost like functions and global variables. Almost because with alias we cannot just clear the initializer/body, we have to create a new declaration and replace the alias with it. The net result is that now the output of the above commands can be linked even if foo.ll has aliases. llvm-svn: 166907
-
Reed Kotler authored
llvm-svn: 166903
-