summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86
Commit message (Collapse)AuthorAgeFilesLines
* Corrected Atom latencies for SSE SQRT instructions.Preston Gurd2013-05-073-19/+36
| | | | llvm-svn: 181346
* Re-enable AVX detection on x64 platforms.Michael Kuperstein2013-05-071-1/+2
| | | | llvm-svn: 181313
* Remove a recently redundant transform from X86ISelLowering.David Majnemer2013-05-051-11/+0
| | | | | | | | | | | | X86ISelLowering has support to treat: (icmp ne (and (xor %flags, -1), (shl 1, flag)), 0) as if it were actually: (icmp eq (and %flags, (shl 1, flag)), 0) However, r179386 has code at the InstCombine level to handle this. llvm-svn: 181145
* Add ArrayRef constructor from None, and do the cleanups that this ↵Dmitri Gribenko2013-05-051-2/+2
| | | | | | | | constructor enables Patch by Robert Wilhelm. llvm-svn: 181138
* whitespaceNadav Rotem2013-05-041-2/+2
| | | | llvm-svn: 181137
* Fix an odd comment.Nadav Rotem2013-05-041-2/+1
| | | | llvm-svn: 181136
* X86: Add target description for btver2; make autodetection logic aware of AVX.Benjamin Kramer2013-05-031-1/+6
| | | | llvm-svn: 181005
* Unbreaking the non-x86 build bots by protecting the AVX test code properly.Aaron Ballman2013-05-031-0/+4
| | | | llvm-svn: 180992
* Correctly testing for AVX support in x86 based off code from Hosts.cpp.Aaron Ballman2013-05-031-1/+18
| | | | llvm-svn: 180991
* In MC asm parsing, account for the possibility of whitespace withinJohn McCall2013-05-031-18/+22
| | | | | | | | | | | | | | the "identifier" parsed by the frontend callback by skipping forward until we've consumed a token that ends at the point dictated by the callback. In addition, inform the callback when it's parsing an unevaluated operand (e.g. mov eax, LENGTH A::x) as opposed to an evaluated one (e.g. mov eax, [A::x]). This commit depends on a clang commit. llvm-svn: 180978
* 80-col fixup.Michael Liao2013-05-021-2/+3
| | | | llvm-svn: 180915
* Avoid duplicating logic on frame register selecting when lowering eh_returnMichael Liao2013-05-021-9/+11
| | | | | | No functionality change llvm-svn: 180914
* Avoid duplicating logic on frame register selecting when lowering frameaddrMichael Liao2013-05-021-1/+3
| | | | | | No functionality change llvm-svn: 180912
* Put VMOVPQIto64rr in the VRPDI class.Rafael Espindola2013-05-011-3/+3
| | | | | | Patch by Joshua Magee. llvm-svn: 180842
* X86: Now that we have a canonical form for vector integer abs, match it into ↵Benjamin Kramer2013-04-261-0/+51
| | | | | | pabs. llvm-svn: 180600
* Make function documentation conform to llvm standards.Preston Gurd2013-04-251-30/+32
| | | | | | Expunge all remaining traces and use of live variable information. llvm-svn: 180577
* This patch adds the X86FixupLEAs pass, which will reduce instructionPreston Gurd2013-04-257-0/+270
| | | | | | | | latency for certain models of the Intel Atom family, by converting instructions into their equivalent LEA instructions, when it is both useful and possible to do so. llvm-svn: 180573
* Fix section relocation for SECTIONREL32 with immediate offset.Rafael Espindola2013-04-251-2/+15
| | | | | | Patch by Kai Nacke. This matches the gnu as output. llvm-svn: 180568
* [ms-inline asm] Removed this unnecessary check. In the current implementation,Chad Rosier2013-04-221-1/+1
| | | | | | Disp will always be one of MCSymbolRefExpr or MCConstantExpr, and never NULL. llvm-svn: 180059
* [ms-inline asm] Add the OpDecl to the InlineAsmIdentifierInfo struct and in turnChad Rosier2013-04-221-13/+18
| | | | | | | the MCParsedAsmOperand. Part of rdar://13663589 llvm-svn: 180054
* Fix unused variable warning.Chad Rosier2013-04-221-1/+1
| | | | llvm-svn: 180044
* [ms-inline asm] Remove the identifier parsing logic from the AsmParser. This isChad Rosier2013-04-221-61/+55
| | | | | | | | now taken care of by the frontend, which allows us to parse arbitrary C/C++ variables. Part of rdar://13663589 llvm-svn: 180037
* [ms-inline asm] Refactor/clean up the SemaLookup interface. No functionalChad Rosier2013-04-221-34/+23
| | | | | | | change indended. Part of rdar://13663589 llvm-svn: 180028
* Remove unused ShouldFoldAtomicFences flag.Tim Northover2013-04-201-7/+0
| | | | | | | | I think it's almost impossible to fold atomic fences profitably under LLVM/C++11 semantics. As a result, this is now unused and just cluttering up the target interface. llvm-svn: 179940
* Remove unused MEMBARRIER DAG node; it's been replaced by ATOMIC_FENCE.Tim Northover2013-04-201-46/+0
| | | | llvm-svn: 179939
* Move TryToFoldFastISelLoad to FastISel, where it belongs. In general, I'mEli Bendersky2013-04-191-9/+5
| | | | | | | trying to move as much FastISel logic as possible out of the main path in SelectionDAGISel - intermixing them just adds confusion. llvm-svn: 179902
* ArrayRefize getMachineNode(). No functionality change.Michael Liao2013-04-193-36/+18
| | | | llvm-svn: 179901
* [ms-inline asm] Make code layout more canonical with iniline asm handled last.Chad Rosier2013-04-191-13/+13
| | | | llvm-svn: 179875
* [ms-inline asm] Refactor the parsing of identifiers. No functional changeChad Rosier2013-04-191-39/+33
| | | | | | | indended. Part of rdar://13663589 llvm-svn: 179871
* [ms-inline asm] Remove these asserts. C++ variables that use namespaceChad Rosier2013-04-191-2/+0
| | | | | | qualifiers don't necessarily begin with an identifier (e.g., ::foo::bar). llvm-svn: 179867
* [ms-inline asm] Move this variable into the scope in which it is used.Chad Rosier2013-04-191-1/+1
| | | | llvm-svn: 179866
* [ms-inline asm] Make this a hard error.Chad Rosier2013-04-191-4/+4
| | | | llvm-svn: 179865
* [ms-inline asm] Cleanup the dot operator implementation.Chad Rosier2013-04-191-29/+15
| | | | llvm-svn: 179856
* Use 'array_lengthof' as possible to avoid magic numbersMichael Liao2013-04-191-23/+32
| | | | llvm-svn: 179833
* Use an enum instead of magic constants to improve readability.Bill Wendling2013-04-192-16/+44
| | | | llvm-svn: 179820
* [ms-inline asm] Apply the condition code mnemonic aliases to both the Intel andChad Rosier2013-04-181-1/+1
| | | | | | | AT&T dialect. Test case for r179804 as well. rdar://13674398 and PR13340. llvm-svn: 179813
* Set the compact unwind encoding to 'requires EH DWARF' if we cannot generate ↵Bill Wendling2013-04-181-9/+9
| | | | | | a CU encoding. llvm-svn: 179808
* [asm parser] Add support for predicating MnemonicAlias based on the assemblerChad Rosier2013-04-182-64/+70
| | | | | | | | variant/dialect. Addresses a FIXME in the emitMnemonicAliases function. Use and test case to come shortly. rdar://13688439 and part of PR13340. llvm-svn: 179804
* X86: Add an SSE2 lowering for 64 bit compares when pcmpgtq (SSE4.2) isn't ↵Benjamin Kramer2013-04-181-15/+40
| | | | | | | | available. This pattern started popping up in vectorized min/max reductions. llvm-svn: 179797
* Allow misaligned stores in x86 fast-isel.Derek Schuff2013-04-181-5/+0
| | | | | | | | | | | | In X86FastISel::X86SelectStore(), improperly aligned stores are rejected and handled by the DAG-based ISel. However, X86FastISel::X86SelectLoad() makes no such requirement. There doesn't appear to be an x86 architectural correctness issue with allowing potentially unaligned store instructions. This patch removes this restriction. Patch by Jim Stichnot. llvm-svn: 179774
* [ms-inline asm] Simplify some logic and add a FIXME for unhandled unary minus.Chad Rosier2013-04-181-10/+13
| | | | llvm-svn: 179765
* Make this private method.Chad Rosier2013-04-181-4/+4
| | | | llvm-svn: 179764
* [ms-inline asm] These should be int64_t, not uint64_t.Chad Rosier2013-04-171-6/+6
| | | | llvm-svn: 179724
* [ms-inline asm] Add support for the minus unary operator. Previously, we wereChad Rosier2013-04-171-72/+106
| | | | | | | | | | | unable to handle cases such as __asm mov eax, 8*-8. This patch also attempts to simplify the state machine. Further, the error reporting has been improved. Test cases included, but more will be added to the clang side shortly. rdar://13668445 llvm-svn: 179719
* This patch teaches x86 fast-isel to generate the native div/idiv instructionsEli Bendersky2013-04-171-0/+125
| | | | | | | | | for the sdiv/srem/udiv/urem bitcode instructions. This is done for the i8, i16, and i32 types, as well as i64 for the x86_64 target. Patch by Jim Stichnoth llvm-svn: 179715
* X86 cost model: Exit before calling getSimpleVT on non-simple VTsArnold Schwaighofer2013-04-171-0/+4
| | | | | | | | getSimpleVT can only handle simple value types. radar://13676022 llvm-svn: 179714
* [ms-inline asm] Add support for parsing complex immediate expressions. TestChad Rosier2013-04-171-32/+51
| | | | | | | cases to be submitted on clang side shortly. rdar://13663768 and PR15760 llvm-svn: 179655
* Remove unused variable from previous refactor.Chad Rosier2013-04-161-3/+0
| | | | llvm-svn: 179611
* [ms-inline asm] Refactor. No functional change intended.Chad Rosier2013-04-161-405/+419
| | | | llvm-svn: 179610
* [ms-inline asm] Remove some dead code.Chad Rosier2013-04-161-8/+0
| | | | llvm-svn: 179607
OpenPOWER on IntegriCloud