summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [RuntimeDyld][COFF] Skip non-loaded sections when calculating ImageBase.Lang Hames2018-10-233-9/+24
| | | | | | | | | | | | | | | | | | Non-loaded sections (whose unused load-address defaults to zero) should not be taken into account when calculating ImageBase, or ImageBase will be incorrectly set to 0. Patch by Andrew Scheidecker. Thanks Andrew! https://reviews.llvm.org/D51343 + // The Sections list may contain sections that weren't loaded for + // whatever reason: they may be debug sections, and ProcessAllSections + // is false, or they may be sections that contain 0 bytes. If the + // section isn't loaded, the load address will be 0, and it should not + // be included in the ImageBase calculation. llvm-svn: 344995
* [ORC] Show JITDylib search order in JITDylib::dump.Lang Hames2018-10-231-0/+4
| | | | | | This can be helpful in debugging search-order related failures. llvm-svn: 344994
* [ORC] Dump flags for JITDylib symbol table entries.Lang Hames2018-10-231-2/+2
| | | | | | This can help when debugging flag-specific symbol table issues. llvm-svn: 344993
* [analyzer] [NFC] Correct comment on RetainSummaryManagerGeorge Karpenkov2018-10-231-2/+2
| | | | | | Differential Revision: https://reviews.llvm.org/D53548 llvm-svn: 344992
* [analyzer] [www] Drop references to GC mode, which was deprecated years agoGeorge Karpenkov2018-10-232-46/+10
| | | | | | Differential Revision: https://reviews.llvm.org/D53302 llvm-svn: 344991
* [analyzer] [testing] Compute data on path length, compute percentilesGeorge Karpenkov2018-10-231-0/+14
| | | | | | Differential Revision: https://reviews.llvm.org/D52844 llvm-svn: 344990
* Updated the issue notes.Marshall Clow2018-10-231-6/+6
| | | | llvm-svn: 344989
* Add tests for match_results copy/move construction. NFCMarshall Clow2018-10-232-0/+83
| | | | llvm-svn: 344988
* [CodeGen] Attach InlineHint to more functionsRichard Trieu2018-10-232-3/+47
| | | | | | | For instantiated functions, search the template pattern to see if it marked inline to determine if InlineHint attribute should be added to the function. llvm-svn: 344987
* [ELF] Split up emulation.s per backendShoaib Meenai2018-10-236-436/+448
| | | | | | | | | | | | emulation.s is testing multiple architectures, which means it needs all the corresponding backends enabled, which might not be true for all developers (for example, I don't have PPC or MIPS enabled). Rather than marking the entire test as unsupported for such developers, split it up per backend to get better testing granularity. Differential Revision: https://reviews.llvm.org/D53544 llvm-svn: 344986
* [hwasan] add stack frame descriptions.Kostya Serebryany2018-10-236-1/+127
| | | | | | | | | | | | | | | | | | | Summary: At compile-time, create an array of {PC,HumanReadableStackFrameDescription} for every function that has an instrumented frame, and pass this array to the run-time at the module-init time. Similar to how we handle pc-table in SanitizerCoverage. The run-time is dummy, will add the actual logic in later commits. Reviewers: morehouse, eugenis Reviewed By: eugenis Subscribers: srhines, llvm-commits, kubamracek Differential Revision: https://reviews.llvm.org/D53227 llvm-svn: 344985
* [ELF] Actually fix test from r344976Shoaib Meenai2018-10-231-6/+1
| | | | | | | I don't think the offsets and flags are particularly relevant to the test; the machine type is what matters. llvm-svn: 344984
* [dsymutil] Improve error reporting when we cannot create output file.Jonas Devlieghere2018-10-231-31/+42
| | | | | | | | | Before this patch we were returning an empty string in case we couldn't create the output file. Now we return an expected string so we can return and print the proper issue. We now return errors instead of bools and defer printing to the call site. llvm-svn: 344983
* [ValueObject] Stop assuming types are non-zero sized.Davide Italiano2018-10-231-1/+7
| | | | | | | | | | Some backends might violate this assumption. No test case upstream unfortunately as this is not the case with C++, but I'm going to add a test in swift language support. <rdar://problem/40962410> llvm-svn: 344982
* [WebAssembly] Fix assembly printing of br_tableHeejin Ahn2018-10-232-2/+34
| | | | | | | | | | | | Summary: In `br_table's stack version asm string, \t was missing. Reviewers: aardappel Subscribers: dschuff, sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D53516 llvm-svn: 344981
* [ELF] Fix test from r344976Shoaib Meenai2018-10-231-1/+1
| | | | | | | | | Turns out I wasn't actually running this test locally, since I don't build the PPC and MIPS backends. Whoops. Perhaps this test should be split up per-architecture? llvm-svn: 344980
* Fix typo in ASSERT_MODULE_LOCK macro definitionJonas Devlieghere2018-10-231-1/+1
| | | | llvm-svn: 344979
* [X86] Remove 'rtm' feature from KNL.Craig Topper2018-10-231-1/+0
| | | | | | | | I'm unsure if KNL has this feature, but the backend never thought it did, only clang did. The predefined-arch-macros test lost the check for __RTM__ on KNL when it was removed Skylake CPUs in r344117. I think we want to drop it from KNL for consistency with Skylake anyway regardless of how we got here. llvm-svn: 344978
* [WebAssembly] Added test for inline assembly roundtrip.Wouter van Oortmerssen2018-10-231-0/+43
| | | | | | | | | | | | | | | | | | | Summary: Due to previous work to make WebAssembly MC by default stack-only inline assembly now "just works" (previously it didn't since it had no way to know types of registers), so no further work required. So far we only have tests (in inline-asm.ll) which test with non-existing instructions, so this adds a test that roundtrips both the inline assembly and its surrounding code thru the assembler. Reviewers: dschuff, sunfish Subscribers: sbc100, jgravelle-google, eraman, aheejin, llvm-commits Differential Revision: https://reviews.llvm.org/D52914 llvm-svn: 344977
* [ELF] Handle elf32-littlearm in OUTPUT_FORMATShoaib Meenai2018-10-222-1/+32
| | | | | | | | | We need this to support 32-bit ARM. Add test cases for emulation handling for this architecture as well. Differential Revision: https://reviews.llvm.org/D53539 llvm-svn: 344976
* Added more notes to the issues.Marshall Clow2018-10-221-6/+6
| | | | llvm-svn: 344975
* [ELF] Don't warn on two legitimate cases when reading .llvm.call-graph-profileFangrui Song2018-10-223-19/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Before, superfluous warnings were emitted for the following two cases: 1) When from symbol was in a discarded section. The profile should be thought of as affiliated to the section. It makes sense to ignore the profile if the section is discarded. 2) When to symbol was in a shared object. The object file containing the profile may not know about the to symbol, which can reside in another object file (useful profile) or a shared object (not useful as symbols in the shared object are fixed and unorderable). It makes sense to ignore the profile from the object file. Note, the warning when to symbol was undefined was suppressed in D53044, which is still useful for --symbol-ordering-file= This patch silences the warnings. The check is actually more relaxed (no warnings if either From or To is not Defined) for simplicity and I don't see a compelling reason to warn on more cases. Reviewers: ruiu, davidxl, espindola, Bigcheese Reviewed By: ruiu Subscribers: emaste, arichardson, llvm-commits Differential Revision: https://reviews.llvm.org/D53470 llvm-svn: 344974
* X86: fix a comment copy-paste issue (NFC)Saleem Abdulrasool2018-10-221-1/+1
| | | | | | The comment was copy-pasted but not updated. NFC. llvm-svn: 344973
* [X86] Remove unused entries from the X86ProcFamily enum. Add a note to ↵Craig Topper2018-10-222-28/+2
| | | | | | | | discourage creation of new enum entries. As we've learned multiple times, a coarse grained enum like this is not scalable and we should be migrating away from it. llvm-svn: 344972
* [Intrinsic] Unigned Saturation Addition IntrinsicLeonard Chan2018-10-2215-50/+238
| | | | | | | | | | | | Add an intrinsic that takes 2 integers and perform unsigned saturation addition on them. This is a part of implementing fixed point arithmetic in clang where some of the more complex operations will be implemented as intrinsics. Differential Revision: https://reviews.llvm.org/D53340 llvm-svn: 344971
* X86: Do not optimize branches with undef eflags inputsMatthias Braun2018-10-222-0/+23
| | | | | | | | | | | | analyzeBranch()/insertBranch() etc. do not properly deal with an undef flag on the eflags input and used to produce invalid MIR. I don't see this ever affecting real world inputs (I don't think it is possible to produce undef flags with llvm IR), so I simply changed the code to bail out in this case. rdar://42122367 llvm-svn: 344970
* [Reassociate] remove bogus tests; NFCSanjay Patel2018-10-221-28/+0
| | | | | | | | I was trying to provide test coverage for D53533 with rL344964, but these don't do it...and I don't think they add any value, so deleting. llvm-svn: 344969
* [clang-tidy] Fix typo abls->absl.Benjamin Kramer2018-10-221-1/+1
| | | | llvm-svn: 344968
* [MC] Shrink MCAsmParser by grouping bools, add const, NFCReid Kleckner2018-10-222-5/+6
| | | | | | | | | | | | I was considering adding another boolean here. I standardized on bools since they allow default member initializers in the class definition. This makes ShowParsedOperands protected instead of private, but that's probably fine. Reduce the SmallVector size while we're at it, since the common case is that there is never a pending error. llvm-svn: 344967
* [ARM] Regenerate reverse shuffle costsSimon Pilgrim2018-10-221-19/+17
| | | | | | Came about while cleaning up general shuffle costs for PR39368 llvm-svn: 344966
* Recommit r344877 "[X86] Stop promoting integer loads to vXi64"Craig Topper2018-10-2216-590/+712
| | | | | | | | | | | | | | | | | | | | | | | | I've included a fix to DAGCombiner::ForwardStoreValueToDirectLoad that I believe will prevent the previous miscompile. Original commit message: Theoretically this was done to simplify the amount of isel patterns that were needed. But it also meant a substantial number of our isel patterns have to match an explicit bitcast. By making the vXi32/vXi16/vXi8 types legal for loads, DAG combiner should be able to change the load type to rem I had to add some additional plain load instruction patterns and a few other special cases, but overall the isel table has reduced in size by ~12000 bytes. So it looks like this promotion was hurting us more than helping. I still have one crash in vector-trunc.ll that I'm hoping @RKSimon can help with. It seems to relate to using getTargetConstantFromNode on a load that was shrunk due to an extract_subvector combine after the constant pool entry was created. So we end up decoding more mask elements than the lo I'm hoping this patch will simplify the number of patterns needed to remove the and/or/xor promotion. Reviewers: RKSimon, spatel Reviewed By: RKSimon Subscribers: llvm-commits, RKSimon Differential Revision: https://reviews.llvm.org/D53306 llvm-svn: 344965
* [Reassociate] add vector tests with undef elements; NFCSanjay Patel2018-10-223-43/+107
| | | | | | | | Also, regenerate checks for these files. We should do better on the vector tests by using the PatternMatch API instead of BinaryOperator::isNot/isNeg. llvm-svn: 344964
* Revert "[Driver] Reland again: Default Android toolchains to libc++."Dan Albert2018-10-224-62/+65
| | | | | | More compiler-rt test bot breakages... llvm-svn: 344963
* [WebAssembly][NFC] Remove WebAssemblyStackifier TableGen backendThomas Lively2018-10-2210-91/+44
| | | | | | | | | | | | | | | | Summary: Replace its functionality with a TableGen InstrInfo relational instruction mapping. Although arguably more complex than the TableGen backend, the relational mapping is a smaller maintenance burden than a TableGen backend. Reviewers: aardappel, aheejin, dschuff Subscribers: mgorny, sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D53307 llvm-svn: 344962
* Revert "Ensure sanitizer check function calls have a !dbg location"Vlad Tsyrklevich2018-10-222-20/+0
| | | | | | | This reverts commit r344915. It was causing exceptions on the x86_64-linux-ubsan bot. llvm-svn: 344961
* [DWARF] Use a function-local offset for AT_call_return_pcVedant Kumar2018-10-227-14/+44
| | | | | | | | | | | | | | | | | | | Logs provided by @stella.stamenova indicate that on Linux, lldb adds a spurious slide offset to the return PC it loads from AT_call_return_pc attributes (see the list thread: "[PATCH] D50478: Add support for artificial tail call frames"). This patch side-steps the issue by getting rid of the load address calculation in lldb's CallEdge::GetReturnPCAddress. The idea is to have the DWARF writer emit function-local offsets to the instruction after a call. I.e. return-pc = label-after-call-insn - function-entry. LLDB can simply add this offset to the base address of a function to get the return PC. Differential Revision: https://reviews.llvm.org/D53469 llvm-svn: 344960
* [Reassociate] add 'using namespace' to reduce bloat; NFCSanjay Patel2018-10-221-3/+4
| | | | llvm-svn: 344959
* [Driver] fix broken testNick Desaulniers2018-10-221-1/+1
| | | | | | | | | | | | | | | | Summary: Fixes test from r344941 which was broken on Windows. We want to check the selected toolchain rather than the found toolchain anyways. Reviewers: srhines, danalbert Reviewed By: srhines Subscribers: cfe-commits, bogner, pirama Differential Revision: https://reviews.llvm.org/D53529 llvm-svn: 344958
* Give Multiversion-inline functions linkonce linkageErich Keane2018-10-222-8/+12
| | | | | | | | | | | | Since multiversion variant functions can be inline, in C they become available-externally linkage. This ends up causing the variants to not be emitted, and not available to the linker. The solution is to make sure that multiversion functions are always emitted by marking them linkonce. Change-Id: I897aa37c7cbba0c1eb2c57ee881d5000a2113b75 llvm-svn: 344957
* [ORC] Guard access to the MemMgrs vector in RTDyldObjectLinkingLayer.Lang Hames2018-10-221-3/+10
| | | | | | | | | Otherwise we can end up with a data-race when linking concurrently. This should fix an intermittent failure in the multiple-compile-threads-basic.ll testcase. llvm-svn: 344956
* [x86] add test for PR25498 and complete checks; NFCSanjay Patel2018-10-221-14/+1213
| | | | | | Might as well test the actual codegen instead of just the absence of crashing. llvm-svn: 344955
* [interception] Switch to _type suffix instead of _f, NFC.Kuba Mracek2018-10-222-2/+2
| | | | | | | | Some Darwin functions have pairs like dispatch_apply and dispatch_apply_f so the added _f to interceptor types causes a clash. Let's add _type suffix instead. Differential Revision: https://reviews.llvm.org/D53167 llvm-svn: 344954
* Update commnents to reflect the changes for LWG#3127. NFCMarshall Clow2018-10-221-1/+1
| | | | llvm-svn: 344953
* Add OUTPUT_FORMAT linker script directive support.Rui Ueyama2018-10-225-12/+56
| | | | | | | | | | | | | | | | | | | | | | This patch adds a support for OUTPUT_FORMAT linker script directive. Since I'm not 100% confident with BFD names you can use in the directive for all architectures, I added only a few in this patch. We can add other names for other archtiectures later. We still do not support triple-style OUTPUT_FORMAT directive, namely, OUTPUT_FORMAT(bfdname, big, little). If you pass -EL (little endian) or -EB (big endian) to the linker, GNU linkers pick up big or little as a BFD name, correspondingly, so that you can use a single linker script for bi-endian processor. I'm not sure if we really need to support that, so I'll leave it alone for now. Note that -m takes precedence over OUTPUT_FORAMT, but we always parse a BFD name given to OUTPUT_FORMAT for error checking. You cannot write an invalid name in the OUTPUT_FORMAT directive. Differential Revision: https://reviews.llvm.org/D53495 llvm-svn: 344952
* Update commnents to reflect the changes for LWG#3127. NFCMarshall Clow2018-10-222-1/+31
| | | | llvm-svn: 344951
* Update commnents to reflect the changes for LWG#3122. NFCMarshall Clow2018-10-223-0/+3
| | | | llvm-svn: 344950
* X86: add alias for pushfw/popfw in Intel modeTim Northover2018-10-222-0/+9
| | | | | | | | | A while ago we changed pushf and popf in Intel mode to generate pushfq and popfq. Unfortunately that left us with no way to get the 16-bit encoding in Intel mode so this patch adds pushfw and popfw as aliases there. llvm-svn: 344949
* [ELF][PPC64] Fix a split-stack comment in rLLD344622Fangrui Song2018-10-221-1/+1
| | | | | | The blt- instruction (predicted not to be taken) uses cr7, not the default cr0. llvm-svn: 344948
* [clang-tidy] tryfix windows buildJonas Toth2018-10-221-0/+1
| | | | llvm-svn: 344947
* [Driver] Reland again: Default Android toolchains to libc++.Dan Albert2018-10-224-65/+62
| | | | | | | | | Some of the test data went missing last time I tried to submit this, causing the tests to fail when the build did not include libc++. Original review was https://reviews.llvm.org/D53109. llvm-svn: 344946
OpenPOWER on IntegriCloud