summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [AVX-512] Remove masked vector insert builtins and replace with native ↵Craig Topper2016-11-0110-221/+276
| | | | | | | | shufflevectors and selects. Unfortunately, the backend currently doesn't fold masks into the instructions correctly when they come from these shufflevectors. I'll work on that in a future commit. llvm-svn: 285667
* [index] Avoid using a RecursiveASTVisitor for SyntacticFormIndexer and ↵Argyrios Kyrtzidis2016-11-011-43/+14
| | | | | | | | iterate the DesignatedInitExprs of the InitListExpr directly. This is more efficient, as per feedback by Richard. llvm-svn: 285666
* [TBAA] Use wrapper objects instead of raw getOperand s; NFCSanjoy Das2016-11-011-33/+47
| | | | | | | | | | | | This is intended to make the semantic intent clearer. The wrapper objects are now generic to avoid `const_cast` s. Since `const` ness is part of the API of `MDNode::getMostGenericTBAA` (and therefore I can't make things `const` all the way through without some code churn outside TypeBasedAliasAnalysis.cpp), this seemed like the cleanest solution. llvm-svn: 285665
* Implement ABI proposal for throwing noexcept function pointers, per discussionRichard Smith2016-11-016-11/+177
| | | | | | | | on cxx-abi-dev (thread starting 2016-10-11). This is currently hidden behind a cc1-only -m flag, pending discussion of how best to deal with language changes that require use of new symbols from the ABI library. llvm-svn: 285664
* p0012: Teach resolving address of overloaded function with dependent exceptionRichard Smith2016-11-013-7/+45
| | | | | | | | specification to resolve the exception specification as part of the type check, in C++1z onwards. This is not actually part of P0012 / CWG1330 rules for when an exception specification is "needed", but is necessary for sanity. llvm-svn: 285663
* Fix a bug where the EmulateInstructionARM64 handling of STP/LDP instructionsJason Molenda2016-11-012-120/+290
| | | | | | | | | | | | | | | for floating point registers was not recording them correctly. I needed to change the EmulateInstructionARM64 unwind plans from using the DWARF register numbering scheme to using the LLDB register numbering scheme (because dwarf doesn't define register numbers for the 64-bit "d" registers). Updated the EmulateInstructionARM64 unit tests to work with the LLDB register numbering scheme and added a unit test to check the floating point register spills & restores are correctly recorded. https://reviews.llvm.org/D25864 <rdar://problem/28745483> llvm-svn: 285662
* [TBAA] Rename accessors to be more idiomatic; NFCSanjoy Das2016-11-011-10/+10
| | | | llvm-svn: 285661
* Bitcode: Simplify BitstreamWriter::EnterBlockInfoBlock() interface.Peter Collingbourne2016-11-015-6/+6
| | | | | | | | | | | No block info block should need to define local abbreviations, so we can always use a code width of 2. Also change all block info block writers to use EnterBlockInfoBlock. Differential Revision: https://reviews.llvm.org/D26168 llvm-svn: 285660
* AMDGPU: Whitespace fixesMatt Arsenault2016-11-018-40/+38
| | | | llvm-svn: 285659
* Remove executable bit on a source fileStephane Sezer2016-11-011-0/+0
| | | | llvm-svn: 285658
* [ReachableCode] Skip over ExprWithCleanups in isConfigurationValueTim Shen2016-11-013-0/+20
| | | | | | | | | | | | Summary: Fixes pr29152. Reviewers: rsmith, pirama, krememek Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D24010 llvm-svn: 285657
* [DAG] disable nsw/nuw for add/sub/mul when simplifying based on demanded ↵Sanjay Patel2016-10-312-7/+43
| | | | | | | | | | | | | | | | bits (PR30841) This bug was exposed by using nsw/nuw for more aggressive folds in: https://reviews.llvm.org/rL284844 The changes mimic the IR demanded bits logic in InstCombiner::SimplifyDemandedUseBits(), but we can't just flip flag bits in the DAG; we have to create a new node that has the bits cleared. This should fix: https://llvm.org/bugs/show_bug.cgi?id=30841 llvm-svn: 285656
* [modules] Mark deleted functions as implicitly inline to allow mergingEric Fiselier2016-10-312-0/+4
| | | | | | | | | | | | Summary: When merging definitions with ModulesLocalVisibility enabled it's important to make deleted definitions implicitly inline, otherwise they'll be diagnosed as a redefinition. Reviewers: silvas, manmanren, rsmith Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D26143 llvm-svn: 285655
* [Hexagon] Garbage collect dead code.Davide Italiano2016-10-311-17/+0
| | | | llvm-svn: 285654
* [clang-tidy] Update cert-err58-cpp to match its new generalised form.Malcolm Parsons2016-10-313-48/+105
| | | | | | | | | | | | | | Summary: Aaron modified cert-err58-cpp to include all exceptions thrown before main() Update the check to match. Reviewers: aaron.ballman Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25925 llvm-svn: 285653
* Fix a typo.Evgeniy Stepanov2016-10-311-1/+1
| | | | | | Found with PVS-Studio here: http://www.viva64.com/en/b/0446/ llvm-svn: 285652
* [CMake] Populate the build directory's frameworkChris Bieneman2016-10-312-3/+14
| | | | | | | | This ensures that the Resources and clang headers are properly symlinked in LLDB's framework. This should fix the modules-related tests when building on Darwin with CMake if you are building a framework. I have another fix coming which gets them working on Darwin if you're building liblldb instead of a framework. llvm-svn: 285651
* [cfi] Fix missing !type annotation.Evgeniy Stepanov2016-10-312-5/+20
| | | | | | | CFI (only in the cross-dso mode) fails to set !type annotations when a function is used before it is defined. llvm-svn: 285650
* CodeGen: further loosen -O0 CG for WoA divisionSaleem Abdulrasool2016-10-314-31/+42
| | | | | | | | | | | | Generate the slowest possible codepath for noopt CodeGen. Even trying to be clever with the negated jump can cause out-of-range jumps. Use a wide branch instead. Although the code is modelled simplistically, the later optimizations would recombine the branching into `cbz` if possible. This re-enables the previous optimization as well as hopefully gives us working code in all cases. Addresses PR30356! llvm-svn: 285649
* [ThinLTO] Disable importing and other cross-module optis at -O0Teresa Johnson2016-10-316-27/+115
| | | | | | | | | | | | | | | | Summary: There is no point to importing at -O0, since we won't inline. We should also disable other cross-module optimizations. (Plan to backport this fix to the 3.9 branch to fix PR30774) Reviewers: pcc Subscribers: johanengelen, mehdi_amini Differential Revision: https://reviews.llvm.org/D25918 llvm-svn: 285648
* [index] Fix repeated visitation of the same InitListExpr for indexing.Argyrios Kyrtzidis2016-10-312-0/+50
| | | | | | | | It was visited multiple times unnecessarily. rdar://28985038 llvm-svn: 285647
* [Test-Suite] Speculative fix for darwin botsChris Bieneman2016-10-311-2/+2
| | | | | | When building with Xcode it looks like some of the logic in my test changes went haywire. This should fix it. llvm-svn: 285646
* [Release notes] Highlight reset() as language/library artifact.Eugene Zelenko2016-10-311-1/+1
| | | | llvm-svn: 285645
* [ASTMatcher] Add CXXNewExpr support to hasDeclarationMalcolm Parsons2016-10-314-9/+79
| | | | | | | | | | Reviewers: sbenza, lukasza, aaron.ballman, klimek Subscribers: lukasza, sbenza, cfe-commits Differential Revision: https://reviews.llvm.org/D26032 llvm-svn: 285644
* A compound literal within a global lambda or block is still withinJohn McCall2016-10-314-2/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the body of a function for the purposes of computing its storage duration and deciding whether its initializer must be constant. There are a number of problems in our current treatment of compound literals. C specifies that a compound literal yields an l-value referring to an object with either static or automatic storage duration, depending on where it was written; in the latter case, the literal object has a lifetime tied to the enclosing scope (much like an ObjC block), not the enclosing full-expression. To get these semantics fully correct in our current design, we would need to collect compound literals on the ExprWithCleanups, just like we do with ObjC blocks; we would probably also want to identify literals like we do with materialized temporaries. But it gets stranger; GCC adds compound literals to C++ as an extension, but makes them r-values, which are generally assumed to have temporary storage duration. Ignoring destructor ordering, the difference only matters if the object's address escapes the full-expression, which for an r-value can only happen with reference binding (which extends temporaries) or array-to-pointer decay (which does not). GCC then attempts to lock down on array-to-pointer decay in ad hoc ways. Arguably a far superior language solution for C++ (and perhaps even array r-values in C, which can occur in other ways) would be to propagate lifetime extension through array-to-pointer decay, so that initializing a pointer object to a decayed r-value array extends the lifetime of the complete object containing the array. But this would be a major change in semantics which arguably ought to be blessed by the committee(s). Anyway, I'm not fixing any of that in this patch; I did try, but it got out of hand. Fixes rdar://28949016. llvm-svn: 285643
* [NVPTX] Remove NVPTXFavorNonGenericAddrSpaces pass.Justin Lebar2016-10-3110-335/+23
| | | | | | | | | | | | | | | Summary: This has been replaced by the NVPTXInferAddressSpaces pass. We've had the new one as the default with the old one accessible via a flag for some months now, and we've had no problems. Reviewers: tra Subscribers: llvm-commits, jholewinski, jingyue, mgorny Differential Revision: https://reviews.llvm.org/D26165 llvm-svn: 285642
* The expr '.' is not absolute.Rafael Espindola2016-10-315-20/+67
| | | | | | | | | | | | | | With this patch we keep track of the fact that . is a position in the file and therefore not absolute. This allow us to compute relative relocations that involve symbol that are defined in linker scripts with '.'. This fixes https://llvm.org/bugs/show_bug.cgi?id=30406 There is still more work to track absoluteness over the various expressions, but this should unblock linking the EFI bootloader. llvm-svn: 285641
* [analyzer] Allow undefined values in performTrivialCopy.Artem Dergachev2016-10-312-1/+35
| | | | | | | | | | | Reading from a garbage pointer should be modeled as garbage, and performTrivialCopy should be able to deal with any SVal input. Patch by Ilya Palachev! Differential Revision: https://reviews.llvm.org/D25727 llvm-svn: 285640
* docs: trying to fix the docs bot by removing non-ASCII characters. The docs ↵Kostya Serebryany2016-10-311-2/+2
| | | | | | build fine on my machine, bot fail on the bot (http://lab.llvm.org:8011/builders/llvm-sphinx-docs/builds/25/steps/docs-llvm-html/logs/stdio) llvm-svn: 285639
* Re-commit r285607: Emit Section Map stream."Rui Ueyama2016-10-312-3/+57
| | | | | | Removed some test fields that overspecified test conditions. llvm-svn: 285638
* [analyzer] MacOSXAPIChecker: Improve warnings for __block vars in dispatch_once.Artem Dergachev2016-10-312-2/+27
| | | | | | | | | | The checker already warns for __block-storage variables being used as a dispatch_once() predicate, however it refers to them as local which is not quite accurate, so we fix that. Differential Revision: https://reviews.llvm.org/D26159 llvm-svn: 285637
* fix _dyld_find_unwind_sections() for pre-10.7. Patch by Jeremy SequoiaNick Kledzik2016-10-311-16/+22
| | | | llvm-svn: 285636
* [tsan] Enable the tsan/libcxx/ testcase(s) on DarwinKuba Brecka2016-10-311-1/+3
| | | | | | | | Apparently, the std_shared_ptr.cc testcase works fine on Darwin, even without the instrumented libcxx. Let's enable it. Differential Revision: https://reviews.llvm.org/D26162 llvm-svn: 285634
* Remove llc -jump-table-type option, it hasn't been functional for years.Joerg Sonnenberger2016-10-312-21/+1
| | | | llvm-svn: 285633
* More additional error checks for invalid Mach-O files whenKevin Enderby2016-10-314-5/+58
| | | | | | | | | | | the offsets and sizes of an element of the file overlaps with another element in the Mach-O file. This shows the approach to this testing for three elements and contains for tests for their overlap. Checking for all the remain elements will be added next. llvm-svn: 285632
* Add comment explaining this mysterious macro name.Richard Smith2016-10-311-0/+3
| | | | llvm-svn: 285631
* [tsan] Implement WriteMemoryProfile for DarwinKuba Brecka2016-10-312-7/+71
| | | | | | | | TSan’s memory usage profiling currently doesn’t work on Darwin. This patch implements measuring the amount of resident and dirty memory for each memory region. I also removed the GetShadowMemoryConsumption function, which seems to be unused. Differential Revision: https://reviews.llvm.org/D25973 llvm-svn: 285630
* Revert "Add a space to work around a Windows CPython / MSys quoting bug"Reid Kleckner2016-10-312-2/+2
| | | | | | | | | This reverts commit r284768. After LLVM r285237, the lit shell interpreter works around this bug for us. llvm-svn: 285629
* Delay computation of IsAbsolute.Rafael Espindola2016-10-313-8/+50
| | | | | | | | | | We parse linker scripts very early, but whether an expression is absolute or not can depend on a symbol defined in a .o. Given that, we have to delay the computation of IsAbsolute. We can do that by storing an AST when parsing or by also making IsAbsolute a function like we do for the expression value. This patch implements the second option. llvm-svn: 285628
* [PPC] add absolute difference altivec instructions and matching intrinsicsNemanja Ivanovic2016-10-315-0/+78
| | | | | | | This patch corresponds to review https://reviews.llvm.org/D26072. Committing on behalf of Sean Fertile. llvm-svn: 285627
* DebugInfo: support for DW_TAG_atomic_typeVictor Leschuk2016-10-312-3/+9
| | | | | | | | Mark C11 _Atomic variables with DW_TAG_atomic_type tag. Differential Revision: https://reviews.llvm.org/D26145 llvm-svn: 285625
* DebugInfo: make DW_TAG_atomic_type validVictor Leschuk2016-10-3110-5/+88
| | | | | | | | | | | | | | DW_TAG_atomic_type was already included in Dwarf.defs and emitted correctly, however Verifier didn't recognize it as valid. Thus we introduce the following changes: * Make DW_TAG_atomic_type valid tag for IR and DWARF (enabled only with -gdwarf-5) * Add it to related docs * Add DebugInfo tests Differential Revision: https://reviews.llvm.org/D26144 llvm-svn: 285624
* NFC - Reorder test case names in a PPC test caseNemanja Ivanovic2016-10-311-28/+28
| | | | | | | A few recent commits have messed up the order of some tests in a PPC test case. This just reorders them in a sensible way. llvm-svn: 285623
* Fix per-processor model scheduler definition completeness checkUlrich Weigand2016-10-311-1/+2
| | | | | | | | | | | | | | | The CodeGenSchedModels::checkCompleteness routine in TableGen/ CodeGenSchedule.cpp is supposed to verify for each processor model that is marked as "complete" that it actually defines a scheduling class for each instruction. However, this did not work correctly due to an incorrect check whether a scheduling class has an itinerary. Reviewer: atrick Differential revision: https://reviews.llvm.org/D26156 llvm-svn: 285622
* Simple numeric constants are absolute.Rafael Espindola2016-10-312-1/+11
| | | | llvm-svn: 285621
* [asan] Move instrumented null-terminated strings to a special section, ↵Kuba Brecka2016-10-312-2/+23
| | | | | | | | | | compiler-rt part On Darwin, simple C null-terminated constant strings normally end up in the __TEXT,__cstring section of the resulting Mach-O binary. When instrumented with ASan, these strings are transformed in a way that they cannot be in __cstring (the linker unifies the content of this section and strips extra NUL bytes, which would break instrumentation), and are put into a generic __const section. This breaks some of the tools that we have: Some tools need to scan all C null-terminated strings in Mach-O binaries, and scanning all the contents of __const has a large performance penalty. This patch instead introduces a special section, __asan_cstring which will now hold the instrumented null-terminated strings. Differential Revision: https://reviews.llvm.org/D25026 llvm-svn: 285620
* [asan] Move instrumented null-terminated strings to a special section, LLVM partKuba Brecka2016-10-312-0/+29
| | | | | | | | On Darwin, simple C null-terminated constant strings normally end up in the __TEXT,__cstring section of the resulting Mach-O binary. When instrumented with ASan, these strings are transformed in a way that they cannot be in __cstring (the linker unifies the content of this section and strips extra NUL bytes, which would break instrumentation), and are put into a generic __const section. This breaks some of the tools that we have: Some tools need to scan all C null-terminated strings in Mach-O binaries, and scanning all the contents of __const has a large performance penalty. This patch instead introduces a special section, __asan_cstring which will now hold the instrumented null-terminated strings. Differential Revision: https://reviews.llvm.org/D25026 llvm-svn: 285619
* Revert r285607: Emit Section Map stream.Rui Ueyama2016-10-312-57/+3
| | | | | | That change broke buildbots. llvm-svn: 285618
* Fixing problem with CodeGen/avx512-kconstraints-att_inline_asm.c Michael Zuckerman2016-10-311-9/+9
| | | | llvm-svn: 285617
* [MC] Make llvm-mc fail cleanly on invalid output asm variant.Nirav Dave2016-10-312-0/+11
| | | | | | | | | | | | Fixes PR28488. Reviewers: rnk, majnemer Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D25834 llvm-svn: 285616
OpenPOWER on IntegriCloud