summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [libFuzzer] add ShrinkValueProfileTest, move code around, NFCKostya Serebryany2016-10-058-111/+141
| | | | llvm-svn: 283286
* Revert "Re-commit "Use StringRef in Support/Darf APIs (NFC)""Mehdi Amini2016-10-0512-199/+185
| | | | | | One test seems randomly broken: DebugInfo/X86/gnu-public-names.ll llvm-svn: 283285
* Use StringRef in MCSectionMachO (NFC)Mehdi Amini2016-10-051-16/+14
| | | | llvm-svn: 283284
* Use StringRef in DarwinAsmParser (NFC)Mehdi Amini2016-10-051-4/+3
| | | | llvm-svn: 283283
* [LoopDistribute] Fix a typo in the pass name.Michael Zolotukhin2016-10-051-1/+1
| | | | llvm-svn: 283282
* Re-commit "Use StringRef in Support/Darf APIs (NFC)"Mehdi Amini2016-10-0512-185/+199
| | | | | | | This reverts commit r283278 and re-commit r283275 with the update to fix the build on the LLDB side. llvm-svn: 283281
* [CUDA] Add missing ':' to noexcept.cu test.Justin Lebar2016-10-051-1/+1
| | | | llvm-svn: 283280
* [libFuzzer] clear the corpus elements if they are evicted (i.e. smaller ↵Kostya Serebryany2016-10-053-6/+38
| | | | | | elements with proper coverage are found). Make sure we never try to mutate empty element. Print the corpus size in bytes in the status lines llvm-svn: 283279
* Revert "Use StringRef in Support/Darf APIs (NFC)"Mehdi Amini2016-10-0511-142/+128
| | | | | | This reverts commit r283275, it broke LLDB Android debug server. llvm-svn: 283278
* Use StringRef instead of raw pointers in ARMBuildAttrs (NFC)Mehdi Amini2016-10-051-6/+12
| | | | llvm-svn: 283277
* Add the new minidump files to the Xcode project.Jim Ingham2016-10-051-4/+12
| | | | llvm-svn: 283276
* Use StringRef in Support/Darf APIs (NFC)Mehdi Amini2016-10-0411-128/+142
| | | | llvm-svn: 283275
* Codegen: Tail-duplicate during placement.Kyle Butt2016-10-0422-93/+687
| | | | | | | | | | | | | | | | | | | | | | | | | | The tail duplication pass uses an assumed layout when making duplication decisions. This is fine, but passes up duplication opportunities that may arise when blocks are outlined. Because we want the updated CFG to affect subsequent placement decisions, this change must occur during placement. In order to achieve this goal, TailDuplicationPass is split into a utility class, TailDuplicator, and the pass itself. The pass delegates nearly everything to the TailDuplicator object, except for looping over the blocks in a function. This allows the same code to be used for tail duplication in both places. This change, in concert with outlining optional branches, allows triangle shaped code to perform much better, esepecially when the taken/untaken branches are correlated, as it creates a second spine when the tests are small enough. Issue from previous rollback fixed, and a new test was added for that case as well. Differential revision: https://reviews.llvm.org/D18226 llvm-svn: 283274
* Use StringRef in TableGen (NFC)Mehdi Amini2016-10-042-3/+3
| | | | llvm-svn: 283273
* [CUDA] Mark device functions as nounwind.Justin Lebar2016-10-045-5/+51
| | | | | | | | | | | | | | | | | | | Summary: This prevents clang from emitting 'invoke's and catch statements. Things previously mostly worked thanks to TryToMarkNoThrow() in CodeGenFunction. But this is not a proper IPO, and it doesn't properly handle cases like mutual recursion. Fixes bug 30593. Reviewers: tra Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25166 llvm-svn: 283272
* [CUDA] Destroy deferred diagnostics before destroying the ASTContext's ↵Justin Lebar2016-10-042-6/+9
| | | | | | | | | | | | | | | | PartialDiagnostic allocator. Summary: This will let us (in a separate patch) allocate deferred diagnostics in the ASTContext's PartialDiagnostic arena. Reviewers: rnk Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25260 llvm-svn: 283271
* [asan] When protect_shadow_gap=0, set up the shadow for the shadow gap. This ↵Kostya Serebryany2016-10-043-17/+68
| | | | | | is needed to support NVIDIA CUDA drivers. Unfortunately, I don't know how to test it properly with CUDA on a public build bot, so adding a test that emulates the CUDA behavior. llvm-svn: 283270
* [C API] Add LLVMConstExactUDiv and LLVMBuildExactUDiv functions.Manuel Jacob2016-10-042-0/+14
| | | | | | | | | | | | | | Summary: These are analog to the existing LLVMConstExactSDiv and LLVMBuildExactSDiv functions. Reviewers: deadalnix, majnemer Subscribers: majnemer, llvm-commits Differential Revision: https://reviews.llvm.org/D25259 llvm-svn: 283269
* Use StringRef in TableGen emitted API for attribute (NFC)Mehdi Amini2016-10-041-1/+1
| | | | llvm-svn: 283268
* Update for llvm change.Rafael Espindola2016-10-042-13/+5
| | | | llvm-svn: 283267
* Misc improvements to StringTableBuilder.Rafael Espindola2016-10-047-104/+137
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds write methods to StringTableBuilder so that it is easier to change the underlying implementation. Using the write methods, avoid creating a temporary buffer when using mmaped output. It also uses a more compact key in the DenseMap. Overall this produces a slightly faster lld: firefox master 6.853419709 patch 6.841968912 1.00167361138x faster chromium master 4.297280174 patch 4.298712163 1.00033323147x slower chromium fast master 1.802335952 patch 1.806872459 1.00251701521x slower the gold plugin master 0.3247149 patch 0.321971644 1.00852017888x faster clang master 0.551279945 patch 0.543733194 1.01387951128x faster llvm-as master 0.032743458 patch 0.032143478 1.01866568391x faster the gold plugin fsds master 0.350814247 patch 0.348571741 1.00643341309x faster clang fsds master 0.6281672 patch 0.621130222 1.01132931187x faster llvm-as fsds master 0.030168899 patch 0.029797155 1.01247582194x faster scylla master 3.104222518 patch 3.059590248 1.01458766252x faster llvm-svn: 283266
* [cpu-detection] Copy simplified version of get_cpuid_max to remove ↵Alina Sbirlea2016-10-041-5/+37
| | | | | | | | | | | | | | | | | dependency to clang's implementation Summary: Attempting to fix PR30384. Take the same approach as in compiler_rt and add a simplified version of __get_cpuid_max. Including cpuid.h is no longer needed. Reviewers: echristo, joerg Subscribers: mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D24597 llvm-svn: 283265
* Separate builtins for x84-64 and i386; implement __mulh and __umulhAlbert Gutowski2016-10-047-22/+110
| | | | | | | | | | | | Summary: We need x86-64-specific builtins if we want to implement some of the MS intrinsics - winnt.h contains definitions of some functions for i386, but not for x86-64 (for example _InterlockedOr64), which means that we cannot treat them as builtins for both i386 and x86-64, because then we have definitions of builtin functions in winnt.h on i386. Reviewers: thakis, majnemer, hans, rnk Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D24598 llvm-svn: 283264
* xfailing tests for Minidump pluginDimitar Vlahovski2016-10-041-0/+6
| | | | | | | | the tests are failing on the buildbot because there is an extra frame (maybe) on the call stack. Will investigate tomorrow. llvm-svn: 283263
* Fix the decorator of TestBreakpointCaseSensitivityTamas Berghammer2016-10-041-4/+2
| | | | llvm-svn: 283262
* Make building the clang-tidy VS extension less spammy.Zachary Turner2016-10-041-1/+1
| | | | | | | | The package that strong name signs the 3rd party references spams a ton of output to the log, making the build really ugly. Make this quiet. llvm-svn: 283261
* [libcxx] [test] Guard __has_include usage with a macroEric Fiselier2016-10-041-1/+7
| | | | | | | | | | | | Summary: There's a macro scheme already being used for __has_feature etc. Use it for __has_include too, which makes MSVC happy (it doesn't support __has_include yet, and unguarded use explodes horribly). Reviewers: mclow.lists, EricWF Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25251 llvm-svn: 283260
* Adding a new Minidump post-mortem debugging pluginDimitar Vlahovski2016-10-0417-21/+800
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This plugin resembles the already existing Windows-only Minidump plugin. The WinMinidumpPlugin uses the Windows API for parsing Minidumps while this plugin is cross-platform because it includes a Minidump parser (which is already commited) It is able to produce a backtrace, to read the general puprose regiters, inspect local variables, show image list, do memory reads, etc. For now the only arch that this supports is x86 64 bit This is because I have only written a register context for that arch. Others will come in next CLs. I copied the WinMinidump tests and adapted them a little bit for them to work with the new plugin (and they pass) I will add more tests, aiming for better code coverage. There is still functionality to be added, see TODOs in code. Reviewers: labath, zturner Subscribers: beanz, mgorny, amccarth, lldb-commits, modocache Differential Revision: https://reviews.llvm.org/D25196 llvm-svn: 283259
* clang-cl: Make /Fo apply also when using -fltoHans Wennborg2016-10-042-1/+2
| | | | llvm-svn: 283258
* clang-cl: Use the .obj file extension also in LTO modeHans Wennborg2016-10-042-6/+14
| | | | llvm-svn: 283257
* clang-cl: expose the -fuse-ld optionHans Wennborg2016-10-042-1/+4
| | | | llvm-svn: 283256
* clang-cl: Expose the -flto optionHans Wennborg2016-10-042-1/+2
| | | | | | | | | | | We could hook up /GL as an alias for -flto, but that might be confusing, as clang-cl in that mode would not be drop-in compatible with cl.exe /GL, as it requires the linker to be lld. Exposing -flto seems like a less confusing way to expose this functionality. llvm-svn: 283255
* Revert r283248. It caused failures in the hexagon buildbots.David L Kreitzer2016-10-041-6/+7
| | | | llvm-svn: 283254
* [analyzer] Add PostStmt callback for ArraySubscriptExprAnna Zaks2016-10-042-9/+23
| | | | | | | | A patch by Jan Smets! Differential Revision: https://reviews.llvm.org/D25009 llvm-svn: 283253
* [Target] move reciprocal estimate settings from TargetOptions to TargetLoweringSanjay Patel2016-10-0414-299/+387
| | | | | | | | | | | | | | | | | | | | | | | | | | The motivation for the change is that we can't have pseudo-global settings for codegen living in TargetOptions because that doesn't work with LTO. Ideally, these reciprocal attributes will be moved to the instruction-level via FMF, metadata, or something else. But making them function attributes is at least an improvement over the current state. The ingredients of this patch are: Remove the reciprocal estimate command-line debug option. Add TargetRecip to TargetLowering. Remove TargetRecip from TargetOptions. Clean up the TargetRecip implementation to work with this new scheme. Set the default reciprocal settings in TargetLoweringBase (everything is off). Update the PowerPC defaults, users, and tests. Update the x86 defaults, users, and tests. Note that if this patch needs to be reverted, the related clang patch checked in at r283251 should be reverted too. Differential Revision: https://reviews.llvm.org/D24816 llvm-svn: 283252
* [clang] make reciprocal estimate codegen a function attributeSanjay Patel2016-10-043-3/+16
| | | | | | | | | | | | | | | | The motivation for the change is that we can't have pseudo-global settings for codegen living in TargetOptions because that doesn't work with LTO. Ideally, these reciprocal attributes will be moved to the instruction-level via FMF, metadata, or something else. But making them function attributes is at least an improvement over the current state. I'm committing this patch ahead of the related LLVM patch to avoid bot failures, but if that patch needs to be reverted, then this should be reverted too. Differential Revision: https://reviews.llvm.org/D24815 llvm-svn: 283251
* Next set of additional error checks for invalid Mach-O files for theKevin Enderby2016-10-047-0/+62
| | | | | | | | | | | load commands that uses the MachO::encryption_info_command and MachO::encryption_info_command types but not used in llvm libObject code but used in llvm tool code. This includes just LC_ENCRYPTION_INFO and LC_ENCRYPTION_INFO_64 load commands. llvm-svn: 283250
* [ubsan] Disable bounds-check for flexible array ivarsVedant Kumar2016-10-042-0/+61
| | | | | | | | | This eliminates a class of false positives for -fsanitize=array-bounds on instrumented ObjC projects. Differential Revision: https://reviews.llvm.org/D22227 llvm-svn: 283249
* [safestack] Requires a valid TargetMachine to be passed to the SafeStack pass.David L Kreitzer2016-10-041-7/+6
| | | | | | | | Patch by Michael LeMay Differential revision: http://reviews.llvm.org/D24896 llvm-svn: 283248
* [cmake] Make LIT_COMMAND configurable and improve fallback supportMichal Gorny2016-10-041-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make LIT_COMMAND configurable, use source tree only when actually available and extend the default search to other common executable names 'lit.py' and 'lit', in order to increase uniformity between all LLVM projects and support using installed lit. Changing the conditional used to determine whether in-tree or external lit is being used covers the case when LLVM_MAIN_SRC_DIR is defined but does not exist (anymore). In this case, the functions falls back to looking for installed lit rather than attempting to use a non-existing path. The same conditional is used in clang already. Making LIT_COMMAND a cache variable in case the source tree variant is used serves two purposes. Firstly, it increases uniformity between the two branches since find_program() implicitly makes LIT_COMMAND a cache variable. Secondly, it allows overriding the lit executable used to run the tests when the LLVM source tree is provided. Gentoo is planning to use this to use installed (and byte-compiled) lit instead of re-compiling it in every LLVM project. Extending default search is meant to increase uniformity between different LLVM projects. The 'lit.py' name is already used by a few of them, and 'lit' is the name used by utils/lit/setup.py when installing. Differential Revision: https://reviews.llvm.org/D25076 llvm-svn: 283247
* clang-format: Fix bad multi-variable for-loop formatting.Daniel Jasper2016-10-042-1/+4
| | | | | | | | | | Before: for (int*p, *q; p != q; p = p->next) { After: for (int *p, *q; p != q; p = p->next) { llvm-svn: 283246
* Build and run isl_test as part of check-pollyTobias Grosser2016-10-045-1/+94
| | | | | | | | | | | | | | | | | | | | Running isl tests is important to gain confidence that the isl build we created works as expected. Besides the actual isl tests, there are also isl AST generation tests shipped with isl. This change only adds support for the isl unit tests. AST generation test support is left for a later commit. There is a choice to run tests directly through the build system or in the context of lit. We choose to run tests as part of lit to as this allows us to easily set environment variables, print output only on error and generally run the tests directly from the lit command. Reviewers: brad.king, Meinersbur Subscribers: modocache, brad.king, pollydev, beanz, llvm-commits, mgorny Differential Revision: https://reviews.llvm.org/D25155 llvm-svn: 283245
* [Support] Add case-insensitive versions of StringSwitch members.Zachary Turner2016-10-042-1/+155
| | | | | | | | | This adds support for CaseLower, CasesLower, StartsWithLower, and EndsWithLower. Differential revision: https://reviews.llvm.org/D24686 llvm-svn: 283244
* AArch64: Macrofusion: Split features, add missing combinations.Matthias Braun2016-10-044-12/+60
| | | | | | | | | | | | | | | | AArch64InstrInfo::shouldScheduleAdjacent() determines whether two instruction can benefit from macroop fusion on apple CPUs. The list turned out to be incomplete: - the "rr" variants of the instructions were missing - even the "rs" variants can have shift value == 0 and behave like the "rr" variants This also splits the MacropFusion target feature into ArithmeticBccFusion and ArithmeticCbzFusion. Differential Revision: https://reviews.llvm.org/D25142 llvm-svn: 283243
* [sancov] documentation update after r283241Mike Aizatsky2016-10-041-1/+1
| | | | llvm-svn: 283242
* [sancov] renamed symcov-report-server to coverage-report-serverMike Aizatsky2016-10-042-2/+2
| | | | llvm-svn: 283241
* [asan] Switch to using dynamic shadow offset on iOSAnna Zaks2016-10-044-6/+44
| | | | | | | | The VM layout is not stable between iOS version releases, so switch to dynamic shadow offset. Differential Revision: https://reviews.llvm.org/D25218 llvm-svn: 283240
* [asan] LLVM: Switch to using dynamic shadow offset on iOSAnna Zaks2016-10-041-2/+3
| | | | | | | | | | The VM layout is not stable between iOS version releases, so switch to dynamic shadow offset. This is the LLVM counterpart of https://reviews.llvm.org/D25218 Differential Revision: https://reviews.llvm.org/D25219 llvm-svn: 283239
* Improvements to testing blacklistFrancis Ricci2016-10-044-41/+20
| | | | | | | | | | | | | | | | | | | Summary: This patch is necessary because individual test cases are not required to have unique names. Therefore, test cases must now be specified explicitly in the form <TestCase>.<TestMethod>. Because it works by regex matching, passing just <TestCase> will still disable an entire file. This also allows for multiple exclusion files to be specified. Reviewers: zturner, labath, jingham, tfiala Subscribers: lldb-commits, sas Differential Revision: https://reviews.llvm.org/D24988 llvm-svn: 283238
* Fix FixupEnvironment on Android after the Args refactorTamas Berghammer2016-10-041-5/+6
| | | | llvm-svn: 283237
OpenPOWER on IntegriCloud