- Oct 29, 2012
-
-
Michael Liao authored
- Add missing pattern on X86ISD::VZEXT from VR256 to VR256 when AVX2 is enabled. llvm-svn: 166947
-
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
-
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: 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
-
Duncan Sands authored
just call getPointerTypeSizeInBits. No functionality change. llvm-svn: 166926
-
Duncan Sands authored
llvm-svn: 166922
-
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
-
Nadav Rotem authored
Get the number of registers by calling getTypeLegalizationCost. PR14199. llvm-svn: 166911
-
Lang Hames authored
llvm-svn: 166910
-
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
-
- Oct 28, 2012
-
-
Rafael Espindola authored
All the credit goes to Jan Voung for noticing it was dead! llvm-svn: 166902
-
Reed Kotler authored
Previously mips16 was sharing the pattern addr which is used for mips32 and mips64. This had a number of problems: 1) Storing and loading byte and halfword quantities for mips16 has particular problems due to the primarily non mips16 nature of SP. When we must load/store byte/halfword stack objects in a function, we must create a mips16 alias register for SP. This functionality is tested in stchar.ll. 2) We need to have an FP register under certain conditions (such as dynamically sized alloca). We use mips16 register S0 for this purpose. In this case, we also use this register when accessing frame objects so this issue also affects the complex pattern addr16. This functionality is tested in alloca16.ll. The Mips16InstrInfo.td has been updated to use addr16 instead of addr. The complex pattern C++ function for addr has been copied to addr16 and updated to reflect the above issues. llvm-svn: 166897
-
- Oct 27, 2012
-
-
Jakob Stoklund Olesen authored
This fixes PR14194. llvm-svn: 166880
-
Benjamin Kramer authored
I don't think this is possible with the current implementation but that may change eventually. llvm-svn: 166877
-
Benjamin Kramer authored
This turns loops like for (unsigned i = 0; i != n; ++i) p[i] = p[i+1]; into memmove, which has a highly optimized implementation in most libcs. This was really easy with the new DependenceAnalysis :) llvm-svn: 166875
-
Benjamin Kramer authored
Requires a lot less code and complexity on loop-idiom's side and the more precise analysis can catch more cases, like the one I included as a test case. This also fixes the edge-case miscompilation from PR9481. Compile time performance seems to be slightly worse, but this is mostly due to an extra LCSSA run scheduled by the PassManager and should be fixed there. llvm-svn: 166874
-
Benjamin Kramer authored
SCEV validator: Ignore CouldNotCompute/undef on both sides. This is mostly noise and blocks finding more severe bugs. llvm-svn: 166873
-
Benjamin Kramer authored
llvm-svn: 166872
-
Hal Finkel authored
The monolithic interface for instruction costs has been split into several functions. This is the corresponding change. No functionality change is intended. llvm-svn: 166865
-
Nadav Rotem authored
1. Fix a bug in getTypeConversion. When a *simple* type is split, we need to return the type of the split result. 2. Change the maximum vectorization width from 4 to 8. 3. A test for both. llvm-svn: 166864
-
Quentin Colombet authored
llvm-svn: 166854
-
Reed Kotler authored
llvm-svn: 166852
-
Akira Hatanaka authored
arguments. This is rather conservative and should be fixed later to be more aggressive. llvm-svn: 166851
-
Akira Hatanaka authored
previous iteration. llvm-svn: 166850
-
Akira Hatanaka authored
LowerFormalArguments in MipsTargetLowering. No functionality change intended. llvm-svn: 166846
-
Akira Hatanaka authored
of vararg functions back to the stack. llvm-svn: 166844
-
Akira Hatanaka authored
This method emits nodes for passing byval arguments in registers and stack. This has the same functionality as existing functions PassByValArg64 and WriteByValArg which will be deleted later. llvm-svn: 166843
-
Akira Hatanaka authored
This method copies byval arguments passed in registers onto the stack and has the same functionality as existing functions CopyMips64ByValRegs and ReadByValArg which will be deleted later. llvm-svn: 166841
-