summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* [DAGCombiner] Distribute TRUNC through AND in rotation amountAdam Nemet2014-03-071-0/+16
| | | | | | | | | | | | | | | | This is already done for shifts. Allow it for rotations as well. E.g.: (rotl:i32 x, (trunc (and y, 31))) -> (rotl:i32 x, (and (trunc y), 31)) Use the newly factored-out distributeTruncateThroughAnd. With this patch and some X86.td tweaks we should be able to remove redundant masking of the rotation amount like in the example above. HW implicitly performs this masking. The testcase will be added as part of the X86 patch. llvm-svn: 203316
* [DAGCombiner] Recognize another rotation idiomAdam Nemet2014-03-072-0/+134
| | | | | | | | | | | | | | | | This is the new idiom: x<<(y&31) | x>>((0-y)&31) which is recognized as: x ROTL (y&31) The change refines matchRotateSub. In Neg & (OpSize - 1) == (OpSize - Pos) & (OpSize - 1), if Pos is Pos' & (OpSize - 1) we can just use Pos' instead of Pos. llvm-svn: 203315
* [DAGCombiner] Slightly improve readability of matchRotateSubAdam Nemet2014-03-071-8/+9
| | | | | | | | | | Slightly change the wording in the function comment. Originally, it can be misunderstood as we turned the input into two subsequent rotates. Better connect the comment which talks about Mask and the code which used LoBits. Renamed variable to MaskLoBits. llvm-svn: 203314
* ISel: Make VSELECT selection terminate in cases where the condition type has toArnold Schwaighofer2014-03-072-0/+25
| | | | | | | | | | | | | | | be split and the result type widened. When the condition of a vselect has to be split it makes no sense widening the vselect and thereby widening the condition. We end up in an endless loop of widening (vselect result type) and splitting (condition mask type) doing this. Instead, split both the condition and the vselect and widen the result. I ran this over the test suite with i686 and mattr=+sse and saw no regressions. Fixes PR18036. llvm-svn: 203311
* Remove unnecessary test for Darwin and update testcase to be a little lessAdrian Prantl2014-03-073-11/+12
| | | | | | | horrible/fragile. rdar://problem/16264854 llvm-svn: 203309
* Add a virtual destructor to quiet a warning.Eric Christopher2014-03-071-0/+2
| | | | llvm-svn: 203307
* Range-ify some for loops.Owen Anderson2014-03-071-8/+4
| | | | llvm-svn: 203306
* Actually add the header file.Eric Christopher2014-03-071-0/+69
| | | | llvm-svn: 203305
* Two part patch:Eric Christopher2014-03-074-103/+106
| | | | | | | | | | | | | | | First: refactor out the emission of entries into the .debug_loc section into its own routine. Second: add a new class ByteStreamer that can be used to either emit using an AsmPrinter or hash using DIEHash the series of bytes that would be emitted. Use this in all of the location emission routines for the .debug_loc section. No functional change intended outside of a few additional comments in verbose assembly. llvm-svn: 203304
* Add include guards and make public a few routines that add valuesEric Christopher2014-03-071-1/+11
| | | | | | to the hash. llvm-svn: 203303
* Remove unused method declarationEli Bendersky2014-03-071-1/+0
| | | | llvm-svn: 203301
* Revert "Remove unnecessary check for Darwin. rdar://problem/16264854"Adrian Prantl2014-03-071-1/+1
| | | | | | This breaks linux buildbots. Go figure. llvm-svn: 203300
* Moved test file from test/MC/Mips to test/CodeGen/Mips.Sasa Stankovic2014-03-071-0/+0
| | | | llvm-svn: 203298
* Remove unnecessary check for Darwin. rdar://problem/16264854Adrian Prantl2014-03-071-1/+1
| | | | llvm-svn: 203297
* DebugInfo: Use DW_FORM_data4 for DW_AT_high_pc in inlined functionsDavid Blaikie2014-03-072-4/+4
| | | | | | Suggested by Adrian Prantl in code review for r203187. llvm-svn: 203296
* DebugInfo: Update test to cover linux (with a FIXME...) tooDavid Blaikie2014-03-071-6/+10
| | | | llvm-svn: 203295
* [C++11] Revert uses of lambdas with array_pod_sort.Benjamin Kramer2014-03-072-9/+11
| | | | | | Looks like GCC implements the lambda->function pointer conversion differently. llvm-svn: 203294
* [C++11] Convert sort predicates into lambdas.Benjamin Kramer2014-03-077-62/+33
| | | | | | No functionality change. llvm-svn: 203288
* Actually include the ArrayRef header rather than rely on the forwardEric Christopher2014-03-071-2/+1
| | | | | | declaration. llvm-svn: 203287
* Fix up formatting.Eric Christopher2014-03-071-9/+8
| | | | llvm-svn: 203286
* Fix EXPECT_* to not produce a compile warning.Eli Bendersky2014-03-071-2/+2
| | | | | | EXPECT_TRUE/FALSE is also more idiomatic for booleans than EXPECT_EQ llvm-svn: 203284
* R600/SI: Using SGPRs is illegal for instructions that read carry-out from VCCTom Stellard2014-03-073-8/+25
| | | | | Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> llvm-svn: 203281
* R600/SI: Custom lower i1 storesTom Stellard2014-03-072-3/+26
| | | | | | | | These are sometimes created by the shrink to boolean optimization in the globalopt pass. Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> llvm-svn: 203280
* [C++11] DwarfDebug: Turn single-use functors into lambdas.Benjamin Kramer2014-03-071-25/+16
| | | | | | No functionality change. llvm-svn: 203276
* [ADT] Update PointerIntPair to handle pointer types with more than 31 bits free.Jordan Rose2014-03-073-5/+84
| | | | | | | | | | Previously, the assertions in PointerIntPair would try to calculate the value (1 << NumLowBitsAvailable); the inferred type here is 'int', so if there were more than 31 bits available we'd get a shift overflow. Also, add a rudimentary unit test file for PointerIntPair. llvm-svn: 203273
* [docs] Teach CMake docs build how to generate Qt Creator help/documentation ↵Michael Gottesman2014-03-073-31/+115
| | | | | | | | | | files. Patch by Konrad Kleine. Differential Revision: http://llvm-reviews.chandlerc.com/D2967 llvm-svn: 203272
* [C++11] DwarfDebug: Use range-based for loops.Benjamin Kramer2014-03-071-245/+116
| | | | | | It has a lot of them with complex types. C++11 really shines here. llvm-svn: 203270
* Don't avoid cfi instructions on the bg/p.Rafael Espindola2014-03-072-6/+0
| | | | | | | The integrated assembler now works for ppc. Since this was the last use of the bg/p predicate and Hal says that it is now dead, drop the predicate too. llvm-svn: 203269
* Remove dead 'break' (dominated by 'return').Ted Kremenek2014-03-071-1/+0
| | | | llvm-svn: 203267
* Remove dead 'return'.Ted Kremenek2014-03-071-1/+0
| | | | llvm-svn: 203265
* MC: Use MachO::SectionType for MCSectionMachO::getType's return typeDavid Majnemer2014-03-073-3/+6
| | | | | | | | | This is a straightfoward replacement, it makes debugging a little easier. This has no functional impact. llvm-svn: 203264
* DebugInfo: Refactor high_pc/low_pc construction into reusable functionDavid Blaikie2014-03-072-6/+13
| | | | | | | For incoming improvements to inlined functions and lexical blocks suggested by Adrian Prantl in review of r203187. llvm-svn: 203263
* "Mac OS/X" -> "Mac OS X" spelling fixes for llvm.Nico Weber2014-03-075-8/+8
| | | | | | Patch from Sean McBride <sean@rogue-research.com>! llvm-svn: 203258
* C++11: Remove const from in auto guidelinesDuncan P. N. Exon Smith2014-03-071-7/+5
| | | | | | Using const is orthogonal to guidelines on using auto& and auto*. llvm-svn: 203257
* DebugInfo: Restrict DW_AT_high_pc encoding as data4 offset to DWARF 4 as per ↵David Blaikie2014-03-072-3/+7
| | | | | | | | spec Code review feedback to r203187 from Oliver Stannard. Thanks! llvm-svn: 203256
* C++11: Copy pointers with const auto *Duncan P. N. Exon Smith2014-03-071-1/+5
| | | | llvm-svn: 203254
* ARM: Make .unreq directives case-insensitiveDuncan P. N. Exon Smith2014-03-072-1/+21
| | | | | | | | Be case-insensitive when processing .unreq directives. Patch by Lin Zuojian! llvm-svn: 203251
* [C++11] Now that the users are gone, rip out the duplicated traits from ↵Benjamin Kramer2014-03-072-175/+24
| | | | | | | | type_traits.h Simplify the remaining ones a bit. llvm-svn: 203249
* Add missing std:: qualifiersDmitri Gribenko2014-03-071-2/+2
| | | | llvm-svn: 203246
* Make header standalone for libstdc++.Benjamin Kramer2014-03-071-0/+1
| | | | llvm-svn: 203243
* [C++11] Replace LLVM-style type traits with C++11 standard ones.Benjamin Kramer2014-03-0718-133/+119
| | | | | | No functionality change. llvm-svn: 203242
* [SystemZ] Move sign_extend optimization to PerformDAGCombineRichard Sandiford2014-03-072-36/+37
| | | | | | | | | | The target was marking SIGN_EXTEND as Custom because it wanted to optimize certain sign-extended shifts. In all other respects the extension is Legal, so it'd be better to do the optimization in PerformDAGCombine instead. No functional change intended. llvm-svn: 203234
* CodeGenPrep: sink extends of illegal types into use block.Tim Northover2014-03-074-82/+136
| | | | | | | | | This helps the instruction selector to lower an i64 * i64 -> i128 multiplication into a single instruction on targets which support it. Patch by Manuel Jacob. llvm-svn: 203230
* InstCombine: form shuffles from wider range of insert/extractelementsTim Northover2014-03-073-49/+136
| | | | | | | | | | | | Sequences of insertelement/extractelements are sometimes used to build vectorsr; this code tries to put them back together into shuffles, but could only produce a completely uniform shuffle types (<N x T> from two <N x T> sources). This should allow shuffles with different numbers of elements on the input and output sides as well. llvm-svn: 203229
* Change MCDisassembler::setSymbolizer to take unique_ptr by value.Ahmed Charles2014-03-074-5/+5
| | | | | | | This changes the interface to be more explicit that ownership is being transferred. llvm-svn: 203223
* Remove unused method.Craig Topper2014-03-071-2/+0
| | | | llvm-svn: 203221
* [C++11] Add 'override' keyword to virtual methods that override their base ↵Craig Topper2014-03-0783-347/+346
| | | | | | class. llvm-svn: 203220
* Enable FeatureFastUAMem for Silvermont processorAlexey Volkov2014-03-071-1/+1
| | | | | | Differential Revision: http://llvm-reviews.chandlerc.com/D2982 llvm-svn: 203218
* Test commitAlexey Volkov2014-03-071-1/+1
| | | | | | Removed whitespace llvm-svn: 203216
* MC: Remove superfluous section attribute flag definitionsDavid Majnemer2014-03-0712-240/+152
| | | | | | | | | | | | | | | | | | | Summary: llvm/MC/MCSectionMachO.h and llvm/Support/MachO.h both had the same definitions for the section flags. Instead, grab the definitions out of support. No functionality change. Reviewers: grosbach, Bigcheese, rafael Reviewed By: rafael CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2998 llvm-svn: 203211
OpenPOWER on IntegriCloud