summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Update test with target flag and amended resultsLeny Kholodov2015-06-081-10/+7
| | | | llvm-svn: 239298
* [LLDB-MI] Properly detect missing mandatory arguments to MI commandsBruce Mitchener2015-06-0814-49/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Previously if an MI command had **X** mandatory and **Y** optional arguments you could provide **X** or more optional arguments without providing any of the mandatory arguments, and the argument validation code wouldn't complain. For example this would pass argument validation even though the mandatory **address** and **count** arguments are missing: -data-read-memory-bytes --thread 1 --frame 0 Part of the problem was that an empty string was considered a valid value for a mandatory argument, which didn't make much sense. Patch by Vadim Macagon. Thanks! Test Plan: ./dotest.py -A x86_64 -C clang --executable $BUILDDIR/bin/lldb tools/lldb-mi/ No unexpected failures on my Ubuntu 14.10 64bit Virtualbox VM. Reviewers: domipheus, ki.stfu, abidh Reviewed By: ki.stfu, abidh Subscribers: brucem, lldb-commits Differential Revision: http://reviews.llvm.org/D10299 llvm-svn: 239297
* Fix for temporary variable names in stack reuse tests in revision 239294Leny Kholodov2015-06-082-16/+16
| | | | llvm-svn: 239296
* [LAA] Fix estimation of number of memchecksSilviu Baranga2015-06-083-43/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: We need to add a runtime memcheck for pair of accesses (x,y) where at least one of x and y are writes. Assuming we have w writes and r reads, currently this number is estimated as being w* (w+r-1). This estimation will count (write,write) pairs twice and will overestimate the number of checks required. This change adds a getNumberOfChecks method to RuntimePointerCheck, which will count the number of runtime checks needed (similar in implementation to needsAnyChecking) and uses it to produce the correct number of runtime checks. Test Plan: llvm test suite spec2k spec2k6 Performance results: no changes observed (not surprising since the formula for 1 writer is basically the same, which would covers most cases - at least with the current check limit). Reviewers: anemet Reviewed By: anemet Subscribers: mzolotukhin, llvm-commits Differential Revision: http://reviews.llvm.org/D10217 llvm-svn: 239295
* [CodeGen] Reuse stack space from unused function results (with more accurate ↵Leny Kholodov2015-06-085-13/+224
| | | | | | | | | | unused result detection) This patch fixes issues with unused result detection which were found in patch http://reviews.llvm.org/D9743. Differential Revision: http://reviews.llvm.org/D10042 llvm-svn: 239294
* [DAGCombiner] Added CTTZ vector constant folding support.Simon Pilgrim2015-06-084-2/+192
| | | | llvm-svn: 239293
* COFF: Avoid callign stable_sort.Rui Ueyama2015-06-081-13/+13
| | | | | | | | | MSVC profiler reported that this stable_sort takes 7% time when self-linking. As a result, createSection was taking 10% time. Now createSection takes 3%. This small change actually makes the linker a bit but perceptibly faster. llvm-svn: 239292
* [LoopVectorize] Teach Loop Vectorizor about interleaved memory accesses.Hao Liu2015-06-089-29/+1299
| | | | | | | | | | | | | | | | | | | | | | | | Interleaved memory accesses are grouped and vectorized into vector load/store and shufflevector. E.g. for (i = 0; i < N; i+=2) { a = A[i]; // load of even element b = A[i+1]; // load of odd element ... // operations on a, b, c, d A[i] = c; // store of even element A[i+1] = d; // store of odd element } The loads of even and odd elements are identified as an interleave load group, which will be transfered into vectorized IRs like: %wide.vec = load <8 x i32>, <8 x i32>* %ptr %vec.even = shufflevector <8 x i32> %wide.vec, <8 x i32> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6> %vec.odd = shufflevector <8 x i32> %wide.vec, <8 x i32> undef, <4 x i32> <i32 1, i32 3, i32 5, i32 7> The stores of even and odd elements are identified as an interleave store group, which will be transfered into vectorized IRs like: %interleaved.vec = shufflevector <4 x i32> %vec.even, %vec.odd, <8 x i32> <i32 0, i32 4, i32 1, i32 5, i32 2, i32 6, i32 3, i32 7> store <8 x i32> %interleaved.vec, <8 x i32>* %ptr This optimization is currently disabled by defaut. To try it by adding '-enable-interleaved-mem-accesses=true'. llvm-svn: 239291
* COFF: Use the empty string as the current directory instead of ".".Rui Ueyama2015-06-081-1/+2
| | | | | | | This is NFC but makes log message a bit nicer because it doesn't append .\ (or ./ on Unix) to files in the current directory. llvm-svn: 239290
* COFF: Add more log messages.Rui Ueyama2015-06-084-11/+21
| | | | llvm-svn: 239289
* COFF: Print out log messages to stdout.Rui Ueyama2015-06-083-3/+3
| | | | llvm-svn: 239288
* COFF: Check for auxiliary symbol's type.Rui Ueyama2015-06-082-5/+9
| | | | | | | | | | | | | | | | We forgot to check for auxiliary symbol's type. So we sometimes read garbage as associative section definitions. Associative sections are considered as not live themselves by the garbage collector because they are live only when associaited sections are live. By reading more data (or garbage) as associative section definitions, we treated more sections as non-GC-roots, that caused the linker to discard too many sections by mistake. That caused another mysterious bug (such as some global constructors don't run at all for some reason.) llvm-svn: 239287
* [llvm-readobj] Use the new symbol API.Davide Italiano2015-06-081-7/+7
| | | | llvm-svn: 239286
* [LoopAccessAnalysis] Teach LAA to check the memory dependence between ↵Hao Liu2015-06-082-12/+641
| | | | | | | | strided accesses. Differential Revision: http://reviews.llvm.org/D9368 llvm-svn: 239285
* Silence warning on Windows.Chaoren Lin2015-06-081-1/+2
| | | | llvm-svn: 239284
* Do not build LLD from tools/Makefile, as LLD no longer has a Makefile build.Peter Collingbourne2015-06-081-2/+1
| | | | llvm-svn: 239283
* Remove SCEVCache and FindConstantPointers from complete loop unrolling ↵Michael Zolotukhin2015-06-081-212/+89
| | | | | | | | | | | | | | | | | | | | heuristic. Summary: Using some SCEV functionality helped to entirely remove SCEVCache class and FindConstantPointers SCEV visitor. Also, this makes the code more universal - I'll take advandate of it in next patches where I start handling additional types of instructions. Test Plan: Tests would be submitted in subsequent patches. Reviewers: atrick, chandlerc Reviewed By: atrick, chandlerc Subscribers: atrick, llvm-commits Differential Revision: http://reviews.llvm.org/D10205 llvm-svn: 239282
* COFF: Simplify InputFile class.Rui Ueyama2015-06-081-14/+7
| | | | | | | Now that all InputFile subclasses have MemoryBufferRefs and provides the same set of functions. Implement that in the base class. llvm-svn: 239281
* COFF: Set non-1 alignment to common chunks.Rui Ueyama2015-06-082-1/+8
| | | | | | | | | | | | | I don't know what the right thing to do here, but at least 1 does not seem like a correct value. If we do not align common chunks at all, a small program which calls puts() from global dtors crashes mysteriously in a kernel32's function. I believe the crash was caused by symbols overlapping each other, and my guess is that alignment has something to do with that, but I am not 100% sure. Needs investigating. llvm-svn: 239280
* Fix Windows build.Peter Collingbourne2015-06-081-0/+4
| | | | llvm-svn: 239279
* llvm-ar: Move archive writer to Object.Peter Collingbourne2015-06-084-326/+396
| | | | | | | | | No functional change intended, other than some minor changes to certain diagnostics. Differential Revision: http://reviews.llvm.org/D10296 llvm-svn: 239278
* [TableGen] Remove unnecessary default constructed SMLoc that just existed to ↵Craig Topper2015-06-081-5/+1
| | | | | | return. Instead just call the default constructor in the return. llvm-svn: 239277
* [TableGen] Use range-based for loop. NFCCraig Topper2015-06-081-3/+2
| | | | llvm-svn: 239276
* [TableGen] Remove unnecessary extern declaration that's already in an ↵Craig Topper2015-06-081-2/+0
| | | | | | included header file. llvm-svn: 239275
* [TableGen] Use the SMLoc header file instead of SourceMgr header file in a ↵Craig Topper2015-06-083-3/+6
| | | | | | couple places. NFC llvm-svn: 239274
* [Driver] Inject the MSVC compatibility version into the tripleDavid Majnemer2015-06-086-31/+87
| | | | | | | Encoding the version into the triple will allow us to communicate to LLVM what functions it can expect to depend upon in the implementation. llvm-svn: 239273
* COFF: Fix memory leak.Rui Ueyama2015-06-081-1/+1
| | | | llvm-svn: 239272
* COFF: Fix typo.Rui Ueyama2015-06-071-1/+1
| | | | | | | This change doesn't change its functionality since the value passed here is converted to uint16_t immediately. llvm-svn: 239271
* COFF: Simplify. NFC.Rui Ueyama2015-06-071-5/+2
| | | | llvm-svn: 239270
* COFF: Use llvm::cl::ExpandReponseFiles.Rui Ueyama2015-06-071-17/+7
| | | | llvm-svn: 239269
* COFF: Add a glossary to README.Rui Ueyama2015-06-071-0/+41
| | | | llvm-svn: 239268
* COFF: Use named constants instead of sizeof().Rui Ueyama2015-06-071-2/+2
| | | | llvm-svn: 239267
* COFF: Remove dead code.Rui Ueyama2015-06-071-4/+0
| | | | | | | /include'ed symbols are already added to Config->GCRoots. Marking symbols twice doesn't have any effect. llvm-svn: 239266
* [objdump] Moving PrintImmHex out of MachODump and in to llvm-objdump and ↵Colin LeMahieu2015-06-074-4/+16
| | | | | | setting instprinter appropriately. llvm-svn: 239265
* [X86] Added tzcnt vector tests.Simon Pilgrim2015-06-072-0/+2795
| | | | llvm-svn: 239264
* [MC] Function naming NFC.Colin LeMahieu2015-06-071-2/+2
| | | | llvm-svn: 239263
* SeparateConstOffsetFromGEP: Pass address space to isLegalAddressingModeMatt Arsenault2015-06-073-1/+100
| | | | llvm-svn: 239262
* Make NaryReassociate pass the address space to isLegalAddressingModeMatt Arsenault2015-06-071-1/+3
| | | | | | | No test since the kinds of transforms this prevents seem to not really be relevant for SI's different addressing modes. llvm-svn: 239261
* Add isLegalAddressingMode address space argument to TTIMatt Arsenault2015-06-075-20/+31
| | | | | | | Update to match the TLI version, and remove the TLI version's default argument. llvm-svn: 239260
* [cmake] [OCaml] Make ocamldoc targets depend on output filesPeter Zotov2015-06-071-1/+1
| | | | | | | | | | | | OCaml doc builds fail without .cmi files, and .cmi files are collected in ocaml_outputs. Therefore, make doc targets depend on ocaml_outputs as well. Fixes: https://llvm.org/bugs/show_bug.cgi?id=23777 Patch by Michał Górny <mgorny@gentoo.org> llvm-svn: 239259
* Update dosep to display dotest command invoked on failure.Chaoren Lin2015-06-071-5/+6
| | | | llvm-svn: 239258
* [X86] Added BitScanForward/BitScanReverse memory folding + testsSimon Pilgrim2015-06-072-0/+57
| | | | llvm-svn: 239257
* Remove global std::string. NFC.Benjamin Kramer2015-06-071-1/+1
| | | | llvm-svn: 239254
* Fixed line endingsSimon Pilgrim2015-06-072-6/+6
| | | | llvm-svn: 239253
* [DAGCombiner] Added CTPOP vector constant folding support.Simon Pilgrim2015-06-074-2/+95
| | | | | | Added tests to the existing SSE/AVX test files. llvm-svn: 239252
* [AsmWriter] Rewrite module asm printing using StringRef::split.Benjamin Kramer2015-06-071-16/+9
| | | | | | No change in output intended. llvm-svn: 239251
* Fix doxygen comments. NFCFilipe Cabecinhas2015-06-071-10/+10
| | | | llvm-svn: 239250
* [TableGen] Remove unnecessary include. NFC.Craig Topper2015-06-071-1/+0
| | | | llvm-svn: 239249
* [TableGen] Remove unnecessary forward declaration. NFCCraig Topper2015-06-071-1/+0
| | | | llvm-svn: 239248
* [TableGen] Write one of the Record constructors in terms of the other ↵Craig Topper2015-06-071-7/+4
| | | | | | constructor to reduce code duplication. NFC llvm-svn: 239247
OpenPOWER on IntegriCloud