summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix unused variable warning in release mode. NFC.Alexander Ivchenko2018-02-061-0/+1
| | | | llvm-svn: 324330
* [clangd] Fix incorrect file path for symbols defined by the compile ↵Haojian Wu2018-02-062-6/+33
| | | | | | | | | | | | | | | | command-line option. Summary: Reviewers: ioeric Reviewed By: ioeric Subscribers: klimek, ilya-biryukov, jkorous-apple, cfe-commits Differential Revision: https://reviews.llvm.org/D42913 llvm-svn: 324328
* [AArch64] Fix spelling of ICH_ELRSR_EL2 system registerOliver Stannard2018-02-063-4/+4
| | | | | | | This register was mis-spelled as ICH_ELSR_EL2, but has the correct encoding for ICH_ELRSR_EL2. llvm-svn: 324325
* [ARM][AArch64] Add CSDB speculation barrier instructionOliver Stannard2018-02-0610-11/+48
| | | | | | | | | | | | | | | This adds the CSDB instruction, which is a new barrier instruction described by the whitepaper at [1]. This is in encoding space which was previously executed as a NOP, so it is available for all targets that have the relevant NOP encoding space. This matches the binutils behaviour for these instructions [2][3]. [1] https://developer.arm.com/support/security-update [2] https://sourceware.org/ml/binutils/2018-01/msg00116.html [3] https://sourceware.org/ml/binutils/2018-01/msg00120.html llvm-svn: 324324
* [MergeICmps][NFC] Add more assertions.Clement Courbet2018-02-061-0/+4
| | | | llvm-svn: 324323
* [ELF] - Use InitTargetOptionsFromCodeGenFlags/ParseCommandLineOptions for ↵George Rimar2018-02-062-17/+14
| | | | | | | | | | | | | | | | | parsing LTO options. gold plugin uses InitTargetOptionsFromCodeGenFlags + ParseCommandLineOptions for parsing LTO options. Patch do the same change for LLD. Such change helps to avoid parsing/whitelisting LTO plugin options again on linker side, what can help LLD to automatically support new -plugin-opt=xxx options passed. Differential revision: https://reviews.llvm.org/D42733 llvm-svn: 324322
* [ARM] Armv8.2-A FP16 code generation (part 3/3)Sjoerd Meijer2018-02-064-42/+673
| | | | | | | | | | | | | | | This adds most of the FP16 codegen support, but these areas need further work: - FP16 literals and immediates are not properly supported yet (e.g. literal pool needs work), - Instructions that are generated from intrinsics (e.g. vabs) haven't been added. This will be addressed in follow-up patches. Differential Revision: https://reviews.llvm.org/D42849 llvm-svn: 324321
* [OMPT] Fix tool initialization returning 0Joachim Protze2018-02-061-0/+6
| | | | | | | | | If tool initialization returns 0, OMPT should not be active. The current implementation provided some callback invocations in this case. Differential Revision: https://reviews.llvm.org/D42709 llvm-svn: 324320
* Revert "[MergeICmps] Enable the MergeICmps Pass by default."Clement Courbet2018-02-064-20/+46
| | | | | | | | Breaks clang-ppc64be-linux-multistage buildbot. This reverts commit 515bab711f308c2e8299c49dd8c84ea6a2e0b60e. llvm-svn: 324319
* [MergeICmps] Enable the MergeICmps Pass by default.Clement Courbet2018-02-064-46/+20
| | | | | | | | | | | | Summary: Now that PR33325 is fixed, this should always improve the generated code. Reviewers: spatel Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D42793 llvm-svn: 324317
* [ThinLTO] fix test failure without x86 backendHiroshi Inoue2018-02-062-0/+3
| | | | | | This patch moves ThinLTOBitcodeWriter/module-asm.ll test case into x86 directory to avoid a test failure when x86 backend is not enabled. llvm-svn: 324316
* [X86] Modify a few tests to not use icmps that are provably false.Craig Topper2018-02-063-17/+15
| | | | | | | | These used things like unsigned less than zero, which is always false because there is no unsigned number less than zero. I plan to teach DAG combine to optimize these so need to stop using them. llvm-svn: 324315
* AMDGPU/MemoryModel: Fix monotonic atomic loadsKonstantin Zhuravlyov2018-02-062-3/+4
| | | | | | Those should have glc bit set for system and agent synchronization scopes llvm-svn: 324314
* ThinLTOBitcodeWriter: Do not include module-level inline asm in the merged ↵Peter Collingbourne2018-02-062-0/+13
| | | | | | | | | | | module. If the inline asm provides the definition of a symbol, this can result in duplicate symbol errors. Differential Revision: https://reviews.llvm.org/D42944 llvm-svn: 324313
* No, really this time mark 3034 as 'Patch Ready'Marshall Clow2018-02-061-2/+2
| | | | llvm-svn: 324312
* [DAGCombiner] Pass the original load to ExtendSetCCUses not the turncate.Craig Topper2018-02-061-11/+12
| | | | | | | | | | | | | | | | | | | | | | | Summary: This method is trying to use the truncate node to find which SETCC operand should be replaced directly with the extended load. This used to work correctly because all uses of the original load were replaced by the truncate before this function was called. So this was used to effectively bypass the truncate and find the load under it. All but one of the callers now call this before the truncate has replaced the laod so the setcc doesn't yet use the truncate. To account for this we should pass the original load instead. I changed the order of that one caller to make this work there too. I don't have a test case because this is probably hidden by later DAG combines causing the extend and truncate to cancel out. I assume this way is a little more efficient and matches what was originally intended. Reviewers: RKSimon, spatel, niravd Reviewed By: niravd Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D42878 llvm-svn: 324311
* Mark issue 3034 as 'Patch Ready'Marshall Clow2018-02-061-2/+2
| | | | llvm-svn: 324310
* Revert "[libc++] Fix PR35491 - std::array of zero-size doesn't work with ↵Nirav Dave2018-02-068-276/+17
| | | | | | | | | | | non-default constructible types." Revert "Fix initialization of array<const T, 0> with GCC." Revert "Make array<const T, 0> non-CopyAssignable and make swap and fill ill-formed." This reverts commit r324182, r324185, and r324194 which were causing issues with zero-length std::arrays. llvm-svn: 324309
* Fix crash on invalid.Richard Trieu2018-02-062-1/+17
| | | | | | Don't call a method when the pointer is null. llvm-svn: 324308
* More patches readyMarshall Clow2018-02-061-7/+7
| | | | llvm-svn: 324307
* [COFF] Add minimal support for /guard:cfReid Kleckner2018-02-0614-53/+632
| | | | | | | | | | | | | | | | | | | Summary: This patch adds some initial support for Windows control flow guard. At the end of the day, the linker needs to synthesize a table of RVAs very similar to the structured exception handler table (/safeseh). Both /safeseh and /guard:cf take sections of symbol table indices (.sxdata and .gfids$y) and turn them into RVA tables referenced by the load config struct in the CRT through special symbols. Reviewers: ruiu, amccarth Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D42592 llvm-svn: 324306
* [WebAssembly] Fix test expectations after r324274Derek Schuff2018-02-062-80/+33
| | | | | | | Wasm uses the expand action for several FP compare ops, and that behavior changed. llvm-svn: 324305
* Update test expectations after reverting PLT changeReid Kleckner2018-02-062-15/+15
| | | | llvm-svn: 324304
* [RISCV] Add support for %pcrel_lo.Ahmed Charles2018-02-069-12/+65
| | | | llvm-svn: 324303
* Fix test/Driver/sanitizer-ld.c broken by D40903Alex Shlyapnikov2018-02-061-43/+43
| | | | | | Differential revision: https://reviews.llvm.org/D40903 llvm-svn: 324302
* Revert "Don't assume a null GV is local for ELF and MachO."Reid Kleckner2018-02-067-34/+27
| | | | | | | | This reverts r323297. It breaks building grub. llvm-svn: 324301
* Add -no-allow-multiple-definition, -no-pic-executable and -no-warn-common.Rui Ueyama2018-02-065-10/+15
| | | | | | | | GNU gold has these options. Differential Revision: https://reviews.llvm.org/D42929 llvm-svn: 324300
* [ThinLTO] Remove dead and dropped symbol declarations when possibleTeresa Johnson2018-02-064-10/+90
| | | | | | | | | | | | | | | | | | | | | Summary: Removing the dropped symbols will prevent indirect call promotion in the ThinLTO Backend from adding a new reference to a symbol, which can result in linker unsats. This can happen when we compile with a sample profile collected from one binary by used for another, which may have profiled targets that aren't used in the new binary. Note that until dropDeadSymbols handles variables and aliases (in progress), we may not be able to remove the declaration and can still have an issue. Reviewers: grimar, davidxl Subscribers: mehdi_amini, inglorion, llvm-commits, eraman Differential Revision: https://reviews.llvm.org/D42816 llvm-svn: 324299
* Fix regex from r324279 more better.Paul Robinson2018-02-061-1/+1
| | | | llvm-svn: 324298
* Fix LLD wasm error check on Windows, which prints "lld.EXE: error: ..."Reid Kleckner2018-02-061-1/+1
| | | | llvm-svn: 324297
* [Sanitizers] Basic Solaris sanitizer support (PR 33274)Alex Shlyapnikov2018-02-055-7/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch (on top of https://reviews.llvm.org/D35755) provides the clang side necessary to enable the Solaris port of the sanitizers implemented by https://reviews.llvm.org/D40898, https://reviews.llvm.org/D40899, and https://reviews.llvm.org/D40900). A few features of note: * While compiler-rt cmake/base-config-ix.cmake (COMPILER_RT_OS_DIR) places the runtime libs in a tolower(CMAKE_SYSTEM_NAME) directory, clang defaults to the OS part of the target triplet (solaris2.11 in the case at hand). The patch makes them agree on compiler-rt's idea. * While Solaris ld accepts a considerable number of GNU ld options for compatibility, it only does so for the double-dash forms. clang unfortunately is inconsistent here and sometimes uses the double-dash form, sometimes the single-dash one that confuses the hell out of Solaris ld. I've changed the affected places to use the double-dash form that should always work. * As described in https://reviews.llvm.org/D40899, Solaris ld doesn't create the __start___sancov_guards/__stop___sancov_guards labels gld/gold/lld do, so I'm including additional runtime libs into the link that provide them. * One test uses -fstack-protector, but unlike other systems libssp hasn't been folded into Solaris libc, but needs to be linked with separately. * For now, only 32-bit x86 asan is enabled on Solaris. 64-bit x86 should follow, but sparc (which requires additional compiler-rt changes not yet submitted) fails miserably due to a llvmsparc backend limitation: fatal error: error in backend: Function "_ZN7testing8internal16BoolFromGTestEnvEPKcb": over-aligned dynamic alloca not supported. However, inside the gcc tree, Solaris/sparc asan works almost as well as x86. Reviewers: rsmith, alekseyshl Reviewed By: alekseyshl Subscribers: jyknight, fedor.sergeev, cfe-commits Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D40903 llvm-svn: 324296
* [X86] Auto-generate complete checks. NFCCraig Topper2018-02-051-21/+54
| | | | llvm-svn: 324295
* [X86] Relax restrictions on what setcc condition codes can be folded with a ↵Craig Topper2018-02-053-8/+7
| | | | | | | | sext when AVX512 is enabled. We now allow all signed comparisons and not equal. The complement that needs to be added for this is no worse than the extend. And the vector output forms of pcmpeq/pcmpgt have better latency than the k-register version on SKX. llvm-svn: 324294
* [testsuite] Skip a flakey test.Davide Italiano2018-02-051-0/+1
| | | | llvm-svn: 324293
* Add issues in 'Review'Marshall Clow2018-02-051-3/+23
| | | | llvm-svn: 324292
* LTO: Also include dso-local bit for calls in ThinLTO cache key.Peter Collingbourne2018-02-052-1/+26
| | | | | | Differential Revision: https://reviews.llvm.org/D42934 llvm-svn: 324291
* Remove <experimental/string_view>; use <string_view> instead. See ↵Marshall Clow2018-02-0584-17023/+1
| | | | | | https://libcxx.llvm.org/TS_deprecation.html llvm-svn: 324290
* [LoopStrengthReduce, x86] don't add cost for a cmp that will be macro-fused ↵Sanjay Patel2018-02-059-49/+73
| | | | | | | | | | | | | | | (PR35681) In the motivating case from PR35681 and represented by the macro-fuse-cmp test: https://bugs.llvm.org/show_bug.cgi?id=35681 ...there's a 37 -> 31 byte size win for the loop because we eliminate the big base address offsets. SPEC2017 on Ryzen shows no significant perf difference. Differential Revision: https://reviews.llvm.org/D42607 llvm-svn: 324289
* Disable test_restart_bug failing on AndroidEugene Zemtsov2018-02-051-0/+1
| | | | llvm-svn: 324288
* Fix the cputype comparison in ↵Jason Molenda2018-02-051-1/+5
| | | | | | | | | GDBRemoteCommunicationServerCommon::Handle_qHostInfo to use Mach-O cpu types instead of the ArchSpec enum value, and handle the case of bridgeos. llvm-svn: 324287
* IRGen: Move vtable load after argument evaluation.Peter Collingbourne2018-02-0511-107/+146
| | | | | | | | | | | | | | This change reduces the live range of the loaded function pointer, resulting in a slight code size decrease (~10KB in clang), and also improves the security of CFI for virtual calls by making it less likely that the function pointer will be spilled, and ensuring that it is not spilled across a function call boundary. Fixes PR35353. Differential Revision: https://reviews.llvm.org/D42725 llvm-svn: 324286
* [PEI] Fix failing test caused by r324283Francis Visoiu Mistrih2018-02-051-0/+6
| | | | | | X86FrameLowering sets stack size to 0 if redzone is enabled. llvm-svn: 324285
* [Sanitizers, Darwin] Disable SANITIZER_SUPPORTS_WEAK_HOOKS before Mac OS X 10.9Vitaly Buka2018-02-051-1/+7
| | | | | | | | | | | | | | | | | | Summary: Before Xcode 4.5, undefined weak symbols don't work reliably on Darwin: https://stackoverflow.com/questions/6009321/weak-symbol-link-on-mac-os-x Therefore this patch disables their use before Mac OS X 10.9 which is the first version only supported by Xcode 4.5 and above. Reviewers: glider, kcc, vitalybuka Reviewed By: vitalybuka Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D41346 llvm-svn: 324284
* [PEI][NFC] Move StackSize opt-remark code next to -warn-stack codeFrancis Visoiu Mistrih2018-02-051-7/+6
| | | | | | | This allows us to make sure we're always having the same sizes in both remarks and warnings. llvm-svn: 324283
* [demangler] Refactor the type parserErik Pilkington2018-02-051-821/+595
| | | | | | Differential revision: https://reviews.llvm.org/D41889 llvm-svn: 324282
* CMake: fix build directory name in clean ruleAdrian Prantl2018-02-051-1/+1
| | | | llvm-svn: 324281
* [lang/Objc] UNXFAIL a test. Nullability has been implemented in clang.Davide Italiano2018-02-051-1/+0
| | | | | | | | (a while ago). <rdar://problem/20416388> llvm-svn: 324280
* Fix Windows bots for test from r324270.Paul Robinson2018-02-051-1/+1
| | | | llvm-svn: 324279
* [LowerMemIntrinsics] Update uses of deprecated MemIntrinsic::getAlignment ↵Daniel Neilson2018-02-051-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | API (NFC) Summary: This change is part of step five in the series of changes to remove alignment argument from memcpy/memmove/memset in favour of alignment attributes. In particular, this changes the LowerMemIntrinsics pass to cease using the old getAlignment() API of MemoryIntrinsic in favour of getting source & dest specific alignments through the new API. Steps: Step 1) Remove alignment parameter and create alignment parameter attributes for memcpy/memmove/memset. ( rL322965, rC322964, rL322963 ) Step 2) Expand the IRBuilder API to allow creation of memcpy/memmove with differing source and dest alignments. ( rL323597 ) Step 3) Update Clang to use the new IRBuilder API. ( rC323617 ) Step 4) Update Polly to use the new IRBuilder API. ( rL323618 ) Step 5) Update LLVM passes that create memcpy/memmove calls to use the new IRBuilder API, and those that use use MemIntrinsicInst::[get|set]Alignment() to use [get|set]DestAlignment() and [get|set]SourceAlignment() instead. ( rL323886, rL323891, rL324148, rL324273 ) Step 6) Remove the single-alignment IRBuilder API for memcpy/memmove, and the MemIntrinsicInst::[get|set]Alignment() methods. Reference http://lists.llvm.org/pipermail/llvm-dev/2015-August/089384.html http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151109/312083.html llvm-svn: 324278
* [clangd] Add a cstring include for strerror.Benjamin Kramer2018-02-051-0/+1
| | | | | | Apparently this doesn't get included transitively on some systems. llvm-svn: 324277
OpenPOWER on IntegriCloud