Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Compute feature bits at time of MCSubtargetInfo initialization. | Evan Cheng | 2011-07-07 | 1 | -1/+2 | |
| | | | | llvm-svn: 134606 | |||||
* | Rename XXXGenSubtarget.inc to XXXGenSubtargetInfo.inc for consistency. | Evan Cheng | 2011-07-01 | 1 | -1/+1 | |
| | | | | llvm-svn: 134281 | |||||
* | Rename TargetSubtarget to TargetSubtargetInfo for consistency. | Evan Cheng | 2011-07-01 | 1 | -2/+2 | |
| | | | | llvm-svn: 134259 | |||||
* | - Added MCSubtargetInfo to capture subtarget features and scheduling | Evan Cheng | 2011-07-01 | 1 | -1/+4 | |
| | | | | | | | | | itineraries. - Refactor TargetSubtarget to be based on MCSubtargetInfo. - Change tablegen generated subtarget info to initialize MCSubtargetInfo and hide more details from targets. llvm-svn: 134257 | |||||
* | Fix the ridiculous SubtargetFeatures API where it implicitly expects CPU name to | Evan Cheng | 2011-06-30 | 1 | -3/+3 | |
| | | | | | | | | | | be the first encoded as the first feature. It then uses the CPU name to look up features / scheduling itineray even though clients know full well the CPU name being used to query these properties. The fix is to just have the clients explictly pass the CPU name! llvm-svn: 134127 | |||||
* | Remove TargetOptions.h dependency from X86Subtarget. | Evan Cheng | 2011-06-23 | 1 | -4/+2 | |
| | | | | llvm-svn: 133726 | |||||
* | ADT/Triple: Move a variety of clients to using isOSDarwin() and isOSWindows() | Daniel Dunbar | 2011-04-19 | 1 | -3/+7 | |
| | | | | | | predicates. llvm-svn: 129816 | |||||
* | Target/X86: Eliminate uses of getDarwinVers(). | Daniel Dunbar | 2011-04-19 | 1 | -7/+0 | |
| | | | | llvm-svn: 129813 | |||||
* | Target/X86: Add getTargetTriple() accessor. | Daniel Dunbar | 2011-04-19 | 1 | -0/+2 | |
| | | | | llvm-svn: 129812 | |||||
* | Stack alignment is 16 bytes on FreeBSD/i386 too. | Roman Divacky | 2011-02-22 | 1 | -0/+1 | |
| | | | | llvm-svn: 126226 | |||||
* | The stack should be 16 byte aligned on 32 bit solaris. Patch by Yuri. | Duncan Sands | 2011-02-21 | 1 | -0/+1 | |
| | | | | llvm-svn: 126130 | |||||
* | Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 generally. | NAKAMURA Takumi | 2011-02-17 | 1 | -3/+1 | |
| | | | | | | No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32. In llvm side, i686 and x64 can be treated as similar way. llvm-svn: 125747 | |||||
* | Fix whitespace. | NAKAMURA Takumi | 2011-02-17 | 1 | -5/+5 | |
| | | | | llvm-svn: 125746 | |||||
* | Patches to build EFI with Clang/LLVM. By Carl Norum. | Evan Cheng | 2011-02-01 | 1 | -0/+4 | |
| | | | | llvm-svn: 124639 | |||||
* | Formalize the notion that AVX and SSE are non-overlapping extensions from ↵ | Nate Begeman | 2010-12-10 | 1 | -0/+2 | |
| | | | | | | the compiler's point of view. Per email discussion, we either want to always use VEX-prefixed instructions or never use them, and are taking "HasAVX" to mean "Always use VEX". Passing -mattr=-avx,+sse42 should serve to restore legacy SSE support when desirable. llvm-svn: 121439 | |||||
* | Add patterns for the x86 popcnt instruction. | Benjamin Kramer | 2010-12-04 | 1 | -0/+4 | |
| | | | | | | | - Also adds a new POPCNT subtarget feature that is currently enabled if the target supports SSE4.2 (nehalem) or SSE4A (barcelona). llvm-svn: 120917 | |||||
* | Jim Asked us to move DataLayout on ARM back to the most specialized classes. Do | Rafael Espindola | 2010-10-03 | 1 | -14/+0 | |
| | | | | | | | | so and also change X86 for consistency. Investigating if this can be improved a bit. llvm-svn: 115469 | |||||
* | X86Subtarget.h: Fix Cygwin's TD. | NAKAMURA Takumi | 2010-09-18 | 1 | -1/+1 | |
| | | | | llvm-svn: 114297 | |||||
* | Properly emit __chkstk call instead of __alloca on non-mingw windows targets. | Anton Korobeynikov | 2010-09-02 | 1 | -0/+4 | |
| | | | | | | Patch by Cameron Esfahani! llvm-svn: 112902 | |||||
* | Add x86 CLMUL (Carry-less multiplication) cpu feature | Bruno Cardoso Lopes | 2010-07-23 | 1 | -0/+4 | |
| | | | | llvm-svn: 109206 | |||||
* | Have the X86 backend use Triple instead of a string and some enums. | Eric Christopher | 2010-07-05 | 1 | -18/+25 | |
| | | | | llvm-svn: 107625 | |||||
* | FastISel doesn't yet handle callee-pop functions. | Dan Gohman | 2010-05-27 | 1 | -0/+4 | |
| | | | | | | To support this, move IsCalleePop from X86ISelLowering to X86Subtarget. llvm-svn: 104866 | |||||
* | Enable i16 to i32 promotion by default. | Evan Cheng | 2010-04-28 | 1 | -5/+0 | |
| | | | | llvm-svn: 102493 | |||||
* | isel (i32 anyext i16) as insert_subreg when 16-bit ops are being promoted. | Evan Cheng | 2010-04-21 | 1 | -2/+6 | |
| | | | | llvm-svn: 101979 | |||||
* | Separate out the AES-NI instructions from the SSE4.2 instructions. Add | Eric Christopher | 2010-04-02 | 1 | -0/+4 | |
| | | | | | | | | | a new subtarget option for AES and check for the support. Add "westmere" line of processors and add AES-NI support to the core i7. Add a couple of TODOs for information I couldn't verify. llvm-svn: 100231 | |||||
* | Nehalem unaligned memory access is fast. | Evan Cheng | 2010-04-01 | 1 | -0/+4 | |
| | | | | llvm-svn: 100089 | |||||
* | Turning off post-ra scheduling for x86. It isn't a consistent win. | Evan Cheng | 2010-03-18 | 1 | -6/+0 | |
| | | | | llvm-svn: 98810 | |||||
* | add support for pentium class CPUs which do not have cmov, | Chris Lattner | 2010-03-14 | 1 | -0/+1 | |
| | | | | | | PR4841. Patch by Craig Smith! llvm-svn: 98496 | |||||
* | 80-col violations/trailing whitespace. | Mikhail Glushenkov | 2010-02-28 | 1 | -11/+12 | |
| | | | | llvm-svn: 97427 | |||||
* | Setup correct data layout to match gcc's expectations on mingw32. | Anton Korobeynikov | 2010-02-12 | 1 | -1/+1 | |
| | | | | llvm-svn: 95981 | |||||
* | Fix typo. | Duncan Sands | 2010-01-12 | 1 | -1/+1 | |
| | | | | llvm-svn: 93235 | |||||
* | Tweak commit 91745, which changed target data for both Mingw and Cygwin, | Duncan Sands | 2010-01-12 | 1 | -1/+1 | |
| | | | | | | | to not touch Cygwin: the change caused llvm-gcc build failures due to long double getting the wrong size. Patch by Aaron Gray. llvm-svn: 93234 | |||||
* | Implement a feature (-vector-unaligned-mem) to allow targets to | David Greene | 2010-01-11 | 1 | -0/+5 | |
| | | | | | | | | ignore alignment requirements for SIMD memory operands. This is useful on architectures like the AMD 10h that do not trap on unaligned references if a status bit is twiddled at startup time. llvm-svn: 93151 | |||||
* | Remove target attribute break-sse-dep. Instead, do not fold load into sse ↵ | Evan Cheng | 2009-12-22 | 1 | -9/+0 | |
| | | | | | | partial update instructions unless optimizing for size. llvm-svn: 91910 | |||||
* | Bump alignment requirements for windows targets to achieve compartibility ↵ | Anton Korobeynikov | 2009-12-19 | 1 | -0/+3 | |
| | | | | | | | | with vcpp. Based on patch by Michael Beck! llvm-svn: 91745 | |||||
* | On recent Intel u-arch's, folding loads into some unary SSE instructions can | Evan Cheng | 2009-12-18 | 1 | -0/+9 | |
| | | | | | | | | | | | | | | | | | | | be non-optimal. To be precise, we should avoid folding loads if the instructions only update part of the destination register, and the non-updated part is not needed. e.g. cvtss2sd, sqrtss. Unfolding the load from these instructions breaks the partial register dependency and it can improve performance. e.g. movss (%rdi), %xmm0 cvtss2sd %xmm0, %xmm0 instead of cvtss2sd (%rdi), %xmm0 An alternative method to break dependency is to clear the register first. e.g. xorps %xmm0, %xmm0 cvtss2sd (%rdi), %xmm0 llvm-svn: 91672 | |||||
* | Target-independent support for TargetFlags on BlockAddress operands, | Dan Gohman | 2009-11-20 | 1 | -0/+5 | |
| | | | | | | and support for blockaddresses in x86-32 PIC mode. llvm-svn: 89506 | |||||
* | Allow target to specify regclass for which antideps will only be broken ↵ | David Goodwin | 2009-11-13 | 1 | -1/+1 | |
| | | | | | | along the critical path. llvm-svn: 88682 | |||||
* | Fixed to address code review. No functional changes. | David Goodwin | 2009-11-10 | 1 | -5/+1 | |
| | | | | llvm-svn: 86634 | |||||
* | Allow targets to specify register classes whose member registers should not ↵ | David Goodwin | 2009-11-10 | 1 | -2/+4 | |
| | | | | | | be renamed to break anti-dependencies. llvm-svn: 86628 | |||||
* | indicate what the native integer types for the target are. | Chris Lattner | 2009-11-07 | 1 | -3/+3 | |
| | | | | | | Please verify. llvm-svn: 86397 | |||||
* | X86 needs critical path anti-dependency breaking. | Evan Cheng | 2009-10-23 | 1 | -1/+1 | |
| | | | | llvm-svn: 84931 | |||||
* | Allow the target to select the level of anti-dependence breaking that should ↵ | David Goodwin | 2009-10-22 | 1 | -1/+3 | |
| | | | | | | be performed by the post-RA scheduler. The default is none. llvm-svn: 84911 | |||||
* | Turn on post-alloc scheduling for x86. | Evan Cheng | 2009-10-18 | 1 | -2/+1 | |
| | | | | llvm-svn: 84431 | |||||
* | Oops. I forgot to change the tests first. Disable post-alloc scheduling. | Evan Cheng | 2009-10-18 | 1 | -1/+1 | |
| | | | | llvm-svn: 84425 | |||||
* | -Revert parts of 84326 and 84411. Distinquishing between fixed and non-fixed | Evan Cheng | 2009-10-18 | 1 | -1/+1 | |
| | | | | | | | | | | | stack slots and giving them different PseudoSourceValue's did not fix the problem of post-alloc scheduling miscompiling llvm itself. - Apply Dan's conservative workaround by assuming any non fixed stack slots can alias other memory locations. This means a load from spill slot #1 cannot move above a store of spill slot #2. - Enable post-alloc scheduling for x86 at optimization leverl Default and above. llvm-svn: 84424 | |||||
* | Change createPostRAScheduler so it can be turned off at llc -O1. | Evan Cheng | 2009-10-16 | 1 | -0/+7 | |
| | | | | llvm-svn: 84273 | |||||
* | Remove X86Subtarget::IsLinux. It's no longer being used. | Evan Cheng | 2009-10-15 | 1 | -8/+1 | |
| | | | | llvm-svn: 84200 | |||||
* | rearrange X86ATTAsmPrinter::doFinalization, making a scan of | Chris Lattner | 2009-09-16 | 1 | -1/+9 | |
| | | | | | | the global variable list only happen for COFF targets. llvm-svn: 82010 | |||||
* | Make these functions static and local. | Daniel Dunbar | 2009-09-03 | 1 | -8/+0 | |
| | | | | llvm-svn: 80892 |