summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [WebAssembly] MC: Handle (ignore) MCSA_Protected symbol attributeSam Clegg2017-10-201-0/+1
| | | | llvm-svn: 316220
* Make x86 __ehhandler comdat if parent function isDave Lee2017-10-202-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This change comes from using lld for i686-windows-msvc. Before this change, lld emits an error of: error: relocation against symbol in discarded section: .xdata It's possible that this could be addressed in lld, but I think this change is reasonable on its own. At a high level, this is being generated: A (.text comdat) -> B (.text) -> C (.xdata comdat) Where A is a C++ inline function, which references B, an exception handler thunk, which references C, the exception handling info. With this structure, lld will error when applying relocations to B if the C it references has been discarded (some other C has been selected). This change checks if A is comdat, and if so places the exception registration thunk (B) in the comdata group of A (and B). It appears that MSVC makes the __ehhandler function comdat. Is it possible that duplicate thunks are being emitted into the final binary with other linkers, or are they stripping the unused thunks? Reviewers: rnk, majnemer, compnerd, smeenai Reviewed By: rnk, compnerd Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D38940 llvm-svn: 316219
* [Hexagon] Allow redefinition with immediates for hw loop conversionKrzysztof Parzyszek2017-10-203-7/+76
| | | | | | | | | | | Normally, if the registers holding the induction variable's bounds are redefined inside of the loop's body, the loop cannot be converted to a hardware loop. However, if the redefining instruction is actually loading an immediate value into the register, this conversion is both possible and legal (since the immediate itself will be used in the loop setup in the preheader). llvm-svn: 316218
* [X86] Check all CPU target names. Simon Pilgrim2017-10-201-0/+46
| | | | | | We ignore the 32-bit/64-bit triple but I've tried to use i686 triples for CPUs that don't support x86_64 llvm-svn: 316217
* X86 Tests: Add tests for vector permutes with variable indices. NFC.Zvi Rackover2017-10-203-0/+2584
| | | | | | Basic tests which are the equivalent of single-source shufflevector with variable mask. llvm-svn: 316216
* Revert "[mips] Reordering callseq* nodes to be linear"Aleksandar Beserminji2017-10-208-38/+36
| | | | | | | This reverts commit r314507, because the original patch is causing test failures. llvm-svn: 316215
* [ARM] Use post-RA MI scheduler when +use-misched is setEugene Leviant2017-10-202-1/+11
| | | | | | Differential revision: https://reviews.llvm.org/D39100 llvm-svn: 316214
* [X86][AVX512] Regenerate regcall tests.Simon Pilgrim2017-10-202-571/+1860
| | | | | | As part of tracking down machine verifier issues (PR27481) llvm-svn: 316213
* [clang-refactor] Add "-Inplace" option to the commandline tool.Haojian Wu2017-10-202-13/+21
| | | | | | | | | | | | | | | | | Summary: Change clang-refactor default behavior to print the new code after refactoring (instead of editing the source files), which would make it easier to use and debug the refactoring action. Reviewers: arphaman, ioeric Reviewed By: arphaman Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D39092 llvm-svn: 316212
* [CodeGen] Fix generation of TBAA info for array-to-pointer conversionsIvan A. Kosarev2017-10-202-2/+26
| | | | | | | | | | Resolves: Fatal error: Offset not zero at the point of scalar access. http://llvm.org/PR34992 Differential Revision: https://reviews.llvm.org/D39083 llvm-svn: 316211
* tsan: add tests missed in r316209Dmitry Vyukov2017-10-202-0/+66
| | | | llvm-svn: 316210
* [tsan] Add Mutex annotation flag for constant-initialized ↵Dmitry Vyukov2017-10-204-6/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | __tsan_mutex_linker_init behavior Add a new flag, _⁠_tsan_mutex_not_static, which has the opposite sense of _⁠_tsan_mutex_linker_init. When the new _⁠_tsan_mutex_not_static flag is passed to _⁠_tsan_mutex_destroy, tsan ignores the destruction unless the mutex was also created with the _⁠_tsan_mutex_not_static flag. This is useful for constructors that otherwise woud set _⁠_tsan_mutex_linker_init but cannot, because they are declared constexpr. Google has a custom mutex with two constructors, a "linker initialized" constructor that relies on zero-initialization and sets ⁠_⁠_tsan_mutex_linker_init, and a normal one which sets no tsan flags. The "linker initialized" constructor is morally constexpr, but we can't declare it constexpr because of the need to call into tsan as a side effect. With this new flag, the normal c'tor can set _⁠_tsan_mutex_not_static, the "linker initialized" constructor can rely on tsan's lazy initialization, and _⁠_tsan_mutex_destroy can still handle both cases correctly. Author: Greg Falcon (gfalcon) Reviewed in: https://reviews.llvm.org/D39095 llvm-svn: 316209
* [ValueTracking] Enabling ValueTracking patch by default Nikolai Bozhenov2017-10-202-10/+1
| | | | | | | | | | | | | | | | | (recommit #2 after checking for timeout issue). The original patch was an improvement to IR ValueTracking on non-negative integers. It has been checked in to trunk (D18777, r284022). But was disabled by default due to performance regressions. Perf impact has improved. The patch would be enabled by default. Reviewers: reames, hfinkel Differential Revision: https://reviews.llvm.org/D34101 Patch by: Olga Chupina <olga.chupina@intel.com> llvm-svn: 316208
* Add test case for LoopSink passMax Kazantsev2017-10-201-0/+64
| | | | | | | | | | | This test checks that load from constant memory will be sunk regardless of aliasing stores in the loop. Patch by Daniil Suchkov! Differential Revision: https://reviews.llvm.org/D39113 llvm-svn: 316207
* [AVR] Fix the select-mbb-placement-bug.llDylan McKay2017-10-201-3/+3
| | | | llvm-svn: 316205
* Basic: restore {,u}intptr_t on NetBSD/ARMSaleem Abdulrasool2017-10-202-9/+10
| | | | | | | | | NetBSD uses `long int` for `intptr_t` on ARM. This was changed in SVN r316046, referenced against other compilers. However, NetBSD's reference was incorrect as the current clang behaviour is more up-to-date. Restore the original behaviour for that target. llvm-svn: 316204
* [ExecutionEngine] Temporarily remove the ExecutionEngine tls tests.Lang Hames2017-10-202-20/+0
| | | | | | | Will re-enable once I figure out why the necessary runtime functions are missing on some bots. llvm-svn: 316203
* [ExecutionEngine] After a heroic dev-meeting hack session, the JIT supports TLS.Lang Hames2017-10-204-1/+27
| | | | | | Turns on EmulatedTLS support by default in EngineBuilder. ;) llvm-svn: 316200
* Disabling the transformation introduced in r315888Nemanja Ivanovic2017-10-202-3/+3
| | | | | | | The commit at https://reviews.llvm.org/rL315888 is causing some failures with internal testing. Disabling this code until we can resolve the issues. llvm-svn: 316199
* Revert r316193.Richard Smith2017-10-208-65/+3
| | | | | | | This patch breaks users using -fno-canonical-prefixes, for whom resolving symlinks is not acceptable. llvm-svn: 316195
* Try to shorten system header paths when using -MD depfilesPeter Wu2017-10-198-3/+65
| | | | | | | | | | | | | | | | | | | | | GCC tries to shorten system headers in depfiles using its real path (resolving components like ".." and following symlinks). Mimic this feature to ensure that the Ninja build tool detects the correct dependencies when a symlink changes directory levels, see https://github.com/ninja-build/ninja/issues/1330 An option to disable this feature is added in case "these changed header paths may conflict with some compilation environments", see https://gcc.gnu.org/ml/gcc-patches/2012-09/msg00287.html Note that the original feature request for GCC (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52974) also included paths preprocessed output (-E) and diagnostics. That is not implemented now since I am not sure if it breaks something else. Differential Revision: https://reviews.llvm.org/D37954 llvm-svn: 316193
* [XRay] [docs] Document how to generate flamegraphs from xray traces.Keith Wyss2017-10-192-7/+77
| | | | | | | | | | | | | | Summary: Updated the XRayExample docs with instructions for using the llvm-xray stacks command. Reviewers: dberris Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D39106 llvm-svn: 316192
* Fix an unsigned integer overflow in regex that lead to a bad memory access. ↵Marshall Clow2017-10-192-5/+12
| | | | | | Found by OSS-Fuzz llvm-svn: 316191
* [Transforms] Fix some Clang-tidy modernize and Include What You Use ↵Eugene Zelenko2017-10-193-302/+449
| | | | | | warnings; other minor fixes (NFC). llvm-svn: 316190
* [RISCV] Add missing hunk from r316188Alex Bradbury2017-10-191-1/+3
| | | | | | r316188 didn't set guessInstructionProperties=1 as it should have done. llvm-svn: 316189
* [RISCV] Initial codegen support for ALU operationsAlex Bradbury2017-10-1924-11/+1103
| | | | | | | | | | | | | This adds the minimum necessary to support codegen for simple ALU operations on RV32. Prolog and epilog insertion, support for memory operations etc etc follow in future patches. Leave guessInstructionProperties=1 until https://reviews.llvm.org/D37065 is reviewed and lands. Differential Revision: https://reviews.llvm.org/D29933 llvm-svn: 316188
* [Transforms] Fix some Clang-tidy modernize and Include What You Use ↵Eugene Zelenko2017-10-1910-127/+338
| | | | | | warnings; other minor fixes (NFC). llvm-svn: 316187
* These attributes are not supported by GCC and should not be in the gnu ↵Aaron Ballman2017-10-191-4/+4
| | | | | | namespace. Switching from the GCC spelling to the GNU spelling so that they are only supported with __attribute__(()). llvm-svn: 316186
* Add an svn project to contain the files that appear at the root of theJames Y Knight2017-10-191-0/+5
| | | | | | monorepo. llvm-svn: 316185
* These attributes are supported by GCC with the gnu vendor namespace for ↵Aaron Ballman2017-10-191-8/+8
| | | | | | C++11-style attributes. Enabling the gnu namespace by switching to the GCC spelling. llvm-svn: 316184
* [SelectionDAG] Add a check to getVectorShuffle to ensure that the only ↵Craig Topper2017-10-191-1/+2
| | | | | | negative index we allow is -1. llvm-svn: 316183
* [X86] Remove LowerEXTRACT_SUBVECTOR handler. All EXTRACT_SUBVECTORs are ↵Craig Topper2017-10-191-26/+0
| | | | | | marked as legal. llvm-svn: 316182
* AMDGPU: Parse r600 CPU name early and expose FMAF capabilityJan Vesely2017-10-192-1/+17
| | | | | | | Improve amdgcn macro test Differential Revision: https://reviews.llvm.org/D38667 llvm-svn: 316181
* [COFF] Avoid forward declaring StringSet, fix buildMartin Storsjo2017-10-192-5/+3
| | | | | | | | | | | | | | | | | This should fix the build after SVN r316178, which worked fine on GCC 5.4, but failed on clang with errors like these: MinGW.h:26:3: error: too few template arguments for class template 'StringSet' StringSet<> ExcludeSymbols; ^ lld/Common/LLVM.h:28:30: note: template is declared here template<typename T> class StringSet; Don't forward declare and add the using directive in the main lld/Common/LLVM.h header, but just qualify the class name in MinGW.h instead. llvm-svn: 316180
* [CGExprScalar] Add missing types in function GetIntrinsicGuozhi Wei2017-10-192-3/+35
| | | | | | | | In function GetIntrinsic, not all types are covered. Types double and long long are missed, type long is wrongly treated same as int, it should be same as long long. These problems cause compiler crashes when compiling code in PR31161. This patch fixed the problem. Differential Revision: https://reviews.llvm.org/D38820 llvm-svn: 316179
* [COFF] Move MinGW specific functions/classes to a separate file. NFC.Martin Storsjo2017-10-195-107/+161
| | | | | | Differential Revision: https://reviews.llvm.org/D39067 llvm-svn: 316178
* [Sema] Fix assertion failure when checking for unused variables in a ↵Benjamin Kramer2017-10-192-1/+11
| | | | | | dependent context. llvm-svn: 316177
* [X86][AES] Test AES intrinsics on 32/64-bit targets with/without VEX encodingSimon Pilgrim2017-10-191-56/+118
| | | | | | Don't just test on 32-bit llvm-svn: 316176
* The cost of splitting a large vector instruction is not being taken into ↵Graham Yiu2017-10-193-0/+87
| | | | | | | | | | account by the getUserCost function. This was leading to some loops being over unrolled. The cost of a vector instruction is now being multiplied by the cost of the type legalization. This will return a more accurate cost. Committing on behalf on Brad Nemanich (brad.nemanich@ibm.com) Differential Revision: https://reviews.llvm.org/D38961 llvm-svn: 316174
* Logging: Make sure logging machinery is in a consistent state after forkingPavel Labath2017-10-195-3/+27
| | | | | | | | | | | | | | | | | | | | | | | | Summary: We had a bug where if we had forked (in the ProcessLauncherPosixFork) while another thread was writing a log message, we would deadlock. This happened because the fork child inherited the locked log rwmutex, which would never get unlocked. This meant the child got stuck trying to disable all log channels. The bug existed for a while but only started being apparent after D37930, which started using ThreadLauncher (which uses logging) instead of std::thread (which does not) for launching TaskPool threads. The fix is to use pthread_atfork to make sure noone is writing a log message while we are forking. Reviewers: zturner, eugene, clayborg Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D38938 llvm-svn: 316173
* Fix UB - signed integer overflow in regex. Thanks to Tim Shen for the patch. ↵Marshall Clow2017-10-192-0/+42
| | | | | | Reviewed as https://reviews.llvm.org/D39066 llvm-svn: 316172
* AMDGPU/Docs: Fix unreadable charactersKonstantin Zhuravlyov2017-10-191-6/+6
| | | | llvm-svn: 316171
* [Hexagon] Fix store conversion from rr to io in optimize addressing modesKrzysztof Parzyszek2017-10-192-6/+27
| | | | llvm-svn: 316170
* ExecutionEngine: adjust COFF i386 tautological assertsSaleem Abdulrasool2017-10-192-19/+9
| | | | | | | | | Modify static_casts to not be tautological in some COFF i386 relocations. Patch by Alex Langford! llvm-svn: 316169
* [RISCV] RISCVAsmParser: early exit if RISCVOperand isn't immediate as expectedAlex Bradbury2017-10-192-0/+13
| | | | | | | This is necessary to avoid an assertion in the included test case and similar assembler inputs. llvm-svn: 316168
* [RISCV][NFC] Drop unused parameter from createImm helper in RISCVAsmParserAlex Bradbury2017-10-191-4/+3
| | | | llvm-svn: 316167
* Fix nodiscard for volatile referencesErich Keane2017-10-192-1/+14
| | | | | | | | | | As reported here https://bugs.llvm.org/show_bug.cgi?id=34988 [[nodiscard]] warnings were not being suppressed for volatile-ref return values. Differential Revision: https://reviews.llvm.org/D39075 llvm-svn: 316166
* [AMDGPU] Fix bug in enqueued block codegen due to an extra lineYaxun Liu2017-10-192-1/+9
| | | | llvm-svn: 316165
* Revert r315992 because of a found miscompilation failureNikolai Bozhenov2017-10-192-43/+22
| | | | llvm-svn: 316164
* [ELF] - Simplify. NFC.George Rimar2017-10-191-3/+1
| | | | llvm-svn: 316163
OpenPOWER on IntegriCloud