summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [ORC] Update the GlobalMappingLayer interface to fit the error-ized layerLang Hames2017-09-284-78/+72
| | | | | | | | | concept. Add a unit-test to make sure we don't backslide, and tweak the MockBaseLayer utility to make it easier to test this kind of thing in the future. llvm-svn: 314374
* [NFC] Don't use C++17 standard lib variable template helper traits, instead ↵Faisal Vali2017-09-281-2/+2
| | | | | | use ::value. llvm-svn: 314373
* [NFC] Modernize MacroArgs using TrailingObjectsFaisal Vali2017-09-282-11/+20
| | | | | | Refactor MacroArgs to use TrailingObjects when creating a variably sized object on the heap to store the unexpanded tokens immediately after the MacroArgs object. llvm-svn: 314372
* Revert patch r313904, as it breaks "command source" and in Jim Ingham2017-09-288-121/+22
| | | | | | | | | | | | particular causes lldb to die on startup if you have a ~/.lldbinit file. I filed: https://bugs.llvm.org/show_bug.cgi?id=34758 to cover fixing the bug. llvm-svn: 314371
* Look through parentheses.Akira Hatanaka2017-09-282-1/+8
| | | | | | | | | This fixes a bug where clang would emit instructions to reclaim a value that's going to be __bridge-casted to CF. rdar://problem/34687542 llvm-svn: 314370
* [ubsan] Merge ubsan_standalone_cxx shared library.Evgeniy Stepanov2017-09-281-12/+1
| | | | | | | | | | | | | | Summary: Link everything, including the C++ bits, in the single ubsan_standalone SHARED library. This matches ASan setup. Reviewers: vitalybuka Subscribers: kubamracek, llvm-commits, mgorny Differential Revision: https://reviews.llvm.org/D38340 llvm-svn: 314369
* Fix a UBsan bot.Rui Ueyama2017-09-281-0/+1
| | | | | | | | | If we do not initialize Prefix here, Prefix.data() returns a nullptr. Later, it is passed to memcpy. memcpy's behavior is undefined if src (or dst) is a nullptr even if a given size is 0. That's why this code triggered UBsan. llvm-svn: 314368
* [Targets/X86] Remove unneded `return` in setMaxAtomicWidth(). NFCI.Davide Italiano2017-09-281-1/+0
| | | | llvm-svn: 314367
* Change build-llvm.py and build-lldb-llvm-clang's patching mechanisms toJason Molenda2017-09-272-3/+3
| | | | | | | | assume git-style diffs. Committing for Francis Ricci. Differential Revision: https://reviews.llvm.org/D38328 llvm-svn: 314366
* ASan allocates a global data initialization array at the tail end of eachDmitry Mikulin2017-09-273-0/+22
| | | | | | | | | | | | | | | | compunit's .data section. This vector is not poisoned. Because of this the first symbol of the following section has no left red zone. As a result, ASan cannot detect underflow for such symbols. Poison ASan allocated metadata, it should not be accessible to user code. This fix does not eliminate the problem with missing left red zones but it reduces the set of vulnerable symbols from first symbols in each input data section to first symbols in the output section of the binary. Differential Revision: https://reviews.llvm.org/D38056 llvm-svn: 314365
* [Preprocessor] Preserve #pragma clang assume_nonnull in preprocessed outputEli Friedman2017-09-274-0/+57
| | | | | | | | Patch by Zbigniew Sarbinowski! Differential Revision: https://reviews.llvm.org/D37861 llvm-svn: 314364
* [CodeGen] Fix some Clang-tidy modernize-use-default-member-init and Include ↵Eugene Zelenko2017-09-277-208/+284
| | | | | | What You Use warnings; other minor fixes (NFC). llvm-svn: 314363
* Check for overflows when calculating the offset in GetGEPCost.Justin Lebar2017-09-272-6/+21
| | | | | | | | | | | | | | | | | Summary: This avoids C++ UB if the GEP is weird and the calculation overflows int64_t, and it's also observable in the cost model's results. Such GEPs are almost surely not valid pointers, but LLVM nonetheless generates them sometimes. Reviewers: sanjoy Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D38337 llvm-svn: 314362
* Reverted r313993.Galina Kistanova2017-09-272-101/+0
| | | | | | This patch produces a crash and hexagon_vector_loop_carried_reuse_constant.ll test fails on Windows (llvm-clang-x86_64-expensive-checks-win build bot). llvm-svn: 314361
* Revert r314017 '[InstCombine] Simplify check for RHS being a splat constant ↵Craig Topper2017-09-271-16/+22
| | | | | | | | in foldICmpUsingKnownBits by just checking Op1Min==Op1Max rather than going through m_APInt.' This reverts r314017 and similar code added in later commits. It seems to not work for pointer compares and is causing a bot failure for the last several days. llvm-svn: 314360
* Update the description of AVR32 for the ELFDumperDylan McKay2017-09-271-1/+1
| | | | | | AVR32 is an unrelated architecture with 32-bit addressing. llvm-svn: 314359
* Add support for running the lldb testsuite against an apple watchJason Molenda2017-09-279-9/+16
| | | | | | | | running watchos. These tests cannot run on normal customer devices, but I hope to some day have a public facing bot running against a device. llvm-svn: 314355
* [AVR] Update data layout to match current LLVM trunkDylan McKay2017-09-271-2/+1
| | | | | | The data layout was changed in r314179 to fix atomic loads and stores. llvm-svn: 314354
* Fix -Wunused-variable for Release build.Rui Ueyama2017-09-271-1/+1
| | | | llvm-svn: 314353
* Return the LoopUnrollResult from tryToUnrollLoop; NFCSanjoy Das2017-09-271-31/+22
| | | | | | I will use this in a later change. llvm-svn: 314352
* LoopDeletion: use return value instead of passing in LPMUpdater; NFCSanjoy Das2017-09-271-19/+28
| | | | | | I will use this refactoring in a later patch. llvm-svn: 314351
* Rename LoopUnrollStatus to LoopUnrollResult; NFCSanjoy Das2017-09-273-16/+16
| | | | | | A "Result" suffix is more appropriate here llvm-svn: 314350
* Fix off-by-one error in TarWriter.Rui Ueyama2017-09-272-45/+85
| | | | | | | | | | | | | | | | | | | | | | | | The tar format originally supported up to 99 byte filename. The two extensions are proposed later: Ustar or PAX. In the UStar extension, a pathanme is split at a '/' and its "prefix" and "suffix" are stored in different locations in the tar header. Since "prefix" can be up to 155 byte, it can represent up to 254 byte filename (but exact limit depends on the location of '/' character in a pathname.) Our TarWriter first attempt to use UStar extension and then fallback to PAX extension. But there's a bug in UStar header creation. "Suffix" part must be a NUL- terminated string, but we didn't handle it correctly. As a result, if your filename just 100 characters long, the last character was droppped. This patch fixes the issue. Differential Revision: https://reviews.llvm.org/D38149 llvm-svn: 314349
* [CMake] Fix typo: "in-tree" -> "in-source" (NFC)Brian Gesiak2017-09-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: *In-source builds* of LLVM, in which a user invokes `cmake` from within the LLVM source directory, or invokes `cmake -B/path/to/source/dir/of/llvm`, are explicitly checked for and disallowed by LLVM's `CMakeLists.txt`. *In-tree builds*, on the other hand, refer to when the source directories of projects such as Clang are nested within the `llvm/tools` source directory. These are not disallowed, and are in fact a common way of building LLVM and Clang. Revise the comment to match the logic underneath it: it checks for an "in-source build", not an "in-tree build". Reviewers: beanz Reviewed By: beanz Subscribers: mgorny Differential Revision: https://reviews.llvm.org/D38317 llvm-svn: 314348
* Revert "Add support for custom loaders to symbolizer"Francis Ricci2017-09-279-78/+33
| | | | | | | | This broke the windows buildbots, revert for now. This reverts commit 24050b5ddef42f6f3306aa94d4a1f42a7893a9a7. llvm-svn: 314347
* Cleanup some problems with LLVM_ENABLE_DUMP in release builds, andDon Hinton2017-09-2710-15/+15
| | | | | | | | always set LLVM_ENABLE_DUMP=ON for +Asserts builds. Differential Revision: https://reviews.llvm.org/D38306 llvm-svn: 314346
* Do not remove a target file in FileOutputBuffer::create().Rui Ueyama2017-09-271-8/+1
| | | | | | | | | | | | | | | | | | FileOutputBuffer::create() attempts to remove a target file if the file is a regular one, which results in an unexpected result in a failure scenario. If something goes wrong and the user of FileOutputBuffer decides to not call commit(), it leaves nothing. An existing file is removed, and no new file is created. What we should do is to atomically replace an existing file with a new file using rename(), so that it wouldn't remove an existing file without creating a new one. Differential Revision: https://reviews.llvm.org/D38283 llvm-svn: 314345
* [scudo] Temporary disabling the valloc test on armhfKostya Kortchinsky2017-09-271-1/+1
| | | | | | | | | | | | | | | | | | | | | Summary: Weird failure where `errno != ENOMEM` on valloc failure. The returned pointer is null since it passes the previous assert, so this shouldn't happen. http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15-full/builds/10931 http://lab.llvm.org:8011/builders/clang-cmake-thumbv7-a15-full-sh/builds/2469 Disabling until we figure out what's going on. Reviewers: alekseyshl Reviewed By: alekseyshl Subscribers: aemerson, srhines, llvm-commits, kristof.beyls Differential Revision: https://reviews.llvm.org/D38324 llvm-svn: 314344
* Update the Objective-C runtime interface code to handle objc objectsJason Molenda2017-09-274-12/+180
| | | | | | | | whose isa is an index instead of a pointer. Currently, this type of isa encoding is only used on watchos. <rdar://problem/34675497> llvm-svn: 314343
* Add support for custom loaders to symbolizerFrancis Ricci2017-09-279-33/+78
| | | | | Change-Id: I5594bd6b216deca2c73cf0a7001f9aec1e803c60 llvm-svn: 314342
* [MachineOutliner] AArch64: Avoid saving + restoring LR if possibleJessica Paquette2017-09-279-226/+391
| | | | | | | | | | | | | | | | This commit allows the outliner to avoid saving and restoring the link register on AArch64 when it is dead within an entire class of candidates. This introduces changes to the way the outliner interfaces with the target. For example, the target now interfaces with the outliner using a MachineOutlinerInfo struct rather than by using getOutliningCallOverhead and getOutliningFrameOverhead. This also improves several comments on the outliner's cost model. https://reviews.llvm.org/D36721 llvm-svn: 314341
* Remove unnecessary semicolonsJonathan Peyton2017-09-2727-509/+498
| | | | | | | | Removes semicolons after if {} blocks, function definitions, etc. I was able to apply the large OMPT patch cleanly on top of this one with no conflicts. llvm-svn: 314340
* Revert r314249 "Recommit r314151 "[X86] Make all the NOREX CodeGenOnly ↵Craig Topper2017-09-2712-70/+60
| | | | | | | | instructions into postRA pseudos like the NOREX version of TEST.""" This caused PR34751 llvm-svn: 314339
* Revert r314248 "[X86] Don't emit X86::MOV8rr_NOREX from ↵Craig Topper2017-09-271-5/+7
| | | | | | | | X86InstrInfo::copyPhysReg." This contributed to PR34751 llvm-svn: 314338
* [X86][SSE] Pull out variable shuffle mask combine logic. NFCI.Simon Pilgrim2017-09-271-10/+13
| | | | | | Hopefully this will make it easier to vary the combine depth threshold per-target. llvm-svn: 314337
* Add support for remembering origins to ExternalASTMergerSean Callanan2017-09-2722-166/+628
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ExternalASTMerger has hitherto relied on being able to look up any Decl through its named DeclContext chain. This works for many cases, but causes problems for function-local structs, which cannot be looked up in their containing FunctionDecl. An example case is void f() { { struct S { int a; }; } { struct S { bool b; }; } } It is not possible to lookup either of the two Ses individually (or even to provide enough information to disambiguate) after parsing is over; and there is typically no need to, since they are invisible to the outside world. However, ExternalASTMerger needs to be able to complete either S on demand. This led to an XFAIL on test/Import/local-struct, which this patch removes. The way the patch works is: It defines a new data structure, ExternalASTMerger::OriginMap, which clients are expected to maintain (default-constructing if the origin does not have an ExternalASTMerger servicing it) As DeclContexts are imported, if they cannot be looked up by name they are placed in the OriginMap. This allows ExternalASTMerger to complete them later if necessary. As DeclContexts are imported from an origin that already has its own OriginMap, the origins are forwarded – but only for those DeclContexts that are actually used. This keeps the amount of stored data minimal. The patch also applies several improvements from review: - Thoroughly documents the interface to ExternalASTMerger; - Adds optional logging to help track what's going on; and - Cleans up a bunch of braces and dangling elses. Differential Revision: https://reviews.llvm.org/D38208 llvm-svn: 314336
* [CodeGen] Emit necessary .note sections for -fsplit-stackThan McIntosh2017-09-275-1/+61
| | | | | | | | | | | | | | | | | | | | | Summary: According to https://gcc.gnu.org/wiki/SplitStacks, the linker expects a zero-sized .note.GNU-split-stack section if split-stack is used (and also .note.GNU-no-split-stack section if it also contains non-split-stack functions), so it can handle the cases where a split-stack function calls non-split-stack function. This change adds the sections if needed. Fixes PR #34670. Reviewers: thanm, rnk, luqmana Reviewed By: rnk Subscribers: llvm-commits Patch by Cherry Zhang <cherryyz@google.com> Differential Revision: https://reviews.llvm.org/D38051 llvm-svn: 314335
* [CUDA] Work around conflicting function definitions in CUDA-9 headers.Artem Belevich2017-09-271-0/+11
| | | | | | Differential Revision: https://reviews.llvm.org/D38326 llvm-svn: 314334
* [builtins] ARM: Revert r314284, r314285 and r314289Manoj Gupta2017-09-273-9/+4
| | | | | | | Revert r314284, r314285 and r314289 because of a reported breakage in armv7k watchos builder. llvm-svn: 314333
* [X86] Rewrite the zero vector checks in lowerV2X128VectorShuffle to use the ↵Craig Topper2017-09-271-23/+10
| | | | | | | | | | Zeroable APInt We already have zeroable bits in an APInt. We might as well use that instead of checking for an all zero BUILD_VECTOR. Differential Revision: https://reviews.llvm.org/D37950 llvm-svn: 314332
* [X86] In combineLoopSADPattern, pad result with zeros and use full size add ↵Craig Topper2017-09-272-20/+17
| | | | | | | | | | | | | | instead of using a smaller add and inserting. In some cases the result psadbw is smaller than the type of the add that started the match. Currently in these cases we are using a smaller add and inserting the result. If we instead combine the psadbw with zeros and use the full size add we can take advantage of implicit zeroing we get if we emit a narrower move before the add. In a future patch, I want to make isel aware that the psadbw itself already zeroed the upper bits and remove the move entirely. Differential Revision: https://reviews.llvm.org/D37453 llvm-svn: 314331
* [OpenMP] Fix translation of target argsJonas Hahnfeld2017-09-271-4/+6
| | | | | | | | | | ToolChain::TranslateArgs() returns nullptr if no changes are performed. This would currently mean that OpenMPArgs are lost. Patch fixes this by falling back to simply using OpenMPArgs in that case. Differential Revision: https://reviews.llvm.org/D38259 llvm-svn: 314330
* [OpenMP] Fix passing of -m arguments to device toolchainJonas Hahnfeld2017-09-273-38/+57
| | | | | | | | | | | AuxTriple is not set if host and device share a toolchain. Also, removing an argument modifies the DAL which needs to be returned for future use. (Move tests back to offload-openmp.c as they are not related to GPUs.) Differential Revision: https://reviews.llvm.org/D38258 llvm-svn: 314329
* [OpenMP] Fix memory leak when translating argumentsJonas Hahnfeld2017-09-274-11/+17
| | | | | | | | | | Parsing the argument after -Xopenmp-target allocates memory that needs to be freed. Associate it with the final DerivedArgList after we know which one will be used. Differential Revision: https://reviews.llvm.org/D38257 llvm-svn: 314328
* clang-format/java: Unbreak genenrics formatting after r299952.Nico Weber2017-09-273-6/+7
| | | | | | | | | | | | | | https://reviews.llvm.org/rL299952 merged '>>>' tokens into a single JavaRightLogicalShift token. This broke formatting of generics nested more than two deep, e.g. Foo<Bar<Baz>>> because the '>>>' now weren't three '>' for parseAngle(). Luckily, just deleting JavaRightLogicalShift fixes things without breaking the test added in r299952, so do that. https://reviews.llvm.org/D38291 llvm-svn: 314325
* [SLP] Fix crash on propagate IR flags for undef operands of min/maxAlexey Bataev2017-09-272-3/+92
| | | | | | | | | | | reductions. If both operands of the newly created SelectInst are Undefs the resulting operation is also Undef, not SelectInst. It may cause crashes when trying to propagate IR flags because function expects exactly SelectInst instruction, nothing else. llvm-svn: 314323
* [ARM] builtins: Replace abort by assert in clear_cache.Manoj Gupta2017-09-271-3/+2
| | | | | | | | | | | | | | | | | | | | Summary: __builtion___clear_cache maps to clear_cache function. On Linux, clear_cache functions makes a syscall and does an abort if syscall fails. Replace the abort by an assert so that non-debug builds do not abort if the syscall fails. Fixes PR34588. Reviewers: rengolin, compnerd, srhines, peter.smith, joerg Reviewed By: rengolin Subscribers: aemerson, kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D37788 llvm-svn: 314322
* [support] mapped_file_region: and fix the windows code tooRoman Lebedev2017-09-271-2/+2
| | | | | | | Followup for r314312 / r314313 Sorry, i really failed to fully grep all the codebase :/ llvm-svn: 314321
* [InstCombine] Gating select arithmetic optimization.Chad Rosier2017-09-272-4/+49
| | | | | | | | | | | | These changes faciliate positive behavior for arithmetic based select expressions that match its translation criteria, keeping code size gated to neutral or improved scenarios. Patch by Michael Berg <michael_c_berg@apple.com>! Differential Revision: https://reviews.llvm.org/D38263 llvm-svn: 314320
* [AArch64][Falkor] Ignore SP based loads in HW prefetch fixups.Geoff Berry2017-09-272-1/+29
| | | | | | | | | | Reviewers: mcrosier Subscribers: aemerson, rengolin, javed.absar, kristof.beyls Differential Revision: https://reviews.llvm.org/D38301 llvm-svn: 314319
OpenPOWER on IntegriCloud