summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* ObjCARC: Don't look at users of ConstantDataDuncan P. N. Exon Smith2016-09-241-0/+11
| | | | | | | | | | | | | Stop looking at users of UndefValue and ConstantPointerNull in the objective C ARC optimizers. The other users aren't actually interesting, since they're not pointing at a particular object. I imagine these calls could be optimized through -instcombine... maybe they already are? These early returns will be required at some point in the future, with a WIP patch that asserts when someone accesses a use-list on ConstantData. llvm-svn: 282338
* Analysis: Return early for UndefValue in computeKnownBitsDuncan P. N. Exon Smith2016-09-241-0/+8
| | | | | | | | | There is no benefit in looking through assumptions on UndefValue to guess known bits. Return early to avoid walking their use-lists, and assert that all instances of ConstantData are handled here for similar reasons (UndefValue was the only integer/pointer holdout). llvm-svn: 282337
* [x86] don't try to create a vector integer inst for an SSE1 target (PR30512)Sanjay Patel2016-09-242-3/+67
| | | | | | | | | | | | This bug was introduced with: http://reviews.llvm.org/rL272511 We need to restrict the lowering to v4f32 comparisons because that's all SSE1 can handle. This should fix: https://llvm.org/bugs/show_bug.cgi?id=28044 llvm-svn: 282336
* [LTO] Add a test for invalid alias analysis pipelines.Davide Italiano2016-09-242-1/+8
| | | | | | | | I found out this wasn't tested when looking at Vedant's coverage bot numbers, so, thanks to him. While I'm here, switch the error message to be lld-compliant (first letter lowercase). llvm-svn: 282335
* Scalar: Ignore ConstantData in processAssumptionDuncan P. N. Exon Smith2016-09-241-0/+5
| | | | | | | | | | | | Assumptions on UndefValue and ConstantPointerNull aren't relevant to other users. Ignore them entirely to avoid wasting cycles walking through their (possibly extremely extensive (cross-module)) use-lists. It wasn't clear how to add a specific test for this, and it'll be covered anyway by an eventual patch that asserts when trying to access the use-list of an instance of ConstantData. llvm-svn: 282334
* Analysis: Return early in isKnownNonNullAt for ConstantDataDuncan P. N. Exon Smith2016-09-241-0/+4
| | | | | | | | | | | | | Check and return early for ConstantPointerNull and UndefValue specifically in isKnownNonNullAt, and assert that ConstantData never make it to isKnownNonNullFromDominatingCondition. This confirms that isKnownNonNullFromDominatingCondition never walks through the use-list of an instance of ConstantData. Given that such use-lists cross module boundaries, it never really made sense to do so, and was potentially very expensive. llvm-svn: 282333
* Fix incorrect include in is_error_code_enum.pass.cppMarshall Clow2016-09-241-2/+2
| | | | llvm-svn: 282332
* Implement is_error_code_v and is_error_condition_v for c++17. Rework the ↵Marshall Clow2016-09-245-1/+148
| | | | | | tests for is_error_code and is_error_condition, since they were really lacking. Thanks to Alisdair for the heads-up that we were missing these. llvm-svn: 282331
* [clang-tidy] fix for NOLINT after macro expansionMatthias Gehre2016-09-242-2/+28
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: When having ``` c++ #define MACRO code-with-warning MACRO; // NOLINT ``` clang-tidy would still show the warning, because it searched for "NOLINT" only in the first line, not on the second. This caused e.g. https://llvm.org/bugs/show_bug.cgi?id=29089 (where the macro was defined in a system header). See also the added test cases. Now clang-tidy looks at the line of macro invocation and every line of macro definition for a NOLINT comment. Reviewers: alexfh, aaron.ballman, hokein Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D24845 llvm-svn: 282330
* [AVR] Update signature of AVRTargetObjectFile::SelectSectionForGlobalDylan McKay2016-09-242-3/+3
| | | | | | It was changed recently, and was breaking compilation of the backend. llvm-svn: 282329
* [libc++] Remove math_win32.hShoaib Meenai2016-09-242-121/+0
| | | | | | | | | Visual Studio 2013 and onward have all the required functions in their CRT headers, and we don't support older versions anymore. Differential Revision: https://reviews.llvm.org/D24879 llvm-svn: 282328
* [RegisterBankInfo] Constify the member of the XXXMapping maps.Quentin Colombet2016-09-242-4/+4
| | | | | | | This makes it obvious that items in those maps behave like statically created objects. llvm-svn: 282327
* [RegisterBankInfo] Document the design choice for the BreakDown.Quentin Colombet2016-09-241-0/+52
| | | | | | | | | | This adds a comment explaining why we will duplicate PartialMapping to represent the breakdown for complex mappings (mappings with more than one partial mapping), instead of using an array of pointer. NFC llvm-svn: 282326
* [RegisterBankInfo] Add statistics for dynamic value mappings.Quentin Colombet2016-09-241-0/+8
| | | | | | | Like partial mappings, as we move toward TableGen'ed information, the number should reach zero eventually. llvm-svn: 282325
* [RegisterBankInfo] Uniquely generate ValueMapping.Quentin Colombet2016-09-243-25/+98
| | | | | | | | This is a step toward statically allocate ValueMapping. Like the previous few commits, the goal is to move toward a TableGen'ed like structure with no dynamic allocation at all. llvm-svn: 282324
* [RegisterBankInfo] Keep valid pointers for PartialMappings.Quentin Colombet2016-09-242-6/+11
| | | | | | | | | | | | | | | Previously we were using the address of the unique instance of a partial mapping in the related map to access this instance. However, when the map grows, the whole set of instances may be moved elsewhere and the previous addresses are not valid anymore. Instead, keep the address of the unique heap allocated instance of a partial mapping. Note: I did not see any actual bugs for that problem as the number of partial mappings dynamically allocated is small (<= 4). llvm-svn: 282323
* Remove excessive padding from RedeclarableResultAlexander Shaposhnikov2016-09-241-7/+8
| | | | | | | | | | | This diff reorders the fields of the class RedeclarableResult to remove excessive padding. Test plan: make -j8 check-clang Differential revision: https://reviews.llvm.org/D24754 llvm-svn: 282322
* [libFuzzer] add a standalone build script Kostya Serebryany2016-09-241-0/+10
| | | | llvm-svn: 282321
* GlobalStatus: Don't walk use-lists of ConstantDataDuncan P. N. Exon Smith2016-09-241-1/+1
| | | | | | | | | | | | Return early from llvm::isSafeToDestroyConstant() whenever the value `isa<ConstantData>()`. These constants are shared across the LLVMContext. We never really want to delete them here, and walking their use-lists can be very expensive. (This is motivated by an eventual goal of removing use-lists entirely from ConstantData.) llvm-svn: 282320
* [clang-tidy] Cleaning up language options.Gabor Horvath2016-09-2428-81/+67
| | | | | | Differential Revision: https://reviews.llvm.org/D24881 llvm-svn: 282319
* Remove excessive padding from ObjCCategoriesVisitorAlexander Shaposhnikov2016-09-241-8/+8
| | | | | | | | | | | This diff reorders the fields of ObjCCategoriesVisitor to remove excessive padding. Test plan: make -j8 check-clang Differential revision: https://reviews.llvm.org/D24753 llvm-svn: 282318
* [analyzer][scan-build-py] subprocess output handling reviewed in clang moduleLaszlo Nagy2016-09-243-100/+156
| | | | llvm-svn: 282317
* [libFuzzer] simplify HandleTrace again, start re-running interesting units ↵Kostya Serebryany2016-09-236-9/+75
| | | | | | and collecting their features. llvm-svn: 282316
* [msan] Disable flaky fork.cc on PPC64.Evgeniy Stepanov2016-09-231-1/+4
| | | | | | This test is very flaky on PPC64 (both BE and LE), but not on other platforms. llvm-svn: 282315
* [CMake] Generate LLDB_REVISION at build timeChris Bieneman2016-09-232-26/+39
| | | | | | | | | | | | | | | | | | Summary: This alters the generation of LLDB_REVISION to be heavily based on how clang generates its version header. There are two benefits of this aproach. (1) The LLDB_REVISION is generated at build time, so it will be updated after an SCM pull/update even if CMake doesn't re-run (2) This works on Windows As noted this code is a simplified implementation of the code from clang. Reviewers: tfiala, zturner Subscribers: beanz, mgorny, lldb-commits Differential Revision: https://reviews.llvm.org/D24846 llvm-svn: 282314
* Add qualification to fix MSVC build.Peter Collingbourne2016-09-231-1/+1
| | | | llvm-svn: 282313
* [x86] fix FCOPYSIGN lowering to create constants instead of ConstantPool loadsSanjay Patel2016-09-234-81/+56
| | | | | | | | | | | | This is similar to: https://reviews.llvm.org/rL279958 By not prematurely lowering to loads, we should be able to more easily eliminate the 'or' with zero instructions seen in copysign-constant-magnitude.ll. We should also be able to extend this code to handle vectors. llvm-svn: 282312
* Mutatis mutandis for char * -> StringRef. Jim Ingham2016-09-231-6/+6
| | | | llvm-svn: 282311
* Add an accessor to get the value of RC_PLATFORM_NAME at build timeEnrico Granata2016-09-231-0/+3
| | | | llvm-svn: 282310
* Fix build on Ubuntu.Zachary Turner2016-09-231-5/+5
| | | | | | | This was in some code that was #ifdef'd out on Windows, so I didn't see it. llvm-svn: 282309
* Use llvm::to_string instead of std::to_string to fix botTeresa Johnson2016-09-231-2/+3
| | | | | | | This should fix the android build in this bot: http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-buildserver/builds/11143 llvm-svn: 282308
* Combine two StringSwitch::Cases because Cases now can take 6 parameters.Rui Ueyama2016-09-231-2/+1
| | | | llvm-svn: 282307
* Change FileAction::GetPath() to return a StringRef.Zachary Turner2016-09-235-31/+22
| | | | llvm-svn: 282306
* Add StringSwitch::Cases functions that takes 6 to 10 arguments.Rui Ueyama2016-09-231-41/+61
| | | | | | Differential Revision: https://reviews.llvm.org/D24882 llvm-svn: 282305
* Revert "[profile] Hide lprofCurFilename"Vedant Kumar2016-09-231-2/+1
| | | | | | | | | | | | | | | This reverts commit r282294. It breaks a Linux bot: http://lab.llvm.org:8011/builders/clang-cmake-aarch64-42vma/builds/12180 It looks like the test checks that __llvm_profile_set_filename() alters the raw profile filename in both the dylib and the main program. Now that lprofCurFilename is hidden, this can't work, and we get two profiles (one for the call to "main" and one for "func"). Back this change out so that we don't affect external users. llvm-svn: 282304
* [MC] Support .ds directives in assembler parserPetr Hosek2016-09-232-0/+107
| | | | | | | | These directives are already supported by GNU assembler. Differential Revision: https://reviews.llvm.org/D24740 llvm-svn: 282303
* llc: Add -start-before/-stop-before optionsMatthias Braun2016-09-237-46/+99
| | | | | | Differential Revision: https://reviews.llvm.org/D23089 llvm-svn: 282302
* Update clang for r282299.Peter Collingbourne2016-09-231-17/+3
| | | | llvm-svn: 282301
* annotate more function visibilitySaleem Abdulrasool2016-09-232-10/+10
| | | | | | | | These data and text symbols were missing annotations for building with hidden visibility. As we do not currently enable hidden visibility by default, this is a NFC for the buildbots. llvm-svn: 282300
* LTO: Simplify caching interface.Peter Collingbourne2016-09-239-301/+204
| | | | | | | | | | | | | | | | | The NativeObjectOutput class has a design problem: it mixes up the caching policy with the interface for output streams, which makes the client-side code hard to follow and would for example make it harder to replace the cache implementation in an arbitrary client. This change separates the two aspects by moving the caching policy to a separate field in Config, replacing NativeObjectOutput with a NativeObjectStream class which only deals with streams and does not need to be overridden by most clients and introducing an AddFile callback for adding files (e.g. from the cache) to the link. Differential Revision: https://reviews.llvm.org/D24622 llvm-svn: 282299
* Allow for tests to be disabled at runtimeFrancis Ricci2016-09-234-1/+93
| | | | | | | | | | | | | | | | Summary: The current implementation of the test suite allows the user to run a certain subset of tests using '-p', but does not allow the inverse, where a user wants to run all but some number of known failing tests. Implement this functionality. Reviewers: labath, zturner, tfiala Subscribers: jingham, sas, lldb-commits Differential Revision: https://reviews.llvm.org/D24629 llvm-svn: 282298
* Install only the manpage and only in the proper locationEnrico Granata2016-09-231-35/+1
| | | | llvm-svn: 282297
* [AMDGPU] Fix for bz30427: wrong MTBUF encoding on VIValery Pykhtin2016-09-231-6/+10
| | | | | | Differential revision: https://reviews.llvm.org/D24875 llvm-svn: 282296
* Warn if we can't find the entry symbol.Rafael Espindola2016-09-232-4/+11
| | | | | | Fixes pr30465. llvm-svn: 282295
* [profile] Hide lprofCurFilenameVedant Kumar2016-09-231-1/+2
| | | | | | Differential Revision: https://reviews.llvm.org/D24885 llvm-svn: 282294
* [analyzer] Fix crash in RetainCountChecker::checkEndFunctionAlexander Shaposhnikov2016-09-233-5/+13
| | | | | | | | | | | | | | | | | The class BodyFarm creates bodies for OSAtomicCompareAndSwap*, objc_atomicCompareAndSwap*, dispatch_sync*, dispatch_once* and for them the flag isBodyAutosynthesized is set to true. This diff 1. makes AnalysisConsumer::HandleCode skip the autosynthesized code 2. replaces assert(LCtx->getParent()) in RetainCountChecker::checkEndFunction by assert(!LCtx->inTopFrame()) (minor cleanup) Test plan: make -j8 check-clang-analysis Differential revision: https://reviews.llvm.org/D24792 llvm-svn: 282293
* [libFuzzer] first steps in adding a proper automated test suite based on ↵Kostya Serebryany2016-09-232-0/+48
| | | | | | real-life code: add a script to build RE2 at a revision that has known bugs llvm-svn: 282292
* [LTO] Add -flto-jobs=N to control backend parallelismTeresa Johnson2016-09-233-4/+42
| | | | | | | | | | | | | | | | | | | | Summary: Currently, a linker option must be used to control the backend parallelism of ThinLTO. The linker option varies depending on the linker (e.g. gold vs ld64). Add a new clang option -flto-jobs=N to control this. I've added in the wiring to pass this to the gold plugin. I also added in the logic to pass this down in the form I understand that ld64 uses on MacOS, for the darwin target. Reviewers: mehdi_amini, dexonsmith Subscribers: mehdi_amini, cfe-commits Differential Revision: https://reviews.llvm.org/D24826 llvm-svn: 282291
* [gold] Split plugin options controlling ThinLTO and codegen parallelism.Teresa Johnson2016-09-232-11/+12
| | | | | | | | | | | | | | | | Summary: As suggested in D24826, use different options for ThinLTO backend parallelism from the option controlling regular LTO code gen parallelism. They are already split in the LTO API, and this enables controlling them with different clang options. Reviewers: pcc, mehdi_amini Subscribers: dexonsmith, llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D24873 llvm-svn: 282290
* Revert "set the underlying value of “#pragma STDC FP_CONTRACT” on by ↵Renato Golin2016-09-236-226/+13
| | | | | | | | default" This reverts commit r282259, as it broke the AArch64 test-suite bots. llvm-svn: 282289
OpenPOWER on IntegriCloud