summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Simplify. NFC.Rui Ueyama2017-04-051-10/+7
| | | | llvm-svn: 299506
* Use make to create linker script command objects.Rui Ueyama2017-04-052-65/+61
| | | | | | It simplifies variable types. llvm-svn: 299505
* Remove default arguments because they don't improve readability.Rui Ueyama2017-04-052-5/+5
| | | | llvm-svn: 299504
* Add parentheses around `&`.Rui Ueyama2017-04-051-1/+1
| | | | llvm-svn: 299503
* Update comment.Rui Ueyama2017-04-051-4/+3
| | | | llvm-svn: 299502
* Use empty() instead of size().Rui Ueyama2017-04-051-1/+1
| | | | | | `!V.size()` where V is a vector is equivalent to `V.empty()`. llvm-svn: 299501
* Simplify. NFC.Rui Ueyama2017-04-051-8/+4
| | | | llvm-svn: 299500
* Make variable names consistent. NFC.Rui Ueyama2017-04-051-21/+22
| | | | llvm-svn: 299499
* Return a result from computeInputSections instead of mutating its argument.Rui Ueyama2017-04-052-19/+27
| | | | | | This should improve readability. llvm-svn: 299498
* [RuntimeDyld] Remove an unused static member left over from r299449.Lang Hames2017-04-051-2/+0
| | | | llvm-svn: 299497
* [COFF] support /ERRORLIMIT optionBob Haarman2017-04-055-25/+82
| | | | | | | | | | | | | | | | | Summary: This adds support for reporting multiple errors in a single invocation of lld-link. The limit defaults to 20 and can be changed with the /ERRORLIMIT command line parameter, or set to unlimited by passing a value of 0. This is a new attempt after r295507, which was reverted because opening files raced with exiting early, causing the test to be flaky. This version avoids the race by exiting before calling enqueuePath. Reviewers: pcc, ruiu Reviewed By: ruiu Subscribers: llvm-commits, dblaikie Differential Revision: https://reviews.llvm.org/D31688 llvm-svn: 299496
* Remove `=` from a lambda that doesn't capture any variable.Rui Ueyama2017-04-051-3/+4
| | | | llvm-svn: 299495
* Inline small functions that are used only once as lambdas.Rui Ueyama2017-04-051-18/+14
| | | | llvm-svn: 299494
* Add newlines.Rui Ueyama2017-04-051-0/+8
| | | | llvm-svn: 299493
* Make dummy variable's scope smaller.Rui Ueyama2017-04-051-3/+2
| | | | llvm-svn: 299492
* ThinLTOBitcodeWriter: handle aliases first in filterModuleBob Haarman2017-04-052-20/+36
| | | | | | | | | | | | | | Summary: This change fixes a "local linkage requires default visibility" assert when attempting to build LLVM with ThinLTO on Windows. Reviewers: pcc, tejohnson, mehdi_amini Reviewed By: pcc Subscribers: llvm-commits, Prazek Differential Revision: https://reviews.llvm.org/D31632 llvm-svn: 299491
* [X86] Relax assert in broadcast-of-subvector lowering.Ahmed Bougacha2017-04-053-2/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before r294774, there was a problem when lowering broadcasts to use 128-bit subvectors. When we looked through a bitcast to find the broadcast input, we'd keep using the original type, so you'd end up with things like: (v8f32 (broadcast (v4f32 (extract_subvector (v8i32 V), ...)) )) r294774 fixed it to always emit subvectors with the scalar type of the original source. It also introduced some asserts, to check that we use scalars with the same size, and vectors with the same number of elements. The scalar size equality is checked earlier when looking through bitcasts, and is a useful assert. However, the number of elements don't have to be identical: we're always going to extract a 128-bit subvector, and we can have different size inputs if we looked through a concat_vector to find a 256-bit source. Relax the overzealous assert. Replace it with a check of the original source vector being 256 or 512 bits. If it's 128 bits, we can't extract_subvector from it. Fixes PR32371. llvm-svn: 299490
* Reverting r299374 & r299402 due to testsuite failure.Jim Ingham2017-04-057-982/+129
| | | | | | | | | | | | | | This caused a failure in the test case: functionalities/breakpoint/objc/TestObjCBreakpoints.py When we are parsing up names we stick interesting parts of the names in various buckets, one of which is the ObjC selector bucket. The new C++ name parser must be interfering with this process somehow. <rdar://problem/31439305> llvm-svn: 299489
* Another attempt to fix the sphinx warning from r299470Adam Nemet2017-04-041-1/+1
| | | | llvm-svn: 299488
* Allow targets to opt-in to codegen in SCC orderMatt Arsenault2017-04-042-2/+15
| | | | | | | | | | Decouple this setting from EnableIRPA. To support function calls on AMDGPU, it is necessary to report the global register usage throughout the kernel's call graph, so callees need to be handled first. llvm-svn: 299487
* Re-apply MemorySSA: Add support for caching clobbering access inDaniel Berlin2017-04-043-29/+82
| | | | | | | | | | | | | | | | | | | | stores with some fixes. Summary: This enables us to cache the clobbering access for stores, despite the fact that we can't rewrite the use-def chains themselves. Early testing shows that, after this change, for larger testcases, it will be a significant net positive (memory and time) to remove the walker caching. Reviewers: george.burgess.iv, davide Subscribers: Prazek, llvm-commits Differential Revision: https://reviews.llvm.org/D31567 llvm-svn: 299486
* Revert "MemorySSA: Add support for caching clobbering access in stores"Daniel Berlin2017-04-043-55/+24
| | | | | | This reverts revision r299322. llvm-svn: 299485
* [MC] Set defaults based on section names and support name suffixesPetr Hosek2017-04-042-6/+62
| | | | | | | | | | | | | Set correct default flags and section type based on its name for .text, .data, .bss, .init_array, .fini_array, .preinit_array, .tdata, and .tbss and support section name suffixes for .data.*, .rodata.*, .text.*, .bss.*, .tdata.* and .tbss.* which matches the behavior of GAS. Fixes PR31888. Differential Revision: https://reviews.llvm.org/D30229 llvm-svn: 299484
* [AArch64] Avoid partial register deps on insertelt of load into lane 0.Ahmed Bougacha2017-04-042-16/+10
| | | | | | | | | | | | | | | This improves upon r246462: that prevented FMOVs from being emitted for the cross-class INSERT_SUBREGs by disabling the formation of INSERT_SUBREGs of LOAD. But the ld1.s that we started selecting caused us to introduce partial dependencies on the vector register. Avoid that by using SCALAR_TO_VECTOR: it's a first-class citizen that is folded away by many patterns, including the scalar LDRS that we want in this case. Credit goes to Adam for finding the issue! llvm-svn: 299482
* Fix sphinx warning from r299470Adam Nemet2017-04-041-1/+1
| | | | llvm-svn: 299481
* Change section flag character for SHF_LINK_ORDER to "o".Evgeniy Stepanov2017-04-044-8/+8
| | | | | | See matching MC change in https://reviews.llvm.org/D31554. llvm-svn: 299480
* Change section flag character for SHF_LINK_ORDER to "o".Evgeniy Stepanov2017-04-049-23/+23
| | | | | | | | GAS uses "m" as a compatibility alias for "M" (SHF_MERGE). "o" is free, except on ia64, where it already means SHF_LINK_ORDER. llvm-svn: 299479
* Avoid calling basename to compute xdynamiclib_namespec.Rafael Espindola2017-04-041-2/+3
| | | | | | | This also exposes a xdynamiclib_filename that can be used to simplify a few tests. llvm-svn: 299478
* [InstCombine] Add test cases for various add/subtracts of constants(scalar, ↵Craig Topper2017-04-042-0/+196
| | | | | | splat, and vector) with phis and selects. Improvements coming in a future commit. llvm-svn: 299476
* [lit] Add a minimum export implementation.Rafael Espindola2017-04-041-9/+21
| | | | llvm-svn: 299475
* [InstCombine] rename variable for easier reading; NFCSanjay Patel2017-04-041-7/+8
| | | | | | We usually give constants a 'C' somewhere in the name... llvm-svn: 299474
* [Driver] Add option to print the resource directoryMeador Inge2017-04-043-0/+12
| | | | | | | | | | | | This patch adds the option -print-resource-dir. It simply prints the resource directory. This information will eventually be used in compiler-rt to setup COMPILER_RT_LIBRARY_INSTALL_DIR. Patch by Catherine Moore! Differential Revision: https://reviews.llvm.org/D31447 llvm-svn: 299473
* [InstCombine] Turn subtract of vectors of i1 into xor like we do for scalar ↵Craig Topper2017-04-042-1/+10
| | | | | | i1. Matches what we already do for add. llvm-svn: 299472
* Don't remove the cwd.Rafael Espindola2017-04-041-0/+1
| | | | | | | | | | This works with a regular shell since the kernel can keep track of a deleted cwd. Since we just keep a path string, the following subprocess invocations fail. I think this would also fail on windows. llvm-svn: 299471
* Add #pragma clang fpAdam Nemet2017-04-0413-13/+432
| | | | | | | | | | | | | | | | | | | | | | | | | This adds the new pragma and the first variant, contract(on/off/fast). The pragma has the same block scope rules as STDC FP_CONTRACT, i.e. it can be placed at the beginning of a compound statement or at file scope. Similarly to STDC FP_CONTRACT there is no need to use attributes. First an annotate token is inserted with the parsed details of the pragma. Then the annotate token is parsed in the proper contexts and the Sema is updated with the corresponding FPOptions using the shared ActOn function with STDC FP_CONTRACT. After this the FPOptions from the Sema is propagated into the AST expression nodes. There is no change here. I was going to add a 'default' option besides 'on/off/fast' similar to STDC FP_CONTRACT but then decided against it. I think that we'd have to make option uppercase then to avoid using 'default' the keyword. Also because of the scoped activation of pragma I am not sure there is really a need a for this. Differential Revision: https://reviews.llvm.org/D31276 llvm-svn: 299470
* Set FMF for -ffp-contract=fastAdam Nemet2017-04-042-4/+53
| | | | | | | | | | | | | | With this, FMF(contract) becomes an alternative way to express the request to contract. These are currently only propagated for FMul, FAdd and FSub. The rest will be added as more FMFs are hooked up for this. This is toward fixing PR25721. Differential Revision: https://reviews.llvm.org/D31168 llvm-svn: 299469
* [AArch64] Add missing schedinfo, check completeness for Falkor.Balaram Makam2017-04-041-10/+17
| | | | llvm-svn: 299468
* [ExecutionDepsFix] Don't revisit true dependenciesKeno Fischer2017-04-042-7/+14
| | | | | | | | | | | | | | | If an instruction has a true dependency, it makes sense for to use that register for any undef read operands in the same instruction (we'll have to wait for that register to become available anyway). This logic was already implemented. However, the code would then still try to revisit that instruction and break the dependency (and always fail, since by definition a true dependency has to be live before the instruction). Avoid revisiting such instructions as a performance optimization. No functional change. Differential Revision: https://reviews.llvm.org/D30173 llvm-svn: 299467
* [InstCombine] Support folding and/or/xor with a constant vector RHS into ↵Craig Topper2017-04-044-31/+23
| | | | | | | | | | selects and phis Currently we only fold with ConstantInt RHS. This generalizes to any Constant RHS. Differential Revision: https://reviews.llvm.org/D31610 llvm-svn: 299466
* [clang-format] fix crash in NamespaceEndCommentsFixer (PR32438)Matthias Gehre2017-04-042-1/+16
| | | | | | | | | | | | | | Summary: The new test case was crashing before. Now it passes as expected. Reviewers: djasper Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D31441 llvm-svn: 299465
* Don't resolve hidden undef to a DSO.Rafael Espindola2017-04-042-3/+29
| | | | | | | | | | | | | | The ELF spec says: all of the non-default visibility attributes, when applied to a symbol reference, imply that a definition to satisfy that reference must be provided within the current executable or shared object. But we were trying to resolve those undef references to shared symbols. That causes odd results like creating a got entry with a relocation pointing to 0. llvm-svn: 299464
* [analyzer] Add new Z3 constraint manager backendDominic Chen2017-04-0412-7/+1728
| | | | | | | | | | | | Summary: Implement new Z3 constraint manager backend. Reviewers: zaks.anna, dcoughlin, NoQ, xazax.hun Subscribers: mgorny, cfe-commits Differential Revision: https://reviews.llvm.org/D28952 llvm-svn: 299463
* [AArch64][Fuchsia] Allow -mcmodel=kernel for --target=aarch64-fuchsiaPetr Hosek2017-04-049-19/+51
| | | | | | | | | | | This mode is just like -mcmodel=small except that it moves the thread pointer from TPIDR_EL0 to TPIDR_EL1. Patch by Roland McGrath. Differential Revision: https://reviews.llvm.org/D31624 llvm-svn: 299462
* [clangd] Link against clangSemaJonas Devlieghere2017-04-041-0/+1
| | | | | | | Fixes linking issue introduced by rL299421 when building LLVM with shared libraries. llvm-svn: 299461
* [InstCombine] Add test cases for missing combines of phis with and/or/xor ↵Craig Topper2017-04-043-0/+204
| | | | | | with constant argument. NFC llvm-svn: 299460
* [fixup][X86][inline-asm] Add support for MS 'EVEN' directiveCoby Tayree2017-04-041-1/+2
| | | | | | refining tested targets resolution, to amend failures caused by rL299454 llvm-svn: 299459
* Implement host CPU detection for AArch64Yi Kong2017-04-042-4/+67
| | | | | | | | | | | | | | | | | | This shares detection logic with ARM(32), since AArch64 capable CPUs may also run in 32-bit system mode. We observe weird /proc/cpuinfo output for MSM8992 and MSM8994, where they report all CPU cores as one single model, depending on which CPU core the kernel is running on. As a workaround, we hardcode the known CPU part name for these SoCs. For big.LITTLE systems, this patch would only return the part name of the first core (usually the little core). Proper support will be added in a follow-up change. Differential Revision: D31675 llvm-svn: 299458
* Verifier: Check some amdgpu calling convention restrictionsMatt Arsenault2017-04-043-2/+70
| | | | llvm-svn: 299457
* [AArch64] Refine Falkor Machine Model - Part 2Balaram Makam2017-04-043-92/+454
| | | | llvm-svn: 299456
* [X86][inline-asm] Add support for MS 'EVEN' directiveCoby Tayree2017-04-041-0/+15
| | | | | | | | | | | | MS assembly syntax provide us with the 'EVEN' directive as a synonymous to at&t '.even'. This patch include the (small, simple) changes need to allow it. llvm-side: https://reviews.llvm.org/D27417 Differential Revision: https://reviews.llvm.org/D27418 llvm-svn: 299454
OpenPOWER on IntegriCloud