summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Create GOT and PLT entries early in scanRelocs().Rui Ueyama2017-04-061-46/+39
| | | | | | | | | | | | | | scanRelocs() does a lot of things. It fills InputSection's Relocations vector, making a decision whether a TLS relocation should be relaxed or not, and making a decision whether a GOT/PLT slot needs to be created or not. They don't actually have to be done in a single loop. I want to separate them so that some of them can be run concurently. As a first step, this patch moves PLT/GOT slot assignment to beginning of the loop, so that they just fall through to the next statements. This should make it clear that that code doesn't affect other parts of the loop. llvm-svn: 299615
* Remove Target::isTlsGlobalDynamicRel()Rui Ueyama2017-04-063-28/+3
| | | | | | | | Relocations are abstracted as platform-independent R_TLS_* relocations, so we don't need to check platform-specific ones to see if a relocation is TLS GD. llvm-svn: 299614
* Update unittests/Host/SocketTest.cpp to also use the newJason Molenda2017-04-061-7/+4
| | | | | | one-socket API. llvm-svn: 299613
* Some old mach-o core files have an LC_IDENT load command Jason Molenda2017-04-064-3/+84
| | | | | | | | and there's a string in there that can be helpful in locating the kernel binary. Use it. <rdar://problem/31444711> llvm-svn: 299612
* [Orc] Break QueueChannel out into its own header and add a utility,Lang Hames2017-04-064-83/+200
| | | | | | createPairedQueueChannels, to simplify channel creation in the RPC unit tests. llvm-svn: 299611
* [Orc] Make orcError return an error_code rather than Error.Lang Hames2017-04-064-20/+25
| | | | | | | This will allow orcError to be used in convertToErrorCode implementations, which will help in transitioning Orc RPC to Error. llvm-svn: 299610
* getAsInteger is not a equivalent replacement for strtolJim Ingham2017-04-061-2/+10
| | | | | | | | work around that fact for CommandObjectMemoryWrite. <rdar://problem/31457148> llvm-svn: 299609
* Change how UDP sockets are set up -- use the same one socket forJason Molenda2017-04-065-42/+37
| | | | | | | | | both sending and receiving information, instead of using one socket to send and another to receive. The two socket arrangement fails over when a firewall is between the two systems. <rdar://problem/31286757> llvm-svn: 299608
* Fix remote test execution in litMehdi Amini2017-04-061-2/+3
| | | | | | | | | | Can be used as such: $ python /path/to/lit.py -sv /path/to/llvm/build/projects/libcxx/test/ \ --param=use_system_cxx_lib=true \ --param=executor='SSHExecutor("remote.domain", "username")' llvm-svn: 299607
* Use alternate string layout for ARMv7kMehdi Amini2017-04-061-1/+1
| | | | llvm-svn: 299606
* [lit] Implement timeouts and max_time for process pool testingReid Kleckner2017-04-063-50/+83
| | | | | | | | | | | | | | | | | | | This is necessary to pass the lit test suite at llvm/utils/lit/tests. There are some pre-existing failures here, but now switching to pools doesn't regress any tests. I had to change test-data/lit.cfg to import DummyConfig from a module to fix pickling problems, but I think it'll be OK if we require test formats to be written in real .py modules outside lit.cfg files. I also discovered that in some circumstances AsyncResult.wait() will not raise KeyboardInterrupt in a timely manner, but you can pass a non-zero timeout to work around this. This makes threading.Condition.wait use a polling loop that runs through the interpreter, so it's capable of asynchronously raising KeyboardInterrupt. llvm-svn: 299605
* [cfi] Fix symbol lookup hack in cross-dso cfi to handle LLD binaries.Evgeniy Stepanov2017-04-061-2/+9
| | | | llvm-svn: 299604
* [Sema] Update CheckOverload docsGeorge Burgess IV2017-04-061-34/+33
| | | | | | | | | | | - Replace documented return values (true/false) with what's actually returned - Doxygenify the comment - Reflow said comment to 80 cols Not overly familiar with Doxygen, so nits are welcome. :) llvm-svn: 299603
* StringTableBuilder: Don't assert when writing an empty raw string table.Peter Collingbourne2017-04-061-1/+1
| | | | llvm-svn: 299602
* Simplify. NFC.George Burgess IV2017-04-061-8/+4
| | | | | | | | | | | | Two simplifications: - We check `!Previous.empty()` above and only use `Previous` in const contexts after that check, so the `!Previous.empty()` check seems redundant. - The null check looks pointless, as well: AFAICT, `LookupResults` should never contain null entries, and `OldDecl` should always be non-null if `Redeclaration` is true. llvm-svn: 299601
* Return Optional<uint64_t> from readInteger instead of returning just ↵Rui Ueyama2017-04-051-38/+36
| | | | | | success/failure. llvm-svn: 299600
* [CMake][libcxx] Use builtins rather than gcc_s when compiler-rt is requestedPetr Hosek2017-04-053-3/+13
| | | | | | | | | When compiler-rt is requested, we should attempt to link compiler-rt builtins library rather than gcc_s. Differential Revision: https://reviews.llvm.org/D31617 llvm-svn: 299599
* Bitcode: Remove an unused declaration. NFC.Peter Collingbourne2017-04-051-1/+0
| | | | llvm-svn: 299598
* [Driver] Print a newline when invoking `-print-resource-dir`Meador Inge2017-04-051-1/+1
| | | | | | | | | The commit yesterday (r299473) to add the `-print-resource-dir` option was supposed to emit a newline after the resource dir. Differential Revision: https://reviews.llvm.org/D31447 llvm-svn: 299597
* [Bugpoint] Use `unique_ptr` correctly.Bryant Wong2017-04-051-11/+12
| | | | | | | | | | Moving Modules into `testMergedProgram` is incorrect (and causes segmentation faults) since all callers expect to retain ownership. This is evidenced by the later calls to `unique_ptr<Module>::get` in the same function. Differential Revision: https://reviews.llvm.org/D31727 llvm-svn: 299596
* Remove unused typedefs.Rui Ueyama2017-04-051-3/+1
| | | | llvm-svn: 299594
* Inline a small function. NFC.Rui Ueyama2017-04-051-5/+1
| | | | llvm-svn: 299593
* Use uint64_t to keep file size even on 32-bit machines.Rui Ueyama2017-04-052-48/+56
| | | | | | If an output file is too large for 32-bit, we should report an error. llvm-svn: 299592
* AddressSpace: fix DWARF based unwinding handling on AndroidSaleem Abdulrasool2017-04-051-2/+5
| | | | | | | It is possible that there are no program headers in the module. Do not attempt to dereference nullptr as a program header. llvm-svn: 299591
* Inline a small function. NFC.Rui Ueyama2017-04-051-8/+2
| | | | llvm-svn: 299590
* [X86 TTI] Implement LSV hookKeno Fischer2017-04-053-2/+45
| | | | | | | | | | | | | | | | | | Summary: LSV wants to know the maximum size that can be loaded to a vector register. On X86, this always matches the maximum register width. Implement this accordingly and add a test to make sure that LSV can vectorize up to the maximum permissible width on X86. Reviewers: delena, arsenm Reviewed By: arsenm Subscribers: wdng, llvm-commits Differential Revision: https://reviews.llvm.org/D31504 llvm-svn: 299589
* Annotate some more libc++ tests with the new categoryPavel Labath2017-04-053-29/+20
| | | | | | This makes sure we are able to run them properly on android. llvm-svn: 299588
* The darwin_log tests are very fragile and currently do not properly assess ↵Sean Callanan2017-04-053-2/+4
| | | | | | | | | | the state of that functionality. I have put them all in their own category, and made that category disabled by default. Differential revision: https://reviews.llvm.org/D31718 llvm-svn: 299587
* Simplify test a bit.Rafael Espindola2017-04-051-2/+3
| | | | | | | | | | | | There are two cases to consider: We are using the internal shell. This will still fail because of ulimit. We are using an external shell. In this case the difference is that we now also constrain FileCheck to use less than 4 MB of of stack, which it should :-) llvm-svn: 299586
* Remove llvm.lifetime.start/end in original region.Michael Kruse2017-04-052-5/+55
| | | | | | | | | | | | | | | | | | | | | | | | | The current StackColoring algorithm does not correctly handle the situation when some, but not all paths from a BB to the entry node cross a llvm.lifetime.start. According to an interpretation of the language reference at http://llvm.org/docs/LangRef.html#llvm-lifetime-start-intrinsic this might be correct, but it would cost too much effort to handle in StackColoring. To be on the safe side, remove all lifetime markers even in the original code version (they have never been copied to the optimized version) to ensure that no path to the entry block will cross a llvm.lifetime.start. The same principle applies to paths the a function return and the llvm.lifetime.end marker, so we remove them as well. This fixes llvm.org/PR32251. Also see the discussion at http://lists.llvm.org/pipermail/llvm-dev/2017-March/111551.html llvm-svn: 299585
* Remove accidental debug printf. Follow up to r299583.Ivan Krasin2017-04-051-1/+0
| | | | llvm-svn: 299584
* Revert r299536. [AMDGPU] SDWA peephole: enable by default.Ivan Krasin2017-04-0544-609/+436
| | | | | | | | | | | Reason: breaks multiple bots: http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/3988 http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/1173 Original Review URL: https://reviews.llvm.org/D31671 llvm-svn: 299583
* [Hexagon] Use -mattr to select HVX mode in a testcase, NFCKrzysztof Parzyszek2017-04-051-3/+2
| | | | llvm-svn: 299582
* Remove unnecessary virtual dtor.Rui Ueyama2017-04-051-3/+0
| | | | | | | This class doesn't have virtual member functions, and no instances of this class is deleted through base pointers. llvm-svn: 299581
* Inline small functions that are used only once.Rui Ueyama2017-04-051-5/+2
| | | | llvm-svn: 299580
* Fix comments.Rui Ueyama2017-04-053-22/+30
| | | | llvm-svn: 299579
* MemorySSA: Remove MemorySSA walker caching.Daniel Berlin2017-04-051-217/+14
| | | | | | | | | | | | | | | | | | | | | | Summary: Remove all the caching the clobber walker does, and that the caching walker does. With the patch to enable storing clobbering access results for stores, i can find no improvement with the cache turned on (and a number of degradations, both time and memory, from the cost of caching. For a large program i have, we do millions of lookups and inserts with zero hits). I haven't tried to rename or simplify the walker otherwise yet. (Appreciate some perf testing on this past my own testing) Reviewers: george.burgess.iv, davide Subscribers: Prazek, llvm-commits Differential Revision: https://reviews.llvm.org/D31576 llvm-svn: 299578
* [lit] Fix Analysis test format pickling errorReid Kleckner2017-04-052-29/+36
| | | | | | | | | | | | | Move the test format into a standalone .py file and add it to the site module search path. This allows us to run the test on Windows, and it makes it compatible with the multiprocessing.Pool lit test execution strategy. I think this test was only passing everywhere else because multiprocessing uses 'fork' to spawn workers, so the test format never needs to be pickled. llvm-svn: 299577
* [llvm-readobj] Only print the real size of the notePetr Hosek2017-04-051-6/+5
| | | | | | | | | | | | | | | | | Note payloads are padded to a multiple of 4 bytes in size, but the size of the string that should be print can be smaller e.g. the n_descsz field in gold's version note is 9, so that's the whole size of the string that should be printed. The padding is part of the format of a SHT_NOTE section or PT_NOTE segment, but it's not part of the note itself. Printing the extra null bytes may confuse some tools, e.g. when the llvm-readobj is sent to grep, it treats the output as binary because it contains a null byte. Differential Revision: https://reviews.llvm.org/D30804 llvm-svn: 299576
* Fix invalid memory access on android x86Saleem Abdulrasool2017-04-051-0/+17
| | | | | | | | | | On certain versions of android x86, the main module `app_process` is not built as PIE. When accessing the PT_GNU_EH_FRAME_HDR in such a scenario, the `dlpi_addr` is 0, but the virtual address is not relocated. Manually rebase the address to avoid an invalid memory access. llvm-svn: 299575
* clang-format: Support formatting utf-8 character literals in C++11+ mode.Nico Weber2017-04-054-2/+18
| | | | | | | | | | | | | | | | | | | clang-format <<END auto c1 = u8'a'; auto c2 = u'a'; END Before: auto c1 = u8 'a'; auto c2 = u'a'; Now: auto c1 = u8'a'; auto c2 = u'a'; Patch from Denis Gladkikh <llvm@denis.gladkikh.email>! llvm-svn: 299574
* Rename ScriptConfig::UndefinedSymbols ReferencedSymbols.Rui Ueyama2017-04-053-7/+9
| | | | | | | Symbols referenced by linker scripts are not necessarily be undefined, so the previous name didn't convey the meaining of the variable. llvm-svn: 299573
* [DAGCombine] Support FMF contract in fused multiple-and-sub tooAdam Nemet2017-04-052-28/+60
| | | | | | | | | This is a follow-on to r299096 which added support for fmadd. Subtract does not have the case where with two multiply operands we commute in order to fuse with the multiply with the fewer uses. llvm-svn: 299572
* [DAGCombine] Remove commented-out code from r299096Adam Nemet2017-04-051-1/+1
| | | | llvm-svn: 299571
* [InstCombine] add fold for icmp with or mask of low bits (PR32542)Sanjay Patel2017-04-052-8/+14
| | | | | | | | | | | | | | | | | | | | We already have these 'and' folds: // X & -C == -C -> X > u ~C // X & -C != -C -> X <= u ~C // iff C is a power of 2 ...but we were missing the 'or' siblings. http://rise4fun.com/Alive/n6 This should improve: https://bugs.llvm.org/show_bug.cgi?id=32524 ...but there are 2 or more other pieces to fix still. Differential Revision: https://reviews.llvm.org/D31712 llvm-svn: 299570
* [ExecutionDepsFix] Don't recurse over the CFGKeno Fischer2017-04-052-23/+23
| | | | | | | | | | | Summary: Use an explicit work queue instead, to avoid accidentally causing stack overflows for input with very large CFGs. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D31681 llvm-svn: 299569
* [InstCombine] fix formatting and variable names; NFCISanjay Patel2017-04-051-236/+252
| | | | | | | There must be some opportunity to refactor big chunks of nearly duplicated code in FoldOrOfICmps / FoldAndOfICmps. Also, none of this works with vectors, but it should. llvm-svn: 299568
* [AMDGPU][MC] Fix for Bug 28158 + LIT testsDmitry Preobrazhensky2017-04-052-0/+35
| | | | | | | | | | | | | | | Added support of the following instructions: - s_cbranch_cdbgsys - s_cbranch_cdbgsys_and_user - s_cbranch_cdbgsys_or_user - s_cbranch_cdbguser - s_setkill Reviewers: vpykhtin Differential Revision: https://reviews.llvm.org/D31469 llvm-svn: 299567
* MemorySSA: Fix and use optimized_def_chainDaniel Berlin2017-04-052-2/+2
| | | | llvm-svn: 299566
* [lit] Revert to old execution strategy while I debug these pickling errorsReid Kleckner2017-04-051-1/+1
| | | | llvm-svn: 299565
OpenPOWER on IntegriCloud