summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Revert "[Driver] Update default sanitizer blacklist location"Petr Hosek2018-01-115-1/+1
| | | | | | This reverts commit r322258: broke the dfsan build. llvm-svn: 322260
* [ELF] Fix SysV hash tables with --no-rosegmentShoaib Meenai2018-01-112-0/+16
| | | | | | | | | | | | | | When setting up the chain, we copy over the bucket's previous symbol index, assuming that this index will be 0 (STN_UNDEF) for an unused bucket (marking the end of the chain). When linking with --no-rosegment, however, unused buckets will in fact contain the padding value, and so the hash table will end up containing invalid chains. Zero out the hash table section explicitly to avoid this, similar to what's already done for GNU hash sections. Differential Revision: https://reviews.llvm.org/D41928 llvm-svn: 322259
* Reland "[Driver] Update default sanitizer blacklist location"Petr Hosek2018-01-115-1/+1
| | | | | | | | | This is related to moving the sanitizer blacklists to share/ subdirectory. Differential Revision: https://reviews.llvm.org/D41706 llvm-svn: 322258
* [CodeView] Fix the type for a variadic argumentAaron Smith2018-01-112-0/+129
| | | | | | | | | | | | | | Summary: - MSVC uses the none type for a variadic argument in CodeView - Add a unit test Reviewers: zturner, llvm-commits Reviewed By: zturner Differential Revision: https://reviews.llvm.org/D41931 llvm-svn: 322257
* Reland "Install resource files into a share/ directory"Petr Hosek2018-01-112-4/+4
| | | | | | | | | | | Currently these files are being installed into a root installation directory, but this triggers an error when the installation directory is set to an empty string which is often the case when DESTDIR is used to control the installation destination. Differential Revision: https://reviews.llvm.org/D41673 llvm-svn: 322256
* [InstCombine] Missed optimization in math expression: sin(x) / cos(x) => tan(x)Dmitry Venikov2018-01-116-15/+276
| | | | | | | | | | | | | | Summary: This patch enables folding sin(x) / cos(x) -> tan(x), cos(x) / sin(x) -> 1 / tan(x) under -ffast-math flag Reviewers: hfinkel, spatel Reviewed By: spatel Subscribers: andrew.w.kaylor, efriedma, scanon, llvm-commits Differential Revision: https://reviews.llvm.org/D41286 llvm-svn: 322255
* [X86] Optimize v2i32/v2f32 scatters.Craig Topper2018-01-113-55/+72
| | | | | | | | If the index is v2i64 we can use the scatter instruction that has v4i32/v4f32 data register, v2i64 index, and v2i1 mask. Similar was already done for gather. Implement custom widening for v2i32 data to remove the code that reverses type legalization during lowering. llvm-svn: 322254
* [Fuchsia] Remove LLDB from the toolchain distributionPetr Hosek2018-01-111-6/+0
| | | | | | | | This is currently not being used so disable it to reduce toolchain size. Differential Revision: https://reviews.llvm.org/D41929 llvm-svn: 322253
* [Fuchsia] Use llvm-objcopy as objcopy on non-Darwin hostsPetr Hosek2018-01-111-0/+1
| | | | | | | | llvm-objcopy already supports all the necessary functionality for ELF. Differential Revision: https://reviews.llvm.org/D41930 llvm-svn: 322252
* Advanced guessing of rendezvous breakpoint (resubmit)Eugene Zemtsov2018-01-114-82/+146
| | | | | | | | | | | | | When rendezvous structure is not initialized we need to set up rendezvous breakpoint anyway. In this case the code will locate dynamic loader (interpreter) and look for known function names. This is r322209, but with fixed VDSO loading fixed. Bug: https://bugs.llvm.org/show_bug.cgi?id=25806 Differential Revision: https://reviews.llvm.org/D41533 llvm-svn: 322251
* [DWARF][NFC] Overload AsmPrinter::emitDwarfStringOffsets() to take a ↵Wolfgang Pieb2018-01-113-4/+12
| | | | | | | | | | DwarfStringPoolEntry record. Differential Revision: https://reviews.llvm.org/D41920 llvm-svn: 322250
* [NFC] Commit to mention that r322248 is actually made by AndrewScheideckerMarcello Maggioni2018-01-111-1/+1
| | | | llvm-svn: 322249
* [SimplifyCFG] Add cut-off for InitializeUniqueCases.Marcello Maggioni2018-01-111-13/+25
| | | | | | | | | | | | | The function can take a significant amount of time on some complicated test cases, but for the currently only use of the function we can stop the initialization much earlier when we find out we are going to discard the result anyway in the caller of the function. Adding configurable cut-off points so that we avoid wasting time. NFCI. llvm-svn: 322248
* [X86][Sema] Range check the constant argument for the vpshld/vpshrd builtins ↵Craig Topper2018-01-112-0/+94
| | | | | | to ensure it fits in 8-bits. llvm-svn: 322247
* [X86] Fix vpshrd builtins to require an ICE for their constant argument to ↵Craig Topper2018-01-111-9/+9
| | | | | | match vpshld. llvm-svn: 322246
* [X86] Make -mavx512f imply -mfma and -mf16c in the frontend like it does in ↵Craig Topper2018-01-111-1/+5
| | | | | | | | | | the backend. Similarly, make -mno-fma and -mno-f16c imply -mno-avx512f. Withou this "-mno-sse -mavx512f" ends up with avx512f being enabled in the frontend but disabled in the backend. llvm-svn: 322245
* [X86][Sema] Remove constant range checks on on builtins that take a char.Craig Topper2018-01-111-37/+0
| | | | | | The constant is already reduced to 8-bits by the time we get here and the checks were just ensuring that it was 8 bits. Thus I don't think there's anyway for them to fail. llvm-svn: 322244
* Revert "Install resource files into a share/ directory"Petr Hosek2018-01-112-3/+3
| | | | | | This reverts commit r322234: this is breaking dfsan tests. llvm-svn: 322243
* Revert "[Driver] Update default sanitizer blacklist location"Petr Hosek2018-01-115-1/+1
| | | | | | This reverts commit r322233: this is breaking dfsan tests. llvm-svn: 322242
* SmallVector: fix use-after-poison MSAN error in destructorMatt Morehouse2018-01-101-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Addresses issue: https://bugs.llvm.org/show_bug.cgi?id=34595 The topmost class, `SmallVector`, has internal storage for some elements; `N - 1` elements' bytes worth of space. Meanwhile a base class `SmallVectorTemplateCommon` has room for one element as well, totaling `N` elements' worth of space. The space for the N elements is contiguous and straddles `SmallVectorTemplateCommon` and `SmallVector`. A class "between" those two owning the storage, `SmallVectorImpl`, in its destructor, calls the destructor for elements contained in the vector, if any. It uses `destroy_range(begin, end)` and deletes all items in sequence, starting from the end. By the time the destructor for `SmallVectorImpl` is running, though, the memory for elements `[1, N)` is already poisoned, due to `SmallVector`'s destructor having done its thing already. So if the element type `T` has a nontrivial destructor that accesses any members of the `T` instance being destroyed, we'll run into a user-after-poison bug. This patch moves the destruction loop into `SmallVector`'s destructor, so any memory being accessed while dtors are running is not yet poisoned. Confirmed this broke before (and now works with this patch) with these compiler flags: -fsanitize=memory -fsanitize-memory-use-after-dtor -fsanitize-memory-track-origins and with the cmake flag `-DLLVM_USE_SANITIZER='MemoryWithOrigins;Undefined'` as well as `MSAN_OPTIONS=poison_in_dtor=1`. Patch By: elsteveogrande Reviewers: eugenis, morehouse, dblaikie Reviewed By: eugenis, dblaikie Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D41916 llvm-svn: 322241
* [Lex] Inline a variable in test in preparation for more similar tests. NFC.Volodymyr Sapsai2018-01-101-2/+1
| | | | llvm-svn: 322240
* Running this on other systems won't work because I don'tJim Ingham2018-01-101-0/+1
| | | | | | know how to specifically build a MachO binary on other systems. llvm-svn: 322239
* [AArch64] add tests for notted variants of min/max; NFCSanjay Patel2018-01-101-2/+1475
| | | | | | | | Like rL321668 / rL321672, the planned optimizer change to fix these will be in ValueTracking, but we can test the changes cleanly here with AArch64 codegen. llvm-svn: 322238
* Remove Environment.h, test-dwarf.cpp, test-dwarf.exeJason Molenda2018-01-101-10/+4
| | | | | | | | | | | from being listed as a part of the desktop or desktop/desktop_no_xpc Targets - they should not be a part of any target. Having them listed as a part of desktop target results in them being added to the Copy Files build phase for desktop and I'm guessing they'd end up in the manpage directory or something. llvm-svn: 322237
* In C++17, when instantiating an out-of-line definition of an inline static dataRichard Smith2018-01-103-1/+21
| | | | | | member, don't forget to instantiate the initializer too. llvm-svn: 322236
* Runs the part of the test that just finds the binary on all systems.Jim Ingham2018-01-101-13/+14
| | | | | | That should work everywhere. Then only try actually running on macosx. llvm-svn: 322235
* Reland "Install resource files into a share/ directory"Petr Hosek2018-01-102-3/+3
| | | | | | | | | | | Currently these files are being installed into a root installation directory, but this triggers an error when the installation directory is set to an empty string which is often the case when DESTDIR is used to control the installation destination. Differential Revision: https://reviews.llvm.org/D41673 llvm-svn: 322234
* Reland "[Driver] Update default sanitizer blacklist location"Petr Hosek2018-01-105-1/+1
| | | | | | | | | This is related to moving the sanitizer blacklists to share/ subdirectory. Differential Revision: https://reviews.llvm.org/D41706 llvm-svn: 322233
* Add a test for finding a binary in an app package.Jim Ingham2018-01-105-0/+117
| | | | llvm-svn: 322232
* Revert "AArch64: Fix emergency spillslot being out of reach for large ↵Matthias Braun2018-01-1010-75/+11
| | | | | | | | | | | | callframes" Revert for now as the testcase is hitting a pre-existing verifier error that manifest as a failure when expensive checks are enabled (or -verify-machineinstrs) is used. This reverts commit r322200. llvm-svn: 322231
* LiveRangeEdit: Inline markDeadRemat() into only user; NFCMatthias Braun2018-01-102-7/+1
| | | | | | | This function was only called from a single place in which we didn't even need the `if (DeadRemats)` check. llvm-svn: 322230
* Revert "Advanced guessing of rendezvous breakpoint"Eugene Zemtsov2018-01-104-140/+57
| | | | | | | This reverts commit r322209, because it broke TestNoreturnUnwind,TestInferiorAssert and TestNumThreads on i386. llvm-svn: 322229
* [libunwind] Set up .arcconfig to point to new Diffusion UNW repositoryPetr Hosek2018-01-101-1/+1
| | | | | | | | | See http://lists.llvm.org/pipermail/cfe-dev/2017-November/056032.html for related discussion and context. Differential Revision: https://reviews.llvm.org/D41918 llvm-svn: 322228
* [X86] Move HasNOPL to a subtarget feature bit. Plumb MCSubtargetInfo through ↵Craig Topper2018-01-104-57/+79
| | | | | | | | | | the MCAsmBackend constructor After D41349, we can no get a MCSubtargetInfo into the MCAsmBackend constructor. This allows us to get NOPL from a subtarget feature rather than a CPU name blacklist. Differential Revision: https://reviews.llvm.org/D41721 llvm-svn: 322227
* LiveRangeEdit: Simplify code; NFCMatthias Braun2018-01-102-16/+18
| | | | | | | | Simplify the code slightly: Instead of creating empty subranges in one case and immediately removing them, do not create them in the first place. llvm-svn: 322226
* [SLP] Add/update tests for SLP vectorizer, NFC.Alexey Bataev2018-01-103-35/+368
| | | | llvm-svn: 322225
* [RISCV] Implement support for the BranchRelaxation passAlex Bradbury2018-01-109-40/+243
| | | | | | | | | Branch relaxation is needed to support branch displacements that overflow the instruction's immediate field. Differential Revision: https://reviews.llvm.org/D40830 llvm-svn: 322224
* TargetLoweringBase: The ios simulator has no bzero function.Matthias Braun2018-01-102-6/+18
| | | | | | | | Make sure I really get back to the beahvior before my rewrite in r321035 which turned out not to be completely NFC as I changed the behavior for the ios simulator environment. llvm-svn: 322223
* [RISCV] Implement branch analysisAlex Bradbury2018-01-107-159/+422
| | | | | | | | | This is a prerequisite for the branch relaxation pass, and allows a number of optimisation passes (e.g. BranchFolding and MachineBlockPlacement) to work. Differential Revision: https://reviews.llvm.org/D40808 llvm-svn: 322222
* [MSan] Enable use-after-dtor instrumentation by default.Matt Morehouse2018-01-105-12/+19
| | | | | | | | | | | | | | | | | Summary: Enable the compile-time flag -fsanitize-memory-use-after-dtor by default. Note that the run-time option MSAN_OPTIONS=poison_in_dtor=1 still needs to be enabled for destructors to be poisoned. Reviewers: eugenis, vitalybuka, kcc Reviewed By: eugenis, vitalybuka Subscribers: cfe-commits, llvm-commits Differential Revision: https://reviews.llvm.org/D37860 llvm-svn: 322221
* [Driver] Test for correct '--version' suggestionBrian Gesiak2018-01-101-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The `llvm::OptTable::findNearest` bug fixed in https://reviews.llvm.org/D41873 manifested itself as the following erroneous message when invoking Clang: ``` clang -version clang-6.0: error: unknown argument '-version', did you mean 'version'? ``` Add a test to catch any future regressions to the now correct behavior, which asks "did you mean '--version'?". Test Plan: `check-clang` Reviewers: v.g.vassilev, teemperor, ruiu, jroelofs, yamaguchi Reviewed By: v.g.vassilev Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D41912 llvm-svn: 322220
* [WebAssembly] Optimize Writer::lookupTypeSam Clegg2018-01-101-2/+5
| | | | | | Followup on https://reviews.llvm.org/D41894 llvm-svn: 322219
* [RISCV] Add support for llvm.{frameaddress,returnaddress} intrinsicsAlex Bradbury2018-01-103-0/+158
| | | | llvm-svn: 322218
* [RISCV] Add basic support for inline asm constraintsAlex Bradbury2018-01-105-0/+179
| | | | llvm-svn: 322217
* [RISCV] Support stack frames and offsets up to 32-bitsAlex Bradbury2018-01-106-11/+117
| | | | | | Differential Revision: https://reviews.llvm.org/D40807 llvm-svn: 322216
* [RISCV] Support for varargsAlex Bradbury2018-01-105-24/+718
| | | | | | | | | | | | Includes support for expanding va_copy. Also adds support for using 'aligned' registers when necessary for vararg calls, and ensure the frame pointer always points to the bottom of the vararg spill region. This is necessary to ensure that the saved return address and stack pointer are always available at fixed known offsets of the frame pointer. Differential Revision: https://reviews.llvm.org/D40805 llvm-svn: 322215
* [hwasan] An option to disable tag randomization.Evgeniy Stepanov2018-01-103-7/+15
| | | | | | | | | | | | | | | | | | Summary: Avoid flaky test failures by by using a monotonic number sequence of heap tags. Does not affect stack tags: the way we generate those guarantees uniqueness for at least 30-something first allocas in any function, as well as the UAR tag. Reviewers: alekseyshl, kcc Subscribers: llvm-commits, kubamracek Differential Revision: https://reviews.llvm.org/D41882 llvm-svn: 322214
* Test commit accessScott Linder2018-01-101-2/+2
| | | | llvm-svn: 322213
* [WebAssembly] Move relocation handling InputChunks.cppSam Clegg2018-01-105-152/+157
| | | | | | | | | Teach each input chunk how to write itself and apply its own relocations. Differential Revision: https://reviews.llvm.org/D41891 llvm-svn: 322212
* [WebAssembly] Add seperate Writer::lookupType and Writer::registerType. NFCSam Clegg2018-01-101-9/+17
| | | | | | Differential Revision: https://reviews.llvm.org/D41894 llvm-svn: 322211
OpenPOWER on IntegriCloud