summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* NFC: Make the copies of the demangler byte-for-byte identicalErik Pilkington2019-01-1717-98/+301
| | | | | | | | | | | | | | With this patch, the copies of the files ItaniumDemangle.h, StringView.h, and Utility.h are kept byte-for-byte in sync between libcxxabi and llvm. All differences (namespaces, fallthrough, and unreachable macros) are defined in each copies' DemanglerConfig.h. This patch also adds a script to copy changes from libcxxabi (cp-to-llvm.sh), and a README.txt explaining the situation. Differential revision: https://reviews.llvm.org/D53538 llvm-svn: 351474
* [clang-tidy] Add abseil-duration-conversion-cast checkHyrum Wright2019-01-178-1/+257
| | | | | | Differential Revision: https://reviews.llvm.org/D56532 llvm-svn: 351473
* Fix the buildbot failure introduced by r351404Sanjin Sijaric2019-01-172-2/+4
| | | | | | | | | EXPENSIVE_CHECKS buildbots are failing due to r351404. Add x1 as live in to the funclet basic block for SEH funclets, as well as -verify-machineinstrs to the test case that triggered the failure. llvm-svn: 351472
* Revert r351208 (which was a revert of r350892).Aaron Ballman2019-01-173-36/+26
| | | | | | This corresponds to the fix to Clang in r351470. llvm-svn: 351471
* Revert r351209 (which was a revert of r350891) with a fix.Aaron Ballman2019-01-174-122/+198
| | | | | | The test case had a parse error that was causing the condition string to be misreported. We now have better fallback code for error cases. llvm-svn: 351470
* llvm build: Merge r351448Nico Weber2019-01-172-0/+2
| | | | llvm-svn: 351469
* [Documentation] Fix another link in docs/clang-tidy/Contributing.rst.Eugene Zelenko2019-01-171-6/+9
| | | | llvm-svn: 351468
* [Documentation] Another attempt to fix link in ↵Eugene Zelenko2019-01-171-14/+15
| | | | | | docs/clang-tidy/Contributing.rst. Use HTTPS for links. llvm-svn: 351467
* [Documentation] Fix link in docs/clang-tidy/Contributing.rst.Eugene Zelenko2019-01-171-2/+3
| | | | llvm-svn: 351466
* [WebAssembly] Fixing 2 more symbol offset related tests.Wouter van Oortmerssen2019-01-172-7/+7
| | | | llvm-svn: 351465
* [Test] Fix debug-loc-0.mir with EXPENSIVE_CHECKSJonas Devlieghere2019-01-171-1/+1
| | | | | | The `llc` invocation was missing `-start-before=machine-cp`. llvm-svn: 351464
* [Documentation] Add a chapter about Clang-tidy integrations.Eugene Zelenko2019-01-173-508/+626
| | | | | | | | Patch by Marina Kalashina. Differential Revision: https://reviews.llvm.org/D54945 llvm-svn: 351463
* [WebAssembly] Changed objdump output to offsets instead of indices.Wouter van Oortmerssen2019-01-171-3/+3
| | | | | | | | | | | | Summary: This is to accommodate this change: https://reviews.llvm.org/D56684 Reviewers: sbc100 Subscribers: dschuff, jgravelle-google, aheejin, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D56687 llvm-svn: 351462
* [CodeGenObjC] Use a constant value for non-fragile ivar offsets when possibleErik Pilkington2019-01-174-31/+91
| | | | | | | | | | | | | | | If a class inherits from NSObject and has an implementation, then we can assume that ivar offsets won't need to be updated by the runtime. This allows us to index into the object using a constant value and avoid loading from the ivar offset variable. This patch was adapted from one written by Pete Cooper. rdar://problem/10132568 Differential revision: https://reviews.llvm.org/D56802 llvm-svn: 351461
* [WebAssembly] Fixed objdump not parsing function headers.Wouter van Oortmerssen2019-01-1712-27/+153
| | | | | | | | | | | | | | | | | | | | | | | Summary: objdump was interpreting the function header containing the locals declaration as instructions. To parse these without injecting target specific code in objdump, MCDisassembler::onSymbolStart was added to be implemented by the WebAssembly implemention. WasmObjectFile now returns a code offset for the "address" of a symbol, rather than the index. This is also more in-line with what other targets do. Also ensured that the AsmParser correctly puts each function in its own segment to enable this test case. Reviewers: sbc100, dschuff Subscribers: jgravelle-google, aheejin, sunfish, rupprecht, llvm-commits Differential Revision: https://reviews.llvm.org/D56684 llvm-svn: 351460
* [ObjC] Follow-up r350768 and allow the use of unavailable methods that areAlex Lorenz2019-01-173-9/+25
| | | | | | | | | | | | | | | | declared in a parent class from within the @implementation context This commit extends r350768 and allows the use of methods marked as unavailable that are declared in a parent class/category from within the @implementation of the class where the method is marked as unavailable. This allows users to call init that's marked as unavailable even if they don't define it. rdar://47134898 Differential Revision: https://reviews.llvm.org/D56816 llvm-svn: 351459
* Add a missing dependency to fix build.Rui Ueyama2019-01-171-0/+1
| | | | llvm-svn: 351458
* TLS: Respect visibility for thread_local variables on Darwin (PR40327)Vlad Tsyrklevich2019-01-173-5/+24
| | | | | | | | | | | | | | | | | | Summary: Teach clang to mark thread wrappers for thread_local variables with hidden visibility when the original variable is marked with hidden visibility. This is necessary on Darwin which exposes the thread wrapper instead of the thread variable. The thread wrapper would previously always be created with default visibility unless it had linkonce*/weak_odr linkage. Reviewers: rjmccall Reviewed By: rjmccall Differential Revision: https://reviews.llvm.org/D56818 llvm-svn: 351457
* [libFuzzer][MSVC] Make attribute-use compatible with MSVCJonathan Metzman2019-01-177-24/+46
| | | | | | | | | | | | | | Summary: Replace attributes with macros that use equivalent declspecs for MSVC. Reviewers: vitalybuka Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D56512 llvm-svn: 351456
* Revert "[ThinLTO] Add summary entries for index-based WPD"Teresa Johnson2019-01-1714-721/+26
| | | | | | | | Mistaken commit of something still under review! This reverts commit r351453. llvm-svn: 351455
* Add -dump-input=always to cfi-devirt test to debug flakeTeresa Johnson2019-01-171-5/+5
| | | | | | To help diagnose flaky bot failures in PR40351. llvm-svn: 351454
* [ThinLTO] Add summary entries for index-based WPDTeresa Johnson2019-01-1714-26/+721
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: If LTOUnit splitting is disabled, the module summary analysis computes the summary information necessary to perform single implementation devirtualization during the thin link with the index and no IR. The information collected from the regular LTO IR in the current hybrid WPD algorithm is summarized, including: 1) For vtable definitions, record the function pointers and their offset within the vtable initializer (subsumes the information collected from IR by tryFindVirtualCallTargets). 2) A record for each type metadata summarizing the vtable definitions decorated with that metadata (subsumes the TypeIdentiferMap collected from IR). Also added are the necessary bitcode records, and the corresponding assembly support. The index-based WPD will be sent as a follow-on. Depends on D53890. Reviewers: pcc Subscribers: mehdi_amini, Prazek, inglorion, eraman, steven_wu, dexonsmith, arphaman, llvm-commits Differential Revision: https://reviews.llvm.org/D54815 llvm-svn: 351453
* [llvm-readobj][ELF]Add demangling supportJames Henderson2019-01-175-24/+273
| | | | | | | | | | | | | | | | | | | | | This change adds demangling support to the ELF side of llvm-readobj, under the switch --demangle/-C. The following places are demangled: symbol table dumps (static and dynamic), relocation dumps (static and dynamic), addrsig dumps, call graph profile dumps, and group section signature symbols. Although GNU readelf doesn't support demangling, it is still a useful feature to have, and brings it on a par with llvm-objdump's capabilities. This fixes https://bugs.llvm.org/show_bug.cgi?id=40054. Reviewed by: grimar, rupprecht Differential Revision: https://reviews.llvm.org/D56791 llvm-svn: 351450
* CodeGen: Cast llvm.flt.rounds result to match __builtin_flt_roundsAnton Korobeynikov2019-01-173-0/+24
| | | | | | | | | | | | | llvm.flt.rounds returns an i32, but the builtin expects an integer. On targets where integers are not 32-bits clang tries to bitcast the result, causing an assertion failure. The patch enables newlib build for msp430. Patch by Edward Jones! Differential Revision: https://reviews.llvm.org/D24461 llvm-svn: 351449
* Move demangling function from llvm-objdump to Demangle libraryJames Henderson2019-01-177-18/+62
| | | | | | | | | | | | | | | | This allows it to be used in an upcoming llvm-readobj change. A small change in internal behaviour of the function is to always call the microsoftDemangle function if the string does not have an itanium encoding prefix, rather than only if it starts with '?'. This is harmless because the microsoftDemangle function does the same check already. Reviewed by: grimar, erik.pilkington Differential Revision: https://reviews.llvm.org/D56721 llvm-svn: 351448
* Recommit "Teach the default symbol vendor to respect ↵Pavel Labath2019-01-174-5/+85
| | | | | | | | | | | | | | module.GetSymbolFileFileSpec()" This reapplies commit r351330, which was reverted due to a failing test on macos. The failure was because the SymbolVendor used on MacOS was stricter than the default (or ELF) symbol vendor, and rejected the symbol file because it's UUID did not match the object file. This version of the patch adds a uuid load command to the test macho file to make sure the UUIDs match. llvm-svn: 351447
* build_llvm_package.bat: Run more testsHans Wennborg2019-01-171-5/+13
| | | | llvm-svn: 351436
* Recommit "Add a verbose mode to "image dump line-table" and use it to write ↵Pavel Labath2019-01-172-4/+119
| | | | | | | | | | | a .debug_line test" This reapplies r350802, which was reverted because of issues with parsing posix-style paths on windows hosts (and vice-versa). These have since been fixed in r351328, and lldb should now recognise the path style used in a dwarf compile unit correctly. llvm-svn: 351435
* [LoopSimplifyCFG] Form LCSSA when a parent loop becomes a siblingMax Kazantsev2019-01-172-3/+27
| | | | | | | | | | | | | During the transforms in LoopSimplifyCFG, when we remove a dead exiting edge, the parent loop may stop being reachable from the child loop, and therefore they become siblings. If the former child loop had uses of some values from its former parent loop, now such uses will require LCSSA Phis, even if they weren't needed before. So we must form LCSSA for all loops that stopped being ancestors of the current loop in this case. Differential Revision: https://reviews.llvm.org/D56144 Reviewed By: fedor.sergeev llvm-svn: 351434
* [LoopSimplifyCFG] Fix order of deletion of complex dead subloopsMax Kazantsev2019-01-172-5/+21
| | | | | | | | | | | | | | | | | Function `DeleteDeadBlock` requires that all predecessors of a block being deleted have already been deleted, with the exception of a single-block loop. When we use it for removal of dead subloops that contain more than one block, we may not fulfull this requirement and fail an assertion. This patch replaces invocation of `DeleteDeadBlock` with a generalized version `DeleteDeadBlocks` that is able to deal with multiple dead blocks, even if they contain some cycles. Differential Revision: https://reviews.llvm.org/D56121 Reviewed By: fedor.sergeev llvm-svn: 351433
* Revert r351311 "[OMPT] Make sure that OMPT is enabled when accessing ↵Hans Wennborg2019-01-172-163/+4
| | | | | | | | | | | | | | | | | | | | | | | | internals of the runtime" and also the follow-up r351315. The new test is failing on the buildbots. > Make sure that OMPT is enabled in runtime entry points that access internals > of the runtime. Else, return an appropiate value indicating an error or that > the data is not available. > > Patch provided by @sconvent > > Reviewers: jlpeyton, omalyshe, hbae, Hahnfeld, joachim.protze > > Reviewed By: joachim.protze > > Tags: #openmp, #ompt > > Differential Revision: https://reviews.llvm.org/D47717 llvm-svn: 351431
* [X86][SSE] Add PR40340 test caseSimon Pilgrim2019-01-171-0/+19
| | | | llvm-svn: 351430
* [X86] Add AVX512 test to insertpsSimon Pilgrim2019-01-171-3/+4
| | | | | | Pre-commit for PR40340 llvm-svn: 351429
* GlobalISel: Add comment to clarify G_BUILD_VECTORMatt Arsenault2019-01-171-1/+3
| | | | llvm-svn: 351428
* Allow FP types for atomicrmw xchgMatt Arsenault2019-01-1724-16/+375
| | | | llvm-svn: 351427
* [MC] Remove unused variableBenjamin Kramer2019-01-171-1/+0
| | | | llvm-svn: 351426
* Fix capitalization. NFCDiana Picus2019-01-171-6/+6
| | | | llvm-svn: 351425
* [ARM GlobalISel] Allow calls to varargs functionsDiana Picus2019-01-173-10/+90
| | | | | | | | | Allow varargs functions to be called, both in arm and thumb mode. This boils down to choosing the correct calling convention, which we can easily test by making sure arm_aapcscc is used instead of arm_aapcs_vfpcc when the callee is variadic. llvm-svn: 351424
* [NewPM] Add -fsanitize={memory,thread} handling to clangPhilip Pfaffe2019-01-171-0/+11
| | | | | | | | | | | | Summary: This is the missing bit to drive thread and memory sanitizers through clang using the new PassManager. Reviewers: chandlerc, fedor.sergeev, vitalybuka, leonardchan Subscribers: bollu, llvm-commits Differential Revision: https://reviews.llvm.org/D56831 llvm-svn: 351423
* [RISCV] Add codegen support for RV64AAlex Bradbury2019-01-177-48/+4166
| | | | | | | | | | | | | | | | | | | | | In order to support codegen RV64A, this patch: * Introduces masked atomics intrinsics for atomicrmw operations and cmpxchg that use the i64 type. These are ultimately lowered to masked operations using lr.w/sc.w, but we need to use these alternate intrinsics for RV64 because i32 is not legal * Modifies RISCVExpandPseudoInsts.cpp to handle PseudoAtomicLoadNand64 and PseudoCmpXchg64 * Modifies the AtomicExpandPass hooks in RISCVTargetLowering to sext/trunc as needed for RV64 and to select the i64 intrinsic IDs when necessary * Adds appropriate patterns to RISCVInstrInfoA.td * Updates test/CodeGen/RISCV/atomic-*.ll to show RV64A support This ends up being a fairly mechanical change, as the logic for RV32A is effectively reused. Differential Revision: https://reviews.llvm.org/D53233 llvm-svn: 351422
* [ARM64][Windows] Share unwind codes between epiloguesSanjin Sijaric2019-01-173-5/+279
| | | | | | | | | | | | | | There are cases where we have multiple epilogues that have the exact same unwind code sequence. In that case, the epilogues can share the same unwind codes in the .xdata section. This should get us past the assert "SEH unwind data splitting not yet implemented" in many cases. We still need to add support for generating multiple .pdata/.xdata sections for those functions that need to be split into fragments. Differential Revision: https://reviews.llvm.org/D56813 llvm-svn: 351421
* [llvm-objdump] - Fix comment. NFC.George Rimar2019-01-171-1/+1
| | | | | | Forgot to address this one. llvm-svn: 351418
* [llvm-objdump] - Simplify the getRelocationValueString. NFCI.George Rimar2019-01-171-38/+22
| | | | | | | | | | This refactors the getRelocationValueString method. It is a bit overcomplicated and it is possible to reduce it without losing the functionality it seems. Differential revision: https://reviews.llvm.org/D56778 llvm-svn: 351417
* [NFC] Factor out some local varsMax Kazantsev2019-01-171-7/+9
| | | | llvm-svn: 351416
* [CMake][Fuchsia] Disable modules for the second stage buildPetr Hosek2019-01-171-1/+0
| | | | | | | | This made the toolchain build 50% slower. Differential Revision: https://reviews.llvm.org/D56825 llvm-svn: 351415
* [hurd] Fix unconditional use of PATH_MAXEric Fiselier2019-01-171-6/+25
| | | | | | | | | | | Patch by Samuel Thibault The GNU/Hurd system does not define an arbitrary PATH_MAX limitation, the POSIX 2001 realpath extension can be used instead, and the size of symlinks can be determined. Reviewed as https://reviews.llvm.org/D54677 llvm-svn: 351414
* [WebAssembly] Parse llvm.ident into producers sectionThomas Lively2019-01-1714-18/+276
| | | | llvm-svn: 351413
* [WebAssembly] Merge producers sectionThomas Lively2019-01-173-2/+51
| | | | llvm-svn: 351412
* [MergeFunc] Prevent silent miscompile of vararg functionsVedant Kumar2019-01-172-1/+96
| | | | | | | | | | | | The function merging pass miscompiles identical vararg functions. The forwarding thunk it emits doesn't forward the full variable-length list of arguments. Disable merging for vararg functions for now. I've filed llvm.org/PR40345 to track the issue. rdar://47326238 llvm-svn: 351411
* Revert "[WebAssembly] Parse llvm.ident into producers section"Thomas Lively2019-01-1714-276/+18
| | | | | | This reverts commit eccdbba3a02a33e13b5262e92200a33e2ead873d. llvm-svn: 351410
OpenPOWER on IntegriCloud