summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Sink some PTHManager includes out of Preprocessor.hReid Kleckner2015-11-025-1/+5
| | | | | | | This reduces the number of .cpp files needed to be rebuilt after touching OnDiskHashTable from 120 to 21 for me. llvm-svn: 251810
* Preserve load alignment and dereferenceable metadata during some transformationsArtur Pilipenko2015-11-0216-9/+327
| | | | | | | | Reviewed By: hfinkel Differential Revision: http://reviews.llvm.org/D13953 llvm-svn: 251809
* Make the modernize-loop-convert's const-detection smarter.Angel Garcia Gomez2015-11-027-69/+393
| | | | | | | | | | | | | | | | Summary: Now, it detects that several kinds of usages are can't modify the elements. Examples: -When an usage is a call to a const member function or operator of the element. -If the element is used as an argument to a function or constructor that takes a const-reference or a value. -LValue to RValue conversion, if the element is a fundamental type (which allows the use of most of the builtin operators). Reviewers: klimek Subscribers: cfe-commits, alexfh Differential Revision: http://reviews.llvm.org/D14198 llvm-svn: 251808
* Fix another crash in the redundant-void-arg check.Angel Garcia Gomez2015-11-022-3/+12
| | | | | | | | | | | | Summary: The check was assuming that a definition of a function always has a body, but a declaration that explicitly defaults or deletes a function is a definition too. Reviewers: alexfh Subscribers: klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D14238 llvm-svn: 251807
* lit: Add '-a' option to display commands+output of all testsMatthias Braun2015-11-021-4/+9
| | | | | | | The existing -v option only displays commands and outputs for failed tests, the newly introduced -a displays it for all executed tests. llvm-svn: 251806
* Add missing override statements in ScalarEvolution.h. NFCSilviu Baranga2015-11-021-2/+2
| | | | llvm-svn: 251805
* Remove undefined behavior from some tests. Same pattern as the ↵Marshall Clow2015-11-022-10/+16
| | | | | | unitialized_copy tests llvm-svn: 251804
* Remove unreachable that was reached in modernize-use-nullptr.Angel Garcia Gomez2015-11-022-5/+18
| | | | | | | | | | | | Summary: When traversing the parent map, the check assumed that all the nodes would be either Stmt or Decl. After r251101, this is no longer true: there can be TypeLoc and NestedNameSpecifierLoc nodes. Reviewers: alexfh Subscribers: klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D14229 llvm-svn: 251803
* Remove undefined behavior from some tests. Thanks to Walter Brown for the ↵Marshall Clow2015-11-022-10/+18
| | | | | | heads-up. llvm-svn: 251802
* Use static instead of anonymous namespace for helper functions. NFC.Pawel Bylica2015-11-022-9/+4
| | | | llvm-svn: 251801
* [SCEV][LV] Add SCEV Predicates and use them to re-implement stride versioningSilviu Baranga2015-11-027-132/+516
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: SCEV Predicates represent conditions that typically cannot be derived from static analysis, but can be used to reduce SCEV expressions to forms which are usable for different optimizers. ScalarEvolution now has the rewriteUsingPredicate method which can simplify a SCEV expression using a SCEVPredicateSet. The normal workflow of a pass using SCEVPredicates would be to hold a SCEVPredicateSet and every time assumptions need to be made a new SCEV Predicate would be created and added to the set. Each time after calling getSCEV, the user will call the rewriteUsingPredicate method. We add two types of predicates SCEVPredicateSet - implements a set of predicates SCEVEqualPredicate - tests for equality between two SCEV expressions We use the SCEVEqualPredicate to re-implement stride versioning. Every time we version a stride, we will add a SCEVEqualPredicate to the context. Instead of adding specific stride checks, LoopVectorize now adds a more generic SCEV check. We only need to add support for this in the LoopVectorizer since this is the only pass that will do stride versioning. Reviewers: mzolotukhin, anemet, hfinkel, sanjoy Subscribers: sanjoy, hfinkel, rengolin, jmolloy, llvm-commits Differential Revision: http://reviews.llvm.org/D13595 llvm-svn: 251800
* Make a method static. NFC.Rafael Espindola2015-11-022-6/+5
| | | | llvm-svn: 251799
* Fix for bootstrap bug introduced in r244921Nemanja Ivanovic2015-11-024-14/+30
| | | | | | | | | | This revision has introduced an issue that only affects bootstrapped compiler when it is printing the ASM. It turns out that the new code path taken due to legalizing a scalar_to_vector of i64 -> v2i64 exposes a missing check in a micro optimization to change a load followed by a scalar_to_vector into a load and splat instruction on PPC. llvm-svn: 251798
* [OPENMP] Add dependency to clang/clang-headers etc. for in-tree build of libomp.Alexey Bataev2015-11-024-7/+6
| | | | | | | Add additional dependency to clang/clang-headers/FileCheck to avoid possible troubles with in-tree build/test of libomp + allow parallel testing of libomp. Also includes bugfixes for tests + improvements to avoid possible race conditions. Differential Revision: http://reviews.llvm.org/D14055 llvm-svn: 251797
* This doesn't need a object::Archive::child_iterator.Rafael Espindola2015-11-021-2/+2
| | | | llvm-svn: 251796
* Avoid implicitly constructing a Archive::child_iterator.Rafael Espindola2015-11-021-10/+10
| | | | llvm-svn: 251794
* Handle the options and parameters separator in every MI commandHafiz Abid Qadeer2015-11-025-3/+8
| | | | | | | | | | | | | | | | | | | Summary: As per the following link, the "--" separator can appear between the options and parameters of any MI command. Previously this separator was only handled by the `-data-disassemble` MI command. I have moved the relevant code into `CMICmdBase` so that any MI command can handle the aforementioned separator. https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI-Input-Syntax.html#GDB_002fMI-Input-Syntax Reviewers: ki.stfu Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D14197 llvm-svn: 251793
* Fix crash in redundant-void-arg check.Angel Garcia Gomez2015-11-022-10/+30
| | | | | | | | | | | | | | Summary: When applying this check to the unit tests, it would hit an assertion: llvm/tools/clang/lib/Lex/Lexer.cpp:1056: clang::SourceLocation clang::Lexer::getSourceLocation(const char*, unsigned int) const: Assertion `PP && "This doesn't work on raw lexers"' failed. Reviewers: klimek, LegalizeAdulthood, alexfh Subscribers: cfe-commits, alexfh Differential Revision: http://reviews.llvm.org/D14204 llvm-svn: 251792
* ScopInfo: Bail out in case of mismatching array dimension sizesTobias Grosser2015-11-023-11/+73
| | | | | | | | | | | In some cases different memory accesses access the very same array using a different multi-dimensional array layout where the same dimensions have different sizes. Instead of asserting when encountering this issue, we gracefully bail out for this scop. This fixes llvm.org/PR25252 llvm-svn: 251791
* Try to fix buildbots failure.Angel Garcia Gomez2015-11-022-2/+2
| | | | | | | | | | Summary: Add -fexceptions flag to enable exceptions. Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D14225 llvm-svn: 251790
* [ELF2] Ensure that .dynsym section is finalized before .gnu.hash.Igor Kudrin2015-11-022-4/+10
| | | | | | | | | It is required to fill up the GNU hash table section before its finalize() method is called. Differential Revision: http://reviews.llvm.org/D14196 llvm-svn: 251789
* modernize-use-default supports copy constructor and copy-assignment operator.Angel Garcia Gomez2015-11-023-90/+839
| | | | | | | | | | | | Summary: the check will now warn when the user provided definitions of this functions is equivalent to the explicitly defaulted ones. Reviewers: klimek Subscribers: klimek, cfe-commits, alexfh Differential Revision: http://reviews.llvm.org/D14145 llvm-svn: 251788
* Remove old and redundant optionsTobias Grosser2015-11-022-10/+0
| | | | | | | | | We remove -polly-detect-unprofitable and -polly-no-early-exit. Both have been superseeded by -polly-process-unprofitable and were only kept as aliases for our buildbots to continue to work. As all buildbots have been moved to the new options, we can now remove the old ones for good. llvm-svn: 251787
* [x86] Front-end part of MCU psABI supportAndrey Bokhanko2015-11-023-1/+16
| | | | | | | | | | | This patch implements two things in front-end for MCU psABI support: 1) "long double type is the same as double." 2) "New predefined C/C++ pre-processor symbols: iamcu and iamcu__. Differential Revision: http://reviews.llvm.org/D14205 llvm-svn: 251786
* [PatternMatch] Switch to use ValueTracking::matchSelectPatternJames Molloy2015-11-021-39/+24
| | | | | | | Instead of rolling our own min/max matching code (which is notoriously hard to get completely right), use ValueTracking's instead. llvm-svn: 251785
* [Support] Extend sys::path with user_cache_directory function.Pawel Bylica2015-11-025-21/+119
| | | | | | | | | | | | | | | | | | | | Summary: The new function sys::path::user_cache_directory tries to discover a directory suitable for cache storage for current system user. On Windows and Darwin it returns a path to system-specific user cache directory. On Linux it follows XDG Base Directory Specification, what is: - use non-empty $XDG_CACHE_HOME env var, - use $HOME/.cache. Reviewers: chapuni, aaron.ballman, rafael Subscribers: rafael, aaron.ballman, llvm-commits Differential Revision: http://reviews.llvm.org/D13801 llvm-svn: 251784
* [MS ABI] Don't zero-initialize vbptrs in basesDavid Majnemer2015-11-025-14/+108
| | | | | | | | | | | | Certain CXXConstructExpr nodes require zero-initialization before a constructor is called. We had a bug in the case where the constructor is called on a virtual base: we zero-initialized the base's vbptr field. A complementary bug is present in MSVC where no zero-initialization occurs for the subobject at all. This fixes PR25370. llvm-svn: 251783
* [ELF2] Revert of r251692George Rimar2015-11-021-10/+0
| | | | llvm-svn: 251782
* AVX512: Implemented encoding and intrinsics for VBROADCASTI32x2 and ↵Igor Breger2015-11-028-0/+542
| | | | | | | | VBROADCASTF32x2 instructions. Differential Revision: http://reviews.llvm.org/D14216 llvm-svn: 251781
* [X86] Remove assertions that check for valid scale values on scatter/gather ↵Craig Topper2015-11-021-8/+0
| | | | | | intrinsics. Nothing upstream prevented illegal values from getting here. llvm-svn: 251780
* [X86] Don't pass a scale value of 0 to scatter/gather intrinsics. This ↵Craig Topper2015-11-021-52/+52
| | | | | | causes the code emitter to throw an assertion if we try to encode it. Need to add a check to fail isel for this, but for now avoid testing it. llvm-svn: 251779
* [X86] Fold 'if' followed by just an llvm_unreachable into an assert.Craig Topper2015-11-021-8/+7
| | | | llvm-svn: 251778
* [X86] Use isa instead of dyn_cast in a bool context. NFCCraig Topper2015-11-021-2/+2
| | | | llvm-svn: 251777
* [X86] Remove some llvm_unreachables after switches that already have an ↵Craig Topper2015-11-021-5/+3
| | | | | | unreachable in their default case. llvm-svn: 251776
* [X86] Remove a 'break' after an llvm_unreachable.Craig Topper2015-11-021-3/+1
| | | | llvm-svn: 251775
* [X86] Use cast instead of dyn_cast and a null check marked unreachable.Craig Topper2015-11-021-8/+3
| | | | llvm-svn: 251774
* Fix a -Wpessimizing-move warning.Craig Topper2015-11-021-1/+1
| | | | llvm-svn: 251773
* [X86] Use MVT instead of EVT when the type is known to be simple. NFCCraig Topper2015-11-022-89/+80
| | | | llvm-svn: 251772
* [PGO] Value profiling (index format) code cleanup and testingXinliang David Li2015-11-026-93/+418
| | | | | | | | | | | | | | | | | 1. Added a set of public interfaces in InstrProfRecord class to access (read/write) value profile data. 2. Changed IndexedProfile reader and writer code to use the newly defined interfaces and hide implementation details. 3. Added a couple of unittests for value profiling: - Test new interfaces to get and set value profile data - Test value profile data merging with various scenarios. No functional change is expected. The new interfaces will also make it possible to change on-disk format of value prof data to be more compact (to be submitted). llvm-svn: 251771
* [SCEV] Fix PR25369Sanjoy Das2015-11-022-27/+104
| | | | | | | | | | | | | Have `getConstantEvolutionLoopExitValue` work correctly with multiple entry loops. As far as I can tell, `getConstantEvolutionLoopExitValue` never did the right thing for multiple entry loops; and before r249712 it would silently return an incorrect answer. r249712 changed SCEV to fail an assert on a multiple entry loop, and this change fixes the underlying issue. llvm-svn: 251770
* Untabify.NAKAMURA Takumi2015-11-023-7/+7
| | | | llvm-svn: 251769
* Add 'nostdinc++' to the flags used by testit. Makes the tests run better on ↵Marshall Clow2015-11-011-1/+1
| | | | | | Mac OS X with the new depr.c headers change llvm-svn: 251768
* Improve the tests for 'is_literal_type'Marshall Clow2015-11-011-18/+62
| | | | llvm-svn: 251767
* Implement the first part of P0006R0: Adopt Type Traits Variable Templates ↵Marshall Clow2015-11-0135-2/+2510
| | | | | | for C++17. Significantly augment the existing tests. llvm-svn: 251766
* [LibraryInfo] Point to FreeBSD HEAD repo and not to a dolphin branch.Davide Italiano2015-11-011-2/+2
| | | | | | The latter might go away (anytime soon). llvm-svn: 251765
* AVX-512: Optimized SIMD truncate operations for AVX512F set.Elena Demikhovsky2015-11-014-83/+224
| | | | | | | | | | | | Optimized <8 x i32> to <8 x i16> <4 x i64> to < 4 x i32> <16 x i16> to <16 x i8> All these oprtrations use now AVX512F set (KNL). Before this change it was implemented with AVX2 set. Differential Revision: http://reviews.llvm.org/D14108 llvm-svn: 251764
* RuntimeDyld: add COFF i386 supportSaleem Abdulrasool2015-11-013-0/+268
| | | | | | | This adds support for COFF I386. This is sufficient for code execution in a 32-bit JIT, though, imported symbols need to custom lowered for the redirection. llvm-svn: 251761
* clang-format: Be slightly more cautious when formatting subsequent lines ↵Daniel Jasper2015-11-012-4/+40
| | | | | | | | | | | | | | | | | after a change. With r251474, clang-format could indent the entire rest of the file, if there is a missing closing brace, e.g. while writing code in an editor. Summary: With this change, clang-format stops formatting when either it leaves the current scope or when it comes back to the initial scope after going into a nested one. Reviewers: klimek Subscribers: cfe-commits, klimek Differential Revision: http://reviews.llvm.org/D14213 llvm-svn: 251760
* Make a few definitions static. NFC.Rafael Espindola2015-11-011-5/+6
| | | | llvm-svn: 251759
* Use Child instead of child_iterator in the archive writer.Rafael Espindola2015-11-013-12/+11
| | | | | | | We never need to pass end(). This will also remove some complication once we start adding error checking. llvm-svn: 251758
OpenPOWER on IntegriCloud