summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Don't build up std::vectors with constant sizes when an array suffices.Benjamin Kramer2017-03-243-79/+77
| | | | | | NFC. llvm-svn: 298701
* Remove stale and unused (MC)TargetOptions comparators.Teresa Johnson2017-03-242-62/+0
| | | | | | | | | | | | | | | | | Summary: I discovered accidentally that the operator== for TargetOptions is stale - it is missing many fields that have been added over the recent years. It isn't used, so remove it. Ditto for the comparator in MCTargetOptions, which doesn't seem stale yet but is unused. Reviewers: echristo Subscribers: llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D31301 llvm-svn: 298700
* [analyzer] MisusedMovedObject: Remove deprecated callback. NFCArtem Dergachev2017-03-241-7/+0
| | | | | | | | wantsRegionChangeUpdate() checker callback is no longer used since recently. Fixes a buildbot warning. llvm-svn: 298699
* [analyzer] Add MisusedMovedObjectChecker for detecting use-after-move errors.Artem Dergachev2017-03-244-0/+1113
| | | | | | | | | | | | The checker currently warns on copying, moving, or calling methods on an object that was recently std::move'd from. It understands a set of "state reset" methods that bring a moved-from object back to a well-specified state. Patch by Peter Szecsi! Differential Revision: https://reviews.llvm.org/D24246 llvm-svn: 298698
* [libclang] Bury dead TemporaryFilesKrasimir Georgiev2017-03-241-6/+0
| | | | | | | | | | | | | | | | Summary: AllocatedCXCodeCompleteResults::TemporaryFiles have turned into zombies. Seven years ago they used to do their job during [[ https://github.com/llvm-mirror/clang/commit/313e26c4e81f0e467490a530548450f4c824a6c4/tools/CIndex/CIndexCodeCompletion.cpp#diff-02d3e692ad507b10af9458b775c5750bL261 | file remapping]], but now they are created just to be torn down in the destructor. Reviewers: bkramer Reviewed By: bkramer Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D31288 llvm-svn: 298697
* [clangd] Add support for vscode extension configurationKrasimir Georgiev2017-03-242-5/+36
| | | | | | | | | | | | | Summary: Adds vscode workspace level configuration options for path to clangd binary and its arguments. Contributed by stanionascu! Reviewers: cfe-commits, bkramer, krasimir Reviewed By: krasimir Differential Revision: https://reviews.llvm.org/D31121 llvm-svn: 298696
* Revert r298491 and r298494 which changed Clang's handling of 'nonnull'Chandler Carruth2017-03-246-219/+77
| | | | | | | | | | | | | | | | | attributes. These patches don't work because we can't currently access the parameter information in a reliable way when building attributes. I thought this would be relatively straightforward to fix, but it seems not to be the case. Fixing this will requrie a substantial re-plumbing of machinery to allow attributes to be handled in this location, and several other fixes to the attribute machinery should probably be made at the same time. All of this will make the patch .... substantially more complicated. Reverting for now as there are active miscompiles caused by the current version. llvm-svn: 298695
* The expression text in AppleObjCRuntimeV1::CreateObjectCheckerJason Molenda2017-03-241-2/+3
| | | | | | | | | | | was formatted into a string inside an assert() expression. Which is elided when lldb is built with asserts disabled; the result is that all expressions will fail when debugging programs using the objective-c v1 runtime. <rdar://problem/30353271> llvm-svn: 298694
* Revert "[ScalarEvolution] Re-enable Predicate implication from operations"Max Kazantsev2017-03-244-534/+16
| | | | | | | | This reverts commit rL298690 Causes failures on clang. llvm-svn: 298693
* NewGVN: Small cleanup of two dominance related functions to makeDaniel Berlin2017-03-241-13/+39
| | | | | | them easier to understand. llvm-svn: 298692
* NewGVN: Small cleanup of useless expression deletion, and don't uselessly ↵Daniel Berlin2017-03-241-14/+19
| | | | | | create two expressions in symbolic store evaluation. llvm-svn: 298691
* [ScalarEvolution] Re-enable Predicate implication from operationsMax Kazantsev2017-03-244-16/+534
| | | | | | | | | | | | | | | | | | | | | | | | The patch rL298481 was reverted due to crash on clang-with-lto-ubuntu build. The reason of the crash was type mismatch between either a or b and RHS in the following situation: LHS = sext(a +nsw b) > RHS. This is quite rare, but still possible situation. Normally we need to cast all {a, b, RHS} to their widest type. But we try to avoid creation of new SCEV that are not constants to avoid initiating recursive analysis that can take a lot of time and/or cache a bad value for iterations number. To deal with this, in this patch we reject this case and will not try to analyze it if the type of sum doesn't match with the type of RHS. In this situation we don't need to create any non-constant SCEVs. This patch also adds an assertion to the method IsProvedViaContext so that we could fail on it and not go further into range analysis etc (because in some situations these analyzes succeed even when the passed arguments have wrong types, what should not normally happen). The patch also contains a fix for a problem with too narrow scope of the analysis caused by wrong usage of predicates in recursive invocations. The regression test on the said failure: test/Analysis/ScalarEvolution/implied-via-addition.ll llvm-svn: 298690
* Implement P0298R3: 'std::byte'. Reviewed as https://reviews.llvm.org/D31022Marshall Clow2017-03-2421-1/+623
| | | | llvm-svn: 298689
* [ValueTracking] Use uint64_t for CarryIn in computeKnownBitsAddSub instead ↵Craig Topper2017-03-241-2/+2
| | | | | | of a creating a temporary APInt. NFC llvm-svn: 298688
* NewGVN: Fix PR32403 - Handling of undef in phis was not quite correctDaniel Berlin2017-03-242-1/+79
| | | | | | | due to LLVM's view of phi nodes. It would cause NewGVN not to fixpoint in some interesting edge cases. llvm-svn: 298687
* Move the scoped_lock inside the '#ifndef NO_THREADS' block to fix the ↵Marshall Clow2017-03-241-79/+78
| | | | | | no-threading build llvm-svn: 298686
* [XRay] [compiler-rt] Plug a file descriptor leak in a failure case.Martin Pelikan2017-03-241-1/+1
| | | | | | | | | | | | Summary: Fd needs to be closed before the number gets out of scope. Reviewers: dberris Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31278 llvm-svn: 298685
* Fix a warning when running the GotsanRuntimeCheck test on Darwin.Kuba Mracek2017-03-241-3/+3
| | | | llvm-svn: 298684
* [ValueTracking] Convert more places to use ↵Craig Topper2017-03-241-7/+6
| | | | | | setHighBits/setLowBits/setSignBit. NFCI llvm-svn: 298683
* Update the Darwin/external.cc testcase to use rpath. This means we can move ↵Kuba Mracek2017-03-241-3/+12
| | | | | | the test output executables and still be able to run them. llvm-svn: 298682
* Implement Pp0156r2: 'Variadic Lock Guard, version 5' Reviewed as ↵Marshall Clow2017-03-2416-155/+201
| | | | | | https://reviews.llvm.org/D31163. llvm-svn: 298681
* [InstCombine] Use range-based for loop. NFCCraig Topper2017-03-241-5/+4
| | | | llvm-svn: 298680
* [InstCombine] Fix 80 column violation I accidentally introduced. NFCCraig Topper2017-03-241-1/+2
| | | | llvm-svn: 298679
* [CMake] Support single target builtins build on DarwinPetr Hosek2017-03-241-1/+14
| | | | | | | | | | This change allows cross-compiling compiler-rt builtins for multiple targets as part of runtimes on Darwin. This functionality is already supported on other platforms. Differential Revision: https://reviews.llvm.org/D30957 llvm-svn: 298678
* [AVR] Fix build after r298178Meador Inge2017-03-241-9/+9
| | | | | | | | r298178 capitalized the fields in `ArgListEntry`. All the official targets were updated accordingly, but as an experimental target AVR was missed. llvm-svn: 298677
* Fix handling of initialization from parenthesized initializer list.Richard Smith2017-03-2410-81/+92
| | | | | | | | | | | | | This change fixes a crash on initialization of a reference from ({}) during template instantiation and incidentally improves diagnostics. This reverts a prior attempt to handle this in r286721. Instead, we teach the initialization code that initialization cannot be performed if a source type is required and the initializer is an initializer list (which is not an expression and does not have a type), and likewise for function-style cast expressions. llvm-svn: 298676
* Return early.Rui Ueyama2017-03-241-2/+4
| | | | llvm-svn: 298675
* [libFuzzer] split two tests to get more parallelism in test runsKostya Serebryany2017-03-244-12/+13
| | | | llvm-svn: 298673
* Early continue. NFC.Rui Ueyama2017-03-241-20/+20
| | | | | | | | | | | | | | | | | | | | | | | The original code is a big `if` and `else` which ends with `continue` like this: if (cond) { ... // fall through } else { ... continue; } This patch rewrites it with the following. if (!cond) { ... continue; } ... llvm-svn: 298672
* [libFuzzer] increase kFeatureSetSize to 2^21 and make InputCorpus scale to ↵Kostya Serebryany2017-03-242-12/+11
| | | | | | that size. This will potentially make libFuzzer more sensitive on targets with lots of signals llvm-svn: 298671
* [XRay] Do not depend on C++ stdlib for XRay buildsDean Michael Berris2017-03-241-2/+0
| | | | | | | | | | | | | | Summary: Now that XRay doesn't require a runtime dependency on a C++ standard library, we remove that dependency from the clang linker flags. Reviewers: saugustine, pelikan Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D31313 llvm-svn: 298670
* Update comments.Rui Ueyama2017-03-245-13/+12
| | | | llvm-svn: 298669
* Use `using namespace lld` for consistency with other files.Rui Ueyama2017-03-241-4/+2
| | | | llvm-svn: 298668
* Move a few functions to a new file Filesystem.{cpp,h}.Rui Ueyama2017-03-245-59/+105
| | | | llvm-svn: 298667
* [libFuzzer] fix non-linux buildKostya Serebryany2017-03-231-0/+2
| | | | llvm-svn: 298666
* Refactor code to reduce indentation and improve readability. (NFC)Adrian Prantl2017-03-231-43/+53
| | | | llvm-svn: 298665
* Fix a bug when emitting debug info for partially constant global variables.Adrian Prantl2017-03-232-8/+3
| | | | | | | While fixing a malformed testcase, I discovered that the code exercised by it was wrong, too. llvm-svn: 298664
* Remove uses of std::binary_function, removed in C++17.Richard Smith2017-03-232-3/+2
| | | | llvm-svn: 298663
* [sancov] Don't instrument blocks with no insertion pointReid Kleckner2017-03-232-0/+116
| | | | | | | | | | | | | This prevents crashes when attempting to instrument functions containing C++ try. Sanitizer coverage will still fail at runtime when an exception is thrown through a sancov instrumented function, but that seems marginally better than what we have now. The full solution is to color the blocks in LLVM IR and only instrument blocks that have an unambiguous color, using the appropriate token. llvm-svn: 298662
* Fix trellis layout to avoid mis-identify triangle.Dehao Chen2017-03-232-1/+54
| | | | | | | | | | | | | | | | | | | | | Summary: For the following CFG: A->B B->C A->C If there is another edge B->D, then ABC should not be considered as triangle. Reviewers: davidxl, iteratee Reviewed By: iteratee Subscribers: nemanjai, llvm-commits Differential Revision: https://reviews.llvm.org/D31310 llvm-svn: 298661
* Set the prof weight correctly for call instructions in DeadArgumentElimination.Dehao Chen2017-03-234-0/+40
| | | | | | | | | | | | | | Summary: In DeadArgumentElimination, the call instructions will be replaced. We also need to set the prof weights so that function inlining can find the correct profile. Reviewers: eraman Reviewed By: eraman Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31143 llvm-svn: 298660
* [MetaRenamer] Don't rename library functions.Bryant Wong2017-03-232-3/+29
| | | | | | | | | | | | | | | | | | | | Library functions can have specific semantics that affect the behavior of certain passes. DSE, for instance, gives special treatment to malloc-ed pointers but not to pointers returned from an equivalently typed (but differently named) function. MetaRenamer ought not to alter program semantics, so library functions must remain untouched. Reviewers: mehdi_amini, majnemer, chandlerc, davide Reviewed By: davide Subscribers: davide, llvm-commits Differential Revision: https://reviews.llvm.org/D31304 llvm-svn: 298659
* Add strtok interceptor for ASAN for Windows.Alex Shlyapnikov2017-03-231-0/+1
| | | | | | | | | | | | Summary: Fixes test broken by D30384 Reviewers: eugenis Subscribers: kubamracek, llvm-commits Differential Revision: https://reviews.llvm.org/D31312 llvm-svn: 298658
* Remove all uses of std::mem_fun and std::bind1st removed in C++17.Richard Smith2017-03-235-14/+18
| | | | llvm-svn: 298657
* Use isFunctionHotInCallGraph to set the function section prefix.Dehao Chen2017-03-234-2/+66
| | | | | | | | | | | | | | Summary: The current prefix based function layout algorithm only looks at function's entry count, which is not sufficient. A function should be grouped together if its entry count or any call edge count is hot. Reviewers: davidxl, eraman Reviewed By: eraman Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31225 llvm-svn: 298656
* [Hexagon] Avoid infinite loops in HexagonLoopIdiomRecognitionKrzysztof Parzyszek2017-03-232-13/+112
| | | | | | | | | - Avoid explosive growth of the simplification queue by not queuing expressions that are alredy in it. - Add an iteration counter and abort after a sufficiently large number of iterations (assuming that it's a symptom of an infinite loop). llvm-svn: 298655
* [libFuzzer] create experimental support for user-provided coverage signalKostya Serebryany2017-03-239-28/+169
| | | | llvm-svn: 298654
* [CMake] Provide an option to disable runtimes buildPetr Hosek2017-03-232-4/+17
| | | | | | | | | This could be used to either disable the runtimes build altogether or avoid building them but still generate the build targets. Differential Revision: https://reviews.llvm.org/D31060 llvm-svn: 298653
* Move spill size and alignment info from MC to TargetRegisterInfoKrzysztof Parzyszek2017-03-233-15/+7
| | | | | | | | | This is another step towards implementing register classes with parametrized register/spill sizes. Differential Revision: https://reviews.llvm.org/D31299 llvm-svn: 298652
* [Outliner] Remove unused lambda capture.Jessica Paquette2017-03-231-2/+2
| | | | | | Remove an unused lambda capture that made some bots unhappy. llvm-svn: 298651
OpenPOWER on IntegriCloud