summaryrefslogtreecommitdiff
path: root/contrib/llvm/lib/Target/X86
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r308421, and updateDimitry Andric2017-07-1915-89/+1089
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=321238
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r307894, and updateDimitry Andric2017-07-1320-378/+3238
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=320970
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r306956, and updateDimitry Andric2017-07-0212-134/+959
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=320572
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r306325, and updateDimitry Andric2017-06-2722-275/+831
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=320397
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r305575, and updateDimitry Andric2017-06-174-120/+246
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=320041
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r305145, and updateDimitry Andric2017-06-1033-89/+3771
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=319799
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r304659, and updateDimitry Andric2017-06-031-61/+74
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=319547
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r304460, and updateDimitry Andric2017-06-019-157/+170
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=319479
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r304222, and updateDimitry Andric2017-05-301-2/+79
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=319250
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r304149, and updateDimitry Andric2017-05-2918-3491/+279
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=319164
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r303571, and updateDimitry Andric2017-05-2217-266/+497
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=318681
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r303291, and updateDimitry Andric2017-05-187-237/+132
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=318477
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r303197, and updateDimitry Andric2017-05-1618-427/+730
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=318384
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r302418, and updateDimitry Andric2017-05-0817-295/+442
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=317969
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r302069, and updateDimitry Andric2017-05-0318-394/+546
| | | | | | | build glue (preliminary, not all option combinations work yet). Notes: svn path=/projects/clang500-import/; revision=317778
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r301441, and updateDimitry Andric2017-04-2620-174/+245
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=317472
* Merge llvm, clang, lld and lldb trunk r300890, and update build glue.Dimitry Andric2017-04-208-40/+105
| | | | Notes: svn path=/projects/clang500-import/; revision=317230
* Merge ^/head r316992 through r317215.Dimitry Andric2017-04-202-7/+3
|\ | | | | | | Notes: svn path=/projects/clang500-import/; revision=317217
| * Pull in r300429 from upstream llvm trunk (by Benjamin Kramer):Dimitry Andric2017-04-182-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [X86] Remove special handling for 16 bit for A asm constraints. Our 16 bit support is assembler-only + the terrible hack that is .code16gcc. Simply using 32 bit registers does the right thing for the latter. Fixes PR32681. This fixes some cases of assembling 16 bit code (i.e. SeaBIOS) that uses the 'A' inline asm constraint, after r316989. MFC after: 3 days X-MFC-With: r316989 Notes: svn path=/head/; revision=317079
* | Merge llvm trunk r300422 and resolve conflicts.Dimitry Andric2017-04-1685-5618/+8692
|/ | | | Notes: svn path=/projects/clang500-import/; revision=317029
* Pull in r300404 from upstream llvm trunk (by me):Dimitry Andric2017-04-152-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use correct registers for "A" inline asm constraint Summary: In PR32594, inline assembly using the 'A' constraint on x86_64 causes llvm to crash with a "Cannot select" stack trace. This is because `X86TargetLowering::getRegForInlineAsmConstraint` hardcodes that 'A' means the EAX and EDX registers. However, on x86_64 it means the RAX and RDX registers, and on 16-bit x86 (ia16?) it means the old AX and DX registers. Add new register classes in `X86RegisterInfo.td` to support these cases, and amend the logic in `getRegForInlineAsmConstraint` to cope with different subtargets. Also add a test case, derived from PR32594. Reviewers: craig.topper, qcolombet, RKSimon, ab Reviewed By: ab Subscribers: ab, emaste, royger, llvm-commits Differential Revision: https://reviews.llvm.org/D31902 This should fix crashes when using the 'A' constraint on amd64, for example as it is being used in Xen. Reported by: royger MFC after: 3 days Notes: svn path=/head/; revision=316989
* Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branchDimitry Andric2017-02-115-145/+2
| | | | | | | r294803, and update build glue. Notes: svn path=/projects/clang400-import/; revision=313643
* Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branchDimitry Andric2017-01-291-99/+2
| | | | | | | r293443, and update build glue. Notes: svn path=/projects/clang400-import/; revision=312967
* Pull in r292758 from upstream llvm trunk (by Sanjay Patel):Dimitry Andric2017-01-221-14/+26
| | | | | | | | | | | | | [x86] avoid crashing with illegal vector type (PR31672) https://llvm.org/bugs/show_bug.cgi?id=31672 This fixes an assertion while building graphics/gegl3. PR: 216166 Notes: svn path=/projects/clang400-import/; revision=312643
* Merge llvm, clang, lld and lldb release_40 branch 292732, and updateDimitry Andric2017-01-222-25/+10
| | | | | | | build glue. Notes: svn path=/projects/clang400-import/; revision=312639
* Merge llvm, clang, lld and lldb release_40 branch r292009. Also updateDimitry Andric2017-01-148-99/+514
| | | | | | | build glue. Notes: svn path=/projects/clang400-import/; revision=312197
* Merge llvm, clang, lld and lldb trunk r291476.Dimitry Andric2017-01-095-302/+521
| | | | Notes: svn path=/projects/clang400-import/; revision=311833
* Merge llvm, clang, lld and lldb trunk r291274, and resolve conflicts.Dimitry Andric2017-01-063-368/+437
| | | | Notes: svn path=/projects/clang400-import/; revision=311544
* Merge llvm, clang, lld and lldb trunk r291012, and resolve conflicts.Dimitry Andric2017-01-049-367/+371
| | | | Notes: svn path=/projects/clang400-import/; revision=311327
* Fix line endings (upstream file has CRLF ones).Dimitry Andric2017-01-021-208/+208
| | | | Notes: svn path=/projects/clang400-import/; revision=311146
* Update llvm to trunk r290819 and resolve conflicts.Dimitry Andric2017-01-0282-8011/+17687
| | | | Notes: svn path=/projects/clang400-import/; revision=311142
* Update llvm, clang, lld and lldb to release_39 branch r287912.Dimitry Andric2016-11-262-1/+12
| | | | Notes: svn path=/projects/clang391-import/; revision=309175
* Work around LLVM PR30879, which is about a bad interaction between X86Dimitry Andric2016-11-191-0/+5
| | | | | | | | | | | | | | | | | | | Call Frame Optimization on i386 and libunwind, by disallowing the optimization for i386-freebsd12. This should fix some instances of broken exception handling when frame pointers are omitted, in particular some unittests run during the build of editors/libreoffice. This hack will be removed as soon as upstream has implemented a more permanent fix for this problem. Upstream PR: https://llvm.org/bugs/show_bug.cgi?id=30879 Reviewed by: emaste PR: 212343 Notes: svn path=/projects/clang390-import/; revision=308867
* Pull in r282336 from upstream llvm trunk (by Sanjay Patel):Dimitry Andric2016-09-241-3/+4
| | | | | | | | | | | | | | | | | | | | [x86] don't try to create a vector integer inst for an SSE1 target (PR30512) This bug was introduced with: http://reviews.llvm.org/rL272511 We need to restrict the lowering to v4f32 comparisons because that's all SSE1 can handle. This should fix: https://llvm.org/bugs/show_bug.cgi?id=28044 This avoids a "Do not know how to custom type legalize this operation" error when building the multimedia/ffmpeg port on i386 with SSE enabled. Notes: svn path=/projects/clang390-import/; revision=306302
* Pull in r280837 from upstream llvm trunk (by Wei Mi):Dimitry Andric2016-09-071-1/+2
| | | | | | | | | | | | | | | Don't reduce the width of vector mul if the target doesn't support SSE2. The patch is to fix PR30298, which is caused by rL272694. The solution is to bail out if the target has no SSE2. Differential Revision: https://reviews.llvm.org/D24288 This fixes building the multimedia/libx264 port on i386. Notes: svn path=/projects/clang390-import/; revision=305564
* Update llvm to release_39 branch r278877.Dimitry Andric2016-08-174-19/+60
| | | | Notes: svn path=/projects/clang390-import/; revision=304310
* Update llvm to release_39 branch r276489, and resolve conflicts.Dimitry Andric2016-08-1682-12230/+19020
| | | | Notes: svn path=/projects/clang390-import/; revision=304240
* Pull in r271548 from upstream llvm trunk (by me):Dimitry Andric2016-06-021-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Only attempt to detect AVG if SSE2 is available Summary: In PR29973 Sanjay Patel reported an assertion failure when a certain loop was optimized, for a target without SSE2 support. It turned out this was because of the AVG pattern detection introduced in rL253952. Prevent the assertion failure by bailing out early in `detectAVGPattern()`, if the target does not support SSE2. Also add a minimized test case. Reviewers: congh, eli.friedman, spatel Subscribers: emaste, llvm-commits Differential Revision: http://reviews.llvm.org/D20905 This should fix assertion failures ("Requires at least SSE2!") when building the games/0ad port with CPUTYPE=pentium3. Reported by: madpilot Notes: svn path=/head/; revision=301227
* Pull in r264465 from upstream llvm trunk (by David Majnemer):Dimitry Andric2016-03-261-1/+1
| | | | | | | | | | | | | | | | | | [X86] Emit a proper ADJCALLSTACKDOWN in EmitLoweredTLSAddr We forgot to add the second machine operand to our ADJCALLSTACKDOWN, resulting in crashes in PEI. This fixes PR27071. This should fix an assertion failure during buildworld, when using -Os, and targeting either i386 directly, or building the 32-bit libraries on amd64. Reported by: Eric Camachat <eric.camachat@gmail.com> Notes: svn path=/head/; revision=297294
* Update llvm and clang to release_38 branch r261684.Dimitry Andric2016-02-243-2/+39
| | | | Notes: svn path=/projects/clang380-import/; revision=296011
* Undo r295543, since the shrink wrapping bug was fixed upstream by DavideDimitry Andric2016-02-241-4/+0
| | | | | | | Italiano and Quentin Colombet. Notes: svn path=/projects/clang380-import/; revision=296008
* Update llvm and clang to release_38 branch r261369.Dimitry Andric2016-02-213-40/+21
| | | | Notes: svn path=/projects/clang380-import/; revision=295859
* Update llvm, clang and lldb to release_38 branch r260756.Dimitry Andric2016-02-131-41/+24
| | | | Notes: svn path=/projects/clang380-import/; revision=295600
* For now, disable shrink-wrapping (a new optimization pass that computesDimitry Andric2016-02-111-0/+4
| | | | | | | | | | the safe point to insert the prologue and epilogue of the function) on X86. This prevents problems with some functions using TLS, such as in jemalloc, and which was the cause for Address Sanitizer crashes. The correct fix is still being discussed upstream. Notes: svn path=/projects/clang380-import/; revision=295543
* Update llvm, clang and lldb to release_38 branch r258968.Dimitry Andric2016-01-271-1/+2
| | | | Notes: svn path=/projects/clang380-import/; revision=294960
* Update llvm and clang to release_38 branch r258549.Dimitry Andric2016-01-223-7/+24
| | | | Notes: svn path=/projects/clang380-import/; revision=294609
* Update llvm, clang and lldb to release_38 branch r257836.Dimitry Andric2016-01-162-7/+8
| | | | Notes: svn path=/projects/clang380-import/; revision=294170
* Update llvm, clang and lldb to trunk r257626, and update build glue.Dimitry Andric2016-01-1416-265/+784
| | | | Notes: svn path=/projects/clang380-import/; revision=294024
* Update llvm to trunk r256945.Dimitry Andric2016-01-0621-370/+535
| | | | Notes: svn path=/projects/clang380-import/; revision=293265
* Update llvm to trunk r256633.Dimitry Andric2015-12-3073-7550/+15183
| | | | Notes: svn path=/projects/clang380-import/; revision=292941