summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [CMake] Fix generation of exported targets in build directoryPhilip Pfaffe2018-11-061-2/+2
| | | | | | | | | | | | | | | | | | | | CMake generates the exports file wrongly if the CMAKE_BUILD_TYPE is unset for multi-configuration generators. The generated file lib/cmake/polly/PollyExports-all.cmake then contains: set_target_properties(LLVMPolly PROPERTIES IMPORTED_LOCATION_ my_build_dir/lib/LLVMPolly.so) set_target_properties(Polly PROPERTIES IMPORTED_LOCATION_ my_build_dir/lib/libPolly.a) This patch conditionalizes the underscore. Patch by: Marcin Copik Differential Revision: D53376 llvm-svn: 346231
* [mips] Support sigrie instructionSimon Atanasyan2018-11-069-1/+59
| | | | | | | | | The `sigrie` instruction signals a Reserved Instruction Exception. This patch adds support for assembling / disassembling the instruction. Differential Revision: http://reviews.llvm.org/D53861 llvm-svn: 346230
* Adapt UBSan integer truncation tests to NetBSDKamil Rytarowski2018-11-0610-198/+198
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The NetBSD headers use internal indirect type for standard *int*_t definitions. The internal type is unrolled inside the sanitizer into e.g. __int32_t from int32_t. This symbol mangling causes pattern mismatch in the interger truncation tests as they expect exact types such as 'int32_t'. Change the pattern rules so every acceptable internal form of *int*_t will be accepted flawlessly. Reviewers: lebedev.ri, vitalybuka, joerg Reviewed By: lebedev.ri Subscribers: kubamracek, dmgreen, llvm-commits, mgorny, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D54150 llvm-svn: 346228
* [llvm-exegesis] Ignore X86 pseudo instructions.Clement Courbet2018-11-061-0/+3
| | | | | | | | | | | | Summary: They do not lower to actual MCInsts and have no scheduling info. Reviewers: gchatelet Subscribers: llvm-commits, tschuett Differential Revision: https://reviews.llvm.org/D54147 llvm-svn: 346227
* [X86][NFC] Fix comment.Clement Courbet2018-11-061-4/+4
| | | | llvm-svn: 346226
* [InstCombine] Ensure nested shifts are in range (OSS-Fuzz #9880)Simon Pilgrim2018-11-062-5/+25
| | | | llvm-svn: 346225
* [clangd] Deduplicate query scopes.Eric Liu2018-11-062-8/+23
| | | | | | | | | | | | | | Summary: For example, when anonymous namespace is present, duplicated namespaces might be generated for the enclosing namespace. Reviewers: ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D54105 llvm-svn: 346224
* [clangd] Get rid of QueryScopes.empty() == AnyScope special case.Eric Liu2018-11-067-7/+17
| | | | | | | | | | | | Reviewers: sammccall Reviewed By: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D53933 llvm-svn: 346223
* Prioritize the constructor call of __local_xray_dyninit()Kamil Rytarowski2018-11-061-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: For platforms without preinit support (such as NetBSD/amd64) the initialization routine __xray_init() was called in non-deterministic order compared to other constructors. This caused breakage failures as xray routines attempted to execute code with assumption of being initialized, which was no always true. Use GCC/Clang extension to set maximal priority to the constructor calling __xray_init(). This code switches away from C++ lambda form, as it did not allow to specify this compiler extension. Reviewers: dberris, joerg Reviewed By: dberris Subscribers: llvm-commits, mgorny, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D54136 llvm-svn: 346222
* [clangd] auto-index stores symbols per-file instead of per-TU.Eric Liu2018-11-0612-67/+363
| | | | | | | | | | | | | | | | | Summary: This allows us to deduplicate header symbols across TUs. File digests are collects when collecting symbols/refs. And the index store deduplicates file symbols based on the file digest. Reviewers: sammccall, hokein Reviewed By: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D53433 llvm-svn: 346221
* Add parens to silence warningBenjamin Kramer2018-11-061-1/+1
| | | | | | MSVCUndecoratedNameParser.cpp:25:36: warning: '&&' within '||' [-Wlogical-op-parentheses] llvm-svn: 346220
* [clang-tidy] run() doesn't update the SourceManager.Sam McCall2018-11-061-1/+3
| | | | | | | | | | | | | | | | | | | | Summary: By now the context's SourceManager is now initialized everywhere that ClangTidyCheck::registerMatcher() is called, so the call from run() seems entirely redundant, and indeed all the tests pass. This solves a problem with embedding clang-tidy: if using a DiagnosticsEngine which already has file state, re-setting its SourceManager (to the same value) causes an assertion. (There are other ways to solve this problem, but this is the simplest). Reviewers: hokein, alexfh Subscribers: xazax.hun, cfe-commits Differential Revision: https://reviews.llvm.org/D54061 llvm-svn: 346219
* [Support] Fix `warning: unknown pragma ignored` for mingw targetMartin Storsjo2018-11-061-0/+4
| | | | | | Differential Revision: https://reviews.llvm.org/D54133 llvm-svn: 346218
* [NFC] Turn collectTransitivePredecessors into a static functionMax Kazantsev2018-11-062-9/+5
| | | | llvm-svn: 346217
* T was unused on assertion disabled builds.Kadir Cetinkaya2018-11-061-5/+6
| | | | llvm-svn: 346216
* [sanitizer] Use AT_EXECFN in ReExec() if availableBenjamin Kramer2018-11-062-0/+27
| | | | | | | | | | execve("/proc/self/exe") will not work if the binary relies on $EXEC_ORIGIN in an rpath. Query AT_EXECFN instead, which will give the same string that the current binary was exec'd with. Differential Revision: https://reviews.llvm.org/D54113 llvm-svn: 346215
* [XRay] Update XRayRecord to support Custom/Typed EventsDean Michael Berris2018-11-0630-138/+214
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: This change cuts across LLVM and compiler-rt to add support for rendering custom events in the XRayRecord type, to allow for including user-provided annotations in the output YAML (as raw bytes). This work enables us to add custom event and typed event records into the `llvm::xray::Trace` type for user-provided events. This can then be programmatically handled through the C++ API and can be included in some of the tooling as well. For now we support printing the raw data we encounter in the custom events in the converted output. Future work will allow us to start interpreting these custom and typed events through a yet-to-be-defined API for extending the trace analysis library. Reviewers: mboerger Subscribers: hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D54139 llvm-svn: 346214
* [PDB] Introduce `MSVCUndecoratedNameParser`Aleksandr Urakov2018-11-0611-123/+333
| | | | | | | | | | | | This patch introduces the simple MSVCUndecoratedNameParser. It is needed for parsing names of PDB symbols corresponding to template instantiations. For example, for the name `operator<<A>'::`2'::B::operator> we can't just split the name with :: (as it is implemented for now) to retrieve its scopes. This parser processes such names in a more correct way. Differential Revision: https://reviews.llvm.org/D52461 llvm-svn: 346213
* Cast to uint64_t instead of to unsigned.Akira Hatanaka2018-11-061-1/+1
| | | | | | This is a follow-up to r346211. llvm-svn: 346212
* os_log: Allow specifying mask type in format string.Akira Hatanaka2018-11-069-9/+73
| | | | | | | | | | A mask type is a 1 to 8-byte string that follows the "mask." annotation in the format string. This enables obfuscating data in the event the provided privacy level isn't enabled. rdar://problem/36756282 llvm-svn: 346211
* os_log: Add a new privacy annotation "sensitive".Akira Hatanaka2018-11-065-6/+33
| | | | | | | | | | This is a stricter privacy annotation than "private", which will be used for data that shouldn’t be logged to disk. For backward compatibility, the "private" bit is set too. rdar://problem/36755912 llvm-svn: 346210
* os_log: Minor code cleanups. NFC.Akira Hatanaka2018-11-064-18/+13
| | | | | | Also, add a new test case and fix an incorrect comment. llvm-svn: 346209
* [COFF, ARM64] Implement InterlockedDecrement*_* builtinsMandeep Singh Grang2018-11-065-46/+159
| | | | | | | This is eight in a series of patches to move intrinsic definitions out of intrin.h. Differential: https://reviews.llvm.org/D54068 llvm-svn: 346208
* [COFF, ARM64] Implement InterlockedIncrement*_* builtinsMandeep Singh Grang2018-11-065-45/+158
| | | | | | | This is seventh in a series of patches to move intrinsic definitions out of intrin.h. Differential: https://reviews.llvm.org/D54067 llvm-svn: 346207
* [COFF, ARM64] Implement InterlockedAnd*_* builtinsMandeep Singh Grang2018-11-065-48/+176
| | | | | | | This is sixth in a series of patches to move intrinsic definitions out of intrin.h. Differential: https://reviews.llvm.org/D54066 llvm-svn: 346206
* [COFF, ARM64] Implement InterlockedXor*_* builtinsMandeep Singh Grang2018-11-065-48/+176
| | | | | | | | | This is fifth in a series of patches to move intrinsic definitions out of intrin.h. Note: This was reviewed and approved in D54065 but somehow that diff was messed up. Committing this again with the proper diff. llvm-svn: 346205
* [LICM] Remove too conservative IsMustExecute variableMax Kazantsev2018-11-061-15/+8
| | | | | | | | | | | | | | | | | | LICM relies on variable `MustExecute` which is conservatively set to `false` in all non-headers. It is used when we decide whether or not we want to hoist an instruction or a guard. For the guards, it might be too conservative to use this variable, we can instead use a more precise logic from LoopSafetyInfo. Currently it is only NFC because `IsMemoryNotModified` is also conservatively set to `false` for all non-headers, and we cannot hoist guards from non-header blocks. However once we give up using `IsMemoryNotModified` and use a smarter check instead, this will allow us to hoist guards from all mustexecute non-header blocks. Differential Revision: https://reviews.llvm.org/D50888 Reveiwed By: fedor.sergeev llvm-svn: 346204
* AArch64: Cleanup CCMP code; NFCMatthias Braun2018-11-061-29/+30
| | | | | | | | | | Cleanup CCMP pattern matching code in preparation for review/bugfix: - Rename `isConjunctionDisjunctionTree()` to `canEmitConjunction()` (it won't accept arbitrary disjunctions and is really about whether we can transform the subtree into a conjunction that we can emit). - Rename `emitConjunctionDisjunctionTree()` to `emitConjunction()` llvm-svn: 346203
* It's a test commit, which is my first commit and also add my name to CREDITS.TXTZi Xuan Wu2018-11-061-0/+4
| | | | llvm-svn: 346202
* [LICM] Use ICFLoopSafetyInfo in LICMMax Kazantsev2018-11-067-29/+236
| | | | | | | | | | | | | | | This patch makes LICM use `ICFLoopSafetyInfo` that is a smarter version of LoopSafetyInfo that leverages power of Implicit Control Flow Tracking to keep track of throwing instructions and give less pessimistic answers to queries related to throws. The ICFLoopSafetyInfo itself has been introduced in rL344601. This patch enables it in LICM only. Differential Revision: https://reviews.llvm.org/D50377 Reviewed By: apilipenko llvm-svn: 346201
* [CodeGenCXX] XFAIL test for ASAN on Darwin.Volodymyr Sapsai2018-11-061-0/+4
| | | | | | | | | | | | | | | | | | The test hits stack overflow trying to instantiate recursive templates. It is observed with ASAN and not with a regular build because ASAN increases stack frame size. rdar://problem/45009892 Reviewers: george.karpenkov, lebedev.ri Reviewed By: george.karpenkov Subscribers: dexonsmith, rjmccall, cfe-commits Differential Revision: https://reviews.llvm.org/D54132 llvm-svn: 346200
* [NFC] Add motivating test case for revert in rL346198Max Kazantsev2018-11-061-0/+35
| | | | llvm-svn: 346199
* Revert "[IndVars] Smart hard uses detection"Max Kazantsev2018-11-064-118/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 2f425e9c7946b9d74e64ebbfa33c1caa36914402. It seems that the check that we still should do the transform if we know the result is constant is missing in this code. So the logic that has been deleted by this change is still sometimes accidentally useful. I revert the change to see what can be done about it. The motivating case is the following: @Y = global [400 x i16] zeroinitializer, align 1 define i16 @foo() { entry: br label %for.body for.body: ; preds = %entry, %for.body %i = phi i16 [ 0, %entry ], [ %inc, %for.body ] %arrayidx = getelementptr inbounds [400 x i16], [400 x i16]* @Y, i16 0, i16 %i store i16 0, i16* %arrayidx, align 1 %inc = add nuw nsw i16 %i, 1 %cmp = icmp ult i16 %inc, 400 br i1 %cmp, label %for.body, label %for.end for.end: ; preds = %for.body %inc.lcssa = phi i16 [ %inc, %for.body ] ret i16 %inc.lcssa } We should be able to figure out that the result is constant, but the patch breaks it. Differential Revision: https://reviews.llvm.org/D51584 llvm-svn: 346198
* [LLVM-C] Fix Windows Build of CoreRobert Widmann2018-11-061-1/+1
| | | | | | | strndup doesn't exist outside of GNU-land and modern macOSes. Use strdup instead as c_str() is guaranteed to be NUL-terminated. llvm-svn: 346197
* Disable XRay test fork_basic_logging for NetBSDKamil Rytarowski2018-11-061-0/+3
| | | | | | This code has not been ported so far. llvm-svn: 346196
* [LLVM-C] Improve Intrinsics BindingsRobert Widmann2018-11-064-1/+119
| | | | | | | | | | | | | | | | | | | | | Summary: Improve the intrinsic bindings with operations for - Retrieving and automatically inserting the declaration of an intrinsic by ID - Retrieving the name of a non-overloaded intrinsic by ID - Retrieving the name of an overloaded intrinsic by ID and overloaded parameter types Improve the echo test to copy non-overloaded intrinsics by ID. Reviewers: whitequark, deadalnix Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D53626 llvm-svn: 346195
* Follow Windows' approach for NetBSD in AlarmCallback()Kamil Rytarowski2018-11-061-1/+2
| | | | | | | NetBSD's current behavior needs to ignore check for InFuzzingThread() in Fuzzer::AlarmCallback(). llvm-svn: 346194
* [libFuzzer] Disable value-profile-cmp.test and fuzzer-oom.test on ARM64George Karpenkov2018-11-063-4/+3
| | | | | | | | | | value-profile-cmp was always flaky, and OOM fails to work in some environments. counters.test fails when vectorization is enabled, and it is more likely to kick in when compiling for ARM. Differential Revision: https://reviews.llvm.org/D54004 llvm-svn: 346193
* Revert "[COFF, ARM64] Implement InterlockedXor*_* builtins"Mandeep Singh Grang2018-11-065-176/+48
| | | | | | This reverts commit cc3d3cd0fbeb88412d332354c261ff139c4ede6b. llvm-svn: 346192
* [COFF, ARM64] Implement InterlockedXor*_* builtinsMandeep Singh Grang2018-11-065-48/+176
| | | | | | | | | | | | | | Summary: This is fifth in a series of patches to move intrinsic definitions out of intrin.h. Reviewers: rnk, efriedma, mstorsjo, TomTan Reviewed By: efriedma Subscribers: javed.absar, kristof.beyls, chrib, jfb, kristina, cfe-commits Differential Revision: https://reviews.llvm.org/D54065 llvm-svn: 346191
* [COFF, ARM64] Implement InterlockedOr*_* builtinsMandeep Singh Grang2018-11-065-48/+176
| | | | | | This is fourth in a series of patches to move intrinsic definitions out of intrin.h. llvm-svn: 346190
* [COFF, ARM64] Implement InterlockedCompareExchange*_* builtinsMandeep Singh Grang2018-11-065-94/+241
| | | | | | | | | | | | | | Summary: This is third in a series of patches to move intrinsic definitions out of intrin.h. Reviewers: rnk, efriedma, mstorsjo, TomTan Reviewed By: efriedma Subscribers: javed.absar, kristof.beyls, chrib, jfb, kristina, cfe-commits Differential Revision: https://reviews.llvm.org/D54062 llvm-svn: 346189
* [X86] Autogenerate complete checks. NFCCraig Topper2018-11-066-35/+74
| | | | llvm-svn: 346188
* Revert "[WebAssembly] Fixup `main` signature by default"Sam Clegg2018-11-067-8/+13
| | | | | | | | | | This reverts rL345880. It caused some test failures on the webassembly waterfall. e.g. binaryen2.test_mainenv fails due the fact that `envp` ends up being undef rather than 0. Differential Revision: https://reviews.llvm.org/D54117 llvm-svn: 346187
* [TestVLA] Fix a python decorator.Davide Italiano2018-11-061-1/+2
| | | | llvm-svn: 346186
* Specify REQUIRES: default_triple in two debuginfo testsJustin Bogner2018-11-062-1/+3
| | | | | | These were failing when specifying LLVM_DEFAULT_TARGET_TRIPLE='' llvm-svn: 346185
* TargetMachine: Move lib/CodeGen specific callbacks to LLVMTargetMachine; NFCMatthias Braun2018-11-051-12/+12
| | | | llvm-svn: 346184
* MachineFunction: Store more specific reference to LLVMTargetMachine; NFCMatthias Braun2018-11-057-14/+15
| | | | | | | | | | MachineFunction can only be used in code using lib/CodeGen, hence we can keep a more specific reference to LLVMTargetMachine rather than just TargetMachine around. Do the same for references in ScheduleDAG and RegUsageInfoCollector. llvm-svn: 346183
* MachineModuleInfo: Store more specific reference to LLVMTargetMachine; NFCMatthias Braun2018-11-059-42/+50
| | | | | | | | MachineModuleInfo can only be used in code using lib/CodeGen, hence we can keep a more specific reference to LLVMTargetMachine rather than just TargetMachine around. llvm-svn: 346182
* [DWARF] Support types CU list in .gdb_index dumpingFangrui Song2018-11-052-3/+29
| | | | | | Some executables have non-empty types CU list and -gdb-index would report "<error reporting>" before. llvm-svn: 346181
OpenPOWER on IntegriCloud