summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* [AArch64][RegisterBankInfo] Fix typo in the logic used in assert.Quentin Colombet2016-12-051-1/+1
| | | | | | | Thanks to David Binderman <dcb314@hotmail.com> for bringing it to my attention. llvm-svn: 288688
* [DIExpression] Introduce a dedicated DW_OP_LLVM_fragment operationAdrian Prantl2016-12-0552-276/+319
| | | | | | | | | | | | | | | | | | | | | | | | | | | | so we can stop using DW_OP_bit_piece with the wrong semantics. The entire back story can be found here: http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20161114/405934.html The gist is that in LLVM we've been misinterpreting DW_OP_bit_piece's offset field to mean the offset into the source variable rather than the offset into the location at the top the DWARF expression stack. In order to be able to fix this in a subsequent patch, this patch introduces a dedicated DW_OP_LLVM_fragment operation with the semantics that we used to apply to DW_OP_bit_piece, which is what we actually need while inside of LLVM. This patch is complete with a bitcode upgrade for expressions using the old format. It does not yet fix the DWARF backend to use DW_OP_bit_piece correctly. Implementation note: We discussed several options for implementing this, including reserving a dedicated field in DIExpression for the fragment size and offset, but using an custom operator at the end of the expression works just fine and is more efficient because we then only pay for it when we need it. Differential Revision: https://reviews.llvm.org/D27361 rdar://problem/29335809 llvm-svn: 288683
* [CMake] Fix symlink refactor for multi-configuration generatorsChris Bieneman2016-12-051-3/+23
| | | | | | This fix, while a bit complicated, preserves the reusability while fixing the issues reported on llvm-commits with visual studio generators. llvm-svn: 288679
* [TargetLowering] add special-case for demanded bits analysis of 'not'Sanjay Patel2016-12-052-21/+26
| | | | | | | | | | | | | | | | We treat bitwise 'not' as a special operation and try not to reduce its all-ones mask. Presumably, this is because a 'not' may be cheaper than a generic 'xor' or it may get folded into another logic op if the target has those. However, if we can remove a logic instruction by changing the xor's constant mask value, that should always be a win. Note that the IR version of SimplifyDemandedBits() does not treat 'not' as a special-case currently (although that's marked with a FIXME). So if you run this IR through -instcombine, you should get the same end result. I'm hoping to add a different backend transform that will expose this problem though, so I need to solve this first. Differential Revision: https://reviews.llvm.org/D27356 llvm-svn: 288676
* [x86] fold fand (fxor X, -1) Y --> fandn X, YSanjay Patel2016-12-052-6/+34
| | | | | | | | | | | I noticed this gap in the scalar FP-logic matching with: D26712 and: rL287171 Differential Revision: https://reviews.llvm.org/D27385 llvm-svn: 288675
* Use range based for loop. NFCI.Simon Pilgrim2016-12-051-7/+4
| | | | llvm-svn: 288671
* [PPC] Slightly Improve Assembly Parsing errors and add EOL commentNirav Dave2016-12-052-194/+163
| | | | | | | | parsing tests. NFC intended. llvm-svn: 288667
* [mips][ias] N32/N64 must not sort the relocation table.Simon Dardis2016-12-052-2/+17
| | | | | | | | | | | | Doing so changes the evaluation order for relocation composition. Patch By: Daniel Sanders Reviewers: vkalintiris, atanasyan Differential Revision: https://reviews.llvm.org/D26401 llvm-svn: 288666
* [X86][SSE] Add support for combining target shuffles to UNPCKL/UNPCKH.Simon Pilgrim2016-12-056-57/+79
| | | | llvm-svn: 288663
* [X86][SSE] Add helper function to create UNPCKL/UNPCKH shuffle masks. NFCI.Simon Pilgrim2016-12-051-27/+25
| | | | llvm-svn: 288659
* [GlobalISel] Extract handleAssignments out of AArch64CallLoweringDiana Picus2016-12-054-87/+89
| | | | | | | | | | | | This function seems target-independent so far: all the target-specific behaviour is isolated in the CCAssignFn and the ValueHandler (which we're also extracting into the generic CallLowering). The intention is to use this in the ARM backend. Differential Revision: https://reviews.llvm.org/D27045 llvm-svn: 288658
* [AMDGPU] Disassembler: fix s_buffer_store_dword instructionsSam Kolton2016-12-053-11/+83
| | | | | | | | | | | | Summary: s_buffer_store_dword instructions sdata operand was called sdst in encoding. This caused disassembler to fail. Reviewers: tstellarAMD, vpykhtin, artem.tamazov Subscribers: arsenm, nhaehnle, rampitec Differential Revision: https://reviews.llvm.org/D27100 llvm-svn: 288657
* [cmake] Include component in Sphinx install rulesMichal Gorny2016-12-051-0/+2
| | | | | | | | | Include component in install rules for Sphinx targets. Based on a similar suggestion for other doc targets in D24935. Differential Revision: https://reviews.llvm.org/D24982 llvm-svn: 288656
* TableGen/AsmMatcherEmitter: Trust that stable_sort worksMatthias Braun2016-12-051-10/+0
| | | | | | | | | A debug build of AsmMatcherEmitter would use a quadratic algorithm to check whether std::stable_sort() actually sorted. Let's hope the authors of our C++ standard library did that testing for us. Removing the check gives a 3x speedup in the X86 case. llvm-svn: 288655
* TableGen: Some more std::string->StringInit* replacementsMatthias Braun2016-12-054-38/+28
| | | | llvm-svn: 288653
* TableGen/Record: Shortcut member access in hottest functionMatthias Braun2016-12-051-2/+3
| | | | | | | | This may seem unusual, but makes most debug tblgen builds ~10% faster. Usually we wouldn't care about speed that much in debug builds, but for tblgen that also translates into build time. llvm-svn: 288652
* TableGen: TableGenStringKey is no longer necessary as of r288642Matthias Braun2016-12-051-55/+0
| | | | llvm-svn: 288651
* TableGen: Use range based for; reserve vectors where possibleMatthias Braun2016-12-051-18/+23
| | | | llvm-svn: 288650
* TableGen/TGParser: Prefer SmallVector/ArrayRef over std::vectorMatthias Braun2016-12-052-68/+81
| | | | llvm-svn: 288649
* TableGen/Record: Replace std::vector with SmallVector/ArrayRefMatthias Braun2016-12-054-63/+60
| | | | llvm-svn: 288648
* ListInit::convertInitializerTo: avoid foldingset lookup if nothing changedMatthias Braun2016-12-051-4/+13
| | | | llvm-svn: 288647
* [X86] Remove unnecessary explicit uses of .SimpleTy just to do an equality ↵Craig Topper2016-12-051-11/+11
| | | | | | comparison. MVT's operator== already takes care of this. NFCI llvm-svn: 288646
* TableGen: Use StringInit instead of std::string for DagInit arg namesMatthias Braun2016-12-058-57/+66
| | | | llvm-svn: 288644
* TableGen: Use StringInit instead of std::string for DagInit nameMatthias Braun2016-12-054-19/+22
| | | | llvm-svn: 288643
* TableGen: Use more StringInit instead of StringRefMatthias Braun2016-12-053-45/+39
| | | | | | | | This forces the code to call StringInit::get on the string early and avoids storing duplicates in std::string and sometimes allows pointer comparisons instead of string comparisons. llvm-svn: 288642
* [AVX-512] Teach fast isel to handle 512-bit vector bitcasts.Craig Topper2016-12-052-2/+252
| | | | llvm-svn: 288641
* Use Darwin libtool's -no_warning_for_no_symbols if available to silence the ↵Kuba Mracek2016-12-051-1/+14
| | | | | | | | | | "has no symbols" link warning Building compiler-rt on Darwin produces dozens of meaningless warnings about object files having no symbols during static archive creation. This is very intentional as compiler-rt uses #ifdefs to conditionally compile platform-specific code, and we even have a .cpp source file that only contains static asserts to make sure the environment is configured right. On Linux, this situation is fine and no warning is produced. This patch adds a libtool version detection and if it's new enough, we'll use the -no_warning_for_no_symbols flag that suppresses this warning. Build logs should be much cleaner now! Differential Revision: https://reviews.llvm.org/D27119 llvm-svn: 288640
* TableGen: Factor out STRCONCAT constructor, add shortcut.Matthias Braun2016-12-051-26/+25
| | | | | | | | Introduce new constructor for STRCONCAT binop with a shortcut that immediately concatenates if the two arguments are StringInits. Makes the QualifyName code more readable and tablegen 2-3% faster. llvm-svn: 288639
* TableGen/Record: Move PointerIntPair to less used field of RecordValMatthias Braun2016-12-052-10/+10
| | | | llvm-svn: 288638
* [Hexagon] Adding additional tokenization characters in preparation for ↵Colin LeMahieu2016-12-053-8/+2
| | | | | | removing spacing from syntax. llvm-svn: 288637
* [AVX-512] Teach fast isel to use masked compare and movss for handling ↵Craig Topper2016-12-052-294/+215
| | | | | | scalar cmp and select sequence when AVX-512 is enabled. This matches the behavior of normal isel. llvm-svn: 288636
* [AVX-512] Add avx512f command lines to fast isel SSE select test.Craig Topper2016-12-051-0/+314
| | | | | | Currently the fast isel code emits an avx1 instruction sequence even with avx512. This is different than normal isel. A follow up commit will fix this. llvm-svn: 288635
* [Hexagon] Changing from literal numeric value to argument since #-1 will not ↵Colin LeMahieu2016-12-056-21/+56
| | | | | | parse when '-' is converted to a token. llvm-svn: 288634
* [CMake] Refactor add_llvm_tool_symlink for reuseChris Bieneman2016-12-051-13/+24
| | | | | | The old implementation of add_llvm_tool_symlink could fail in odd ways when building out of tree. This version solves that problem by not using the LLVM_* variables, and instead reaeding the target's properties. llvm-svn: 288632
* [X86][XOP] Add target shuffle tests showing missing UNPCKL combine.Simon Pilgrim2016-12-041-0/+14
| | | | llvm-svn: 288628
* [X86][AVX512] Add target shuffle tests showing missing UNPCK combines.Simon Pilgrim2016-12-042-0/+64
| | | | llvm-svn: 288627
* [X86] Mark 256-bit DPPS intrinsic as commutable to increase load matching ↵Craig Topper2016-12-041-1/+1
| | | | | | opportunities. llvm-svn: 288622
* [X86] Add Commutative property to several MMX arithmetic and logic intrinsics.Craig Topper2016-12-041-7/+7
| | | | | | I think these intrinsics were added after the Commutative was added to most of the rest of the intrinsics and it must have been forgotten. llvm-svn: 288621
* [stl-extras] Provide an adaptor of std::count for ranges.Michael Gottesman2016-12-042-0/+25
| | | | llvm-svn: 288619
* [AVR] Remove 'XFAIL' from a CodeGen testDylan McKay2016-12-041-1/+0
| | | | | | This seems to be fixed as of r288052. llvm-svn: 288618
* Always use / as the path separator.Rafael Espindola2016-12-041-1/+1
| | | | | | | It is not clear if it is worth the complexity to use \ on windows. This should fix the bots. llvm-svn: 288616
* Prefix path when displaying thin archives.Rafael Espindola2016-12-043-17/+24
| | | | | | Patch by Mark Santaniello. llvm-svn: 288615
* TableGen: Store Records on a BumpPtrAllocatorMatthias Braun2016-12-042-67/+76
| | | | | | | All these records are internalized and will live until exit. This makes them perfect candidates for a fast BumpPtrAllocator. llvm-svn: 288613
* TableGen: Use StringRef instead of const std::string& in return vals.Matthias Braun2016-12-0420-49/+52
| | | | | | | This will allow to switch to a different string storage in an upcoming commit. llvm-svn: 288612
* TableGen: Optimize common string concatenation with SmallStringMatthias Braun2016-12-041-2/+7
| | | | llvm-svn: 288611
* TableGen: Use StringRef instead of const std::string& for parametersMatthias Braun2016-12-044-51/+44
| | | | | | | | This avoid an extra construction of a std::string (and a heap allocation) when the caller only has a StringRef but no std::string at hand. llvm-svn: 288610
* [Object][MachO] Reference-ify some helper function arguments. NFC.Lang Hames2016-12-041-201/+200
| | | | | | | Changes all static helper functions in MachOObjectFile.cpp that expect a non-null MachOObjectFile pointer to take a reference instead. llvm-svn: 288608
* [MC] Generalize MCContext's SectionSymbols field.Dan Gohman2016-12-032-5/+5
| | | | | | | Change SectionSymbols so that it doesn't hard-code ELF types, so that it can be used for non-ELF targets. llvm-svn: 288607
* DAG: Fold out out of bounds insert_vector_eltMatt Arsenault2016-12-033-28/+42
| | | | | | | getNode already prevents formation of out of bounds constant extract_vector_elts. Do the same for insert_vector_elt. llvm-svn: 288603
* [WebAssembly] Eliminate an ad-hoc command-line argument.Dan Gohman2016-12-032-7/+6
| | | | | | | Use the target triple to determine whether to run the explicit-locals pass, rather than using a separate command-line argument. llvm-svn: 288602
OpenPOWER on IntegriCloud