summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* [Stackmaps] Make ithe frame-pointer required for stackmaps.Juergen Ributzka2014-10-029-14/+16
| | | | | | | | | Do not eliminate the frame pointer if there is a stackmap or patchpoint in the function. All stackmap references should be FP relative. This fixes PR21107. llvm-svn: 218920
* Revert "DI: Fold constant arguments into a single MDString"Duncan P. N. Exon Smith2014-10-02354-6804/+6705
| | | | | | This reverts commit r218914 while I investigate some bots. llvm-svn: 218918
* Rename data -> DataRui Ueyama2014-10-022-5/+5
| | | | llvm-svn: 218916
* llvm-readobj: print COFF imported symbolsRui Ueyama2014-10-024-4/+141
| | | | | | | | This patch defines a new iterator for the imported symbols. Make a change to COFFDumper to use that iterator to print out imported symbols and its ordinals. llvm-svn: 218915
* DI: Fold constant arguments into a single MDStringDuncan P. N. Exon Smith2014-10-02354-6705/+6804
| | | | | | | | | | | | | This patch addresses the first stage of PR17891 by folding constant arguments together into a single MDString. Integers are stringified and a `\0` character is used as a separator. Part of PR17891. Note: I've attached my testcases upgrade scripts to the PR. If I've just broken your out-of-tree testcases, they might help. llvm-svn: 218914
* [x86] Teach the new vector shuffle lowering to widen floating pointChandler Carruth2014-10-024-18/+213
| | | | | | | | | | | | | | | | | | | elements as well as integer elements in order to form simpler shuffle patterns. This is the primary reason why we were failing to match some of the 2-and-2 floating point shuffles such as PR21140. Even after fixing this we need to support some extra patterns in the backend in order to match the resulting X86ISD::UNPCKL nodes into the correct instructions. This commit should fix PR21140 and includes more comprehensive testing of insertion patterns in v4 shuffles. Not all of the added tests are beautiful. For example, we don't have clever instructions to insert-via-load in the integer domain. There are also some places where we aren't sufficiently cunning with our use of movq and movd, but that's future work. llvm-svn: 218911
* Remove unused function attribute params.Sanjay Patel2014-10-021-2/+2
| | | | llvm-svn: 218909
* LTO: Document the Boolean argument from r218784Duncan P. N. Exon Smith2014-10-021-1/+2
| | | | llvm-svn: 218907
* Optimize square root squared (PR21126).Sanjay Patel2014-10-022-0/+34
| | | | | | | | | | | When unsafe-fp-math is enabled, we can turn sqrt(X) * sqrt(X) into X. This can happen in the real world when calculating x ** 3/2. This occurs in test-suite/SingleSource/Benchmarks/BenchmarkGame/n-body.c. Differential Revision: http://reviews.llvm.org/D5584 llvm-svn: 218906
* [x86] Move the vperm2f128 test to be vperm2x128 and test both theChandler Carruth2014-10-023-116/+217
| | | | | | | | | floating point and integer domains. Merge the AVX2 test into it and add an extra RUN line. Generate clean FileCheck statements with my script. Remove the now merged AVX2 tests. llvm-svn: 218903
* InstrProf: Avoid linear search in a hot loopJustin Bogner2014-10-022-10/+41
| | | | | | | | | | Every time we were adding or removing an expression when generating a coverage mapping we were doing a linear search to try and deduplicate the list. The indices in the list are important, so we can't just replace it by a DenseMap entirely, but an auxilliary DenseMap for fast lookup massively improves the performance issues I was seeing here. llvm-svn: 218892
* This patch adds a new flag "-coff-imports" to llvm-readobj.Rui Ueyama2014-10-028-5/+68
| | | | | | | | | | | | | | When the flag is given, the command prints out the COFF import table. Currently only the import table directory will be printed. I'm going to make another patch to print out the imported symbols. The implementation of import directory entry iterator in COFFObjectFile.cpp was buggy. This patch fixes that too. http://reviews.llvm.org/D5569 llvm-svn: 218891
* Reapply "InstrProf: Don't keep a large sparse list around just to zero it"Justin Bogner2014-10-022-32/+50
| | | | | | | | | | When I was preparing r218879 for commit, I removed an early return that I decided was just noise. It wasn't. This is r218879 no-crash edition. This reverts commit r218881, reapplying r218879. llvm-svn: 218887
* Remove an extra whitespace.Adrian Prantl2014-10-021-1/+1
| | | | llvm-svn: 218886
* Pretty-printer: Paper over an ambiguity between line table entriesAdrian Prantl2014-10-021-1/+3
| | | | | | | | and tagged mdnodes. fixes http://llvm.org/bugs/show_bug.cgi?id=21131 llvm-svn: 218885
* Revert "InstrProf: Don't keep a large sparse list around just to zero it"Justin Bogner2014-10-022-45/+32
| | | | | | | | This seems to be crashing on some buildbots. Reverting to investigate. This reverts commit r218879. llvm-svn: 218881
* InstrProf: Don't keep a large sparse list around just to zero itJustin Bogner2014-10-022-32/+45
| | | | | | | | | | | | | | | | | | | | The Terms vector here represented a polynomial of of all possible counters, and is used to simplify expressions when generating coverage mapping. There are a few problems with this: 1. Keeping the vector as a member is wasteful, since we clear it every time we use it. 2. Most expressions refer to a subset of the counters, so we end up iterating over a large number of zeros doing nothing a lot of the time. This updates the user of the vector to store the terms locally, and uses a sort and combine approach so that we only operate on counters that are actually used in a given expression. For small cases this makes very little difference, but in cases with a very large number of counted regions this is a significant performance fix. llvm-svn: 218879
* Use the local variable that other clauses around here are already using.Sanjay Patel2014-10-021-1/+1
| | | | llvm-svn: 218876
* Remove duplicate function names from comments. NFC.Sanjay Patel2014-10-021-43/+35
| | | | llvm-svn: 218875
* [NVPTX] Remove dead code.Tilmann Scheller2014-10-021-9/+3
| | | | | | Found by the Clang static analyzer. llvm-svn: 218874
* Support padding unaligned data in .text.Joerg Sonnenberger2014-10-022-1/+10
| | | | llvm-svn: 218870
* Silence a -Wsign-compare warning. NFC.Aaron Ballman2014-10-021-2/+2
| | | | llvm-svn: 218868
* [BUG][INDVAR] Fix for PR21014: wrong SCEV operands commuting for ↵Zinovy Nis2014-10-022-5/+18
| | | | | | | | | | | | non-commutative instructions My commit rL216160 introduced a bug PR21014: IndVars widens code 'for (i = ; i < ...; i++) arr[ CONST - i]' into 'for (i = ; i < ...; i++) arr[ i - CONST]' thus inverting index expression. This patch fixes it. Thanks to Jörg Sonnenberger for pointing. Differential Revision: http://reviews.llvm.org/D5576 llvm-svn: 218867
* [x86] Just delete the last combine test file.Chandler Carruth2014-10-021-448/+0
| | | | | | | | | | This file isn't really doing anything useful. Many of the tests that seem to be combined are also repeats from other test files. Many of the other tests, despite the comment that they should be combined into a single shuffle... well... aren't combined into a single shuffle. =/ llvm-svn: 218862
* [x86] Merge still more combine tests into the common file. These atChandler Carruth2014-10-022-237/+382
| | | | | | | least seem *slightly* more interesting test wise, although given how spotily we actually combine anything, I remain somewhat suspicious. llvm-svn: 218861
* [x86] Merge the third combining test into the generic one and add properChandler Carruth2014-10-022-380/+1001
| | | | | | | | | | | | | | | | checks for all the ISA variants. If the SSE2 checks here terrify you, good. This is (in large part) the kind of amazingly bad code that is holding LLVM back when vectorizing on older ISAs. At the same time, these tests seem increasingly dubious to me. There are a very large number of tests and it isn't clear that they are systematically covering a specific set of functionality. Anyways, I don't want to reduce testing during the transition, I just want to consolidate it to where it is easier to manage. llvm-svn: 218860
* [x86] Merge the second set of vector combining tests into a common testChandler Carruth2014-10-022-317/+470
| | | | | | | | | | | | | file. Some of these really don't make sense to test -- we're testing for the *lack* of combining two shuffles into one, presumably because the two would generate better shuffles in the end. But if you look at the generated code shown here, in many cases the generated code is, frankly, terrible. Or we combine any two generated shuffles back into a single instruction! I've left a FIXME to revisit these decisions. llvm-svn: 218859
* [x86] Merge the bitwise operation shuffle combining into the common testChandler Carruth2014-10-022-253/+468
| | | | | | file, adding assertions across the ISA variants for it. llvm-svn: 218858
* [x86] Update this test to run a full complement of the ISA extensions,Chandler Carruth2014-10-021-54/+92
| | | | | | | | | and use the new grouped FileCheck patterns to match them. No interesting changes yet, but this test is now in proper form to have the other shuffle combining tests merged into it. llvm-svn: 218857
* [x86] Minimize the parameters to this test for clarity.Chandler Carruth2014-10-021-2/+1
| | | | | | | | | | | The test has to do with DAG combines, and so it doesn't need the new vector shuffle lowering to be effective. Also, it has a nice in-IR triple string which we should really be using rather than command line flags (unless it varies form RUN-line to RUN-line). Finally, I much prefer letting LLVM synthesize the correct datalayout string from the triple rather than baking one in here that will just become stale. llvm-svn: 218856
* [x86] Add a comment clarifying that this test should span all manners ofChandler Carruth2014-10-021-0/+5
| | | | | | | | | | generic DAG combining of shuffles relevant to x86. My plan is to fold a bunch of the other DAG combining test cases into this one, while converting them to use the nice new FileCheck assertion syntax. llvm-svn: 218855
* [x86] Switch some of the new consolidated vector tests to useChandler Carruth2014-10-023-208/+239
| | | | | | | | | a bare-metal triple and have nice BB labels, etc. No significant change here, just tidying up to have a consistent set of OS-agnostic vector functionality here. llvm-svn: 218854
* [PBQP] Update doxygen comment style to match the rest of the file. NFC.Lang Hames2014-10-021-28/+28
| | | | llvm-svn: 218849
* [PBQP] Add support for graph-level metadata to the PBQP graph. This will be usedLang Hames2014-10-022-0/+9
| | | | | | | | | in the future to attach useful information about the PBQP graph (e.g. the associated MachineFunction, pointers to regalloc passes) to the graph itself, making that information accessible to the solver. This should also allow the PBQPBuilder interface to be simplified. llvm-svn: 218848
* Remove test directories with no tests.Eric Christopher2014-10-022-0/+0
| | | | llvm-svn: 218843
* InstrProf: Simplify counting a file's regions when writing coverage (NFC)Justin Bogner2014-10-021-34/+24
| | | | | | | | | | | | When writing a coverage mapping we iterate through the mapping regions in order of FileID, but we were then repeatedly searching from the beginning of the list to count the number of regions with a given FileID. It is simpler and more efficient to search forward from the current iterator to find the number of regions. llvm-svn: 218842
* [x86] Improve and correct how the new vector shuffle lowering wasChandler Carruth2014-10-012-23/+38
| | | | | | | | | | | | | | | | | | | matching and lowering 64-bit insertions. The first problem was that we weren't looking through bitcasts to discover that we *could* lower as insertions. Once fixed, we in turn weren't looking through bitcasts to discover that we could fold a load into the lowering. Once fixed, we weren't forming a SCALAR_TO_VECTOR node around the inserted element and instead were passing a scalar to a DAG node that expected a vector. It turns out there are some patterns that will "lower" this into the correct asm, but the rest of the X86 backend is very unhappy with such antics. This should fix a few more edge case regressions I've spotted going through the regression test suite to enable the new vector shuffle lowering. llvm-svn: 218839
* PR21101: tablegen's FastISel emitter should filter out unused functions.Bob Wilson2014-10-011-1/+16
| | | | | | | | | | | | | FastISel has a fixed set of virtual functions that are overridden by the tablegen-generated code for each target. These functions are distinguished by the kinds of operands, e.g., register + immediate = "ri". The FastISel emitter has been blindly emitting functions with different combinations of operand kinds, even for combinations that are completely unused by FastISel, e.g., "fastEmit_rrr". Change to filter out functions that will be irrelevant for FastISel and do not bother generating the code for them. Also add explicit "override" keywords for the virtual functions that are overridden. llvm-svn: 218838
* [MCJIT] Don't crash in debugging output for sections that aren't emitted.Lang Hames2014-10-011-0/+5
| | | | llvm-svn: 218836
* constify the TargetMachine argument used in the subtarget andEric Christopher2014-10-014-4/+4
| | | | | | lowering constructors. llvm-svn: 218832
* DIBuilder: Remove duplicated comments, NFCDuncan P. N. Exon Smith2014-10-011-77/+1
| | | | | | | These comments already appear in the header, and some of them are out-of-date anyway. llvm-svn: 218829
* Revert "DIBuilder: Remove dead code"Duncan P. N. Exon Smith2014-10-012-0/+14
| | | | | | | | | This reverts commit r218820. It turns out that Adrian has an outstanding SROA patch that uses this. I've updated it to forward to `createExpression()`. llvm-svn: 218828
* Lower FNEG ( FABS (x) ) -> FNABS (x) [X86 codegen] PR20578Sanjay Patel2014-10-012-6/+99
| | | | | | | | | | | | Negative FABS of either a scalar or vector should be handled the same way on x86 with SSE/AVX: a single OR instruction of the FP operand with a constant to light up the sign bit(s). http://llvm.org/bugs/show_bug.cgi?id=20578 Differential Revision: http://reviews.llvm.org/D5201 llvm-svn: 218822
* Update test name to match changes made in r218783David Blaikie2014-10-011-1/+1
| | | | | | Addressing post commit review feedback from Justin Bogner. llvm-svn: 218821
* DIBuilder: Remove dead codeDuncan P. N. Exon Smith2014-10-012-22/+0
| | | | | | | | | | | | I neglected to update `DIBuilder::createPieceExpression()` in r218797, which I noticed while rebasing a patch for PR17891. On closer inspection, it looks like dead code. If there are any downstream users of this, you should transition to the more general `createExpression()`. Or, we can add this back, but then it should just forward to `createExpression()`. llvm-svn: 218820
* [x86] Merge the remaining test cases into vector-blend.ll and remove allChandler Carruth2014-10-014-218/+117
| | | | | | the ISA-specific test files. llvm-svn: 218818
* Now that the optimization level is adjusting the feature stringEric Christopher2014-10-013-9/+4
| | | | | | before we hit the subtarget, remove the constructor parameter. llvm-svn: 218817
* [x86] Expand the ISA coverage of our blend test in preparation forChandler Carruth2014-10-011-86/+423
| | | | | | merging ISA-specific testing into this file. llvm-svn: 218816
* Adds 'override' to overriding methods. NFC.Argyrios Kyrtzidis2014-10-012-2/+2
| | | | llvm-svn: 218815
* [x86] Merge the interesting test cases from blend-msb.ll intoChandler Carruth2014-10-012-40/+18
| | | | | | vector-blend.ll and remove the former. llvm-svn: 218814
OpenPOWER on IntegriCloud