summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Enhance -Wc++14-compat for class template argument deduction to list theRichard Smith2018-09-103-8/+14
| | | | | | deduced type (if known). llvm-svn: 341858
* [Windows] Include BaseTsd.h with lowercaseMartin Storsjo2018-09-101-1/+1
| | | | | | | | | | This fixes building on a case sensitive filesystem with mingw-w64 headers, where all headers are lowercase. This header actually also is named with a lowercase name in the Windows SDK as well. Differential Revision: https://reviews.llvm.org/D51877 llvm-svn: 341857
* [lit] Disable shtest-timeout on WindowsStella Stamenova2018-09-102-5/+3
| | | | | | | | | | | | Summary: This is the only test that is still failing on Windows - or rather, it is expected to fail on the bots, but passes on the new bot that we're preparing causing a failure, so I'm going to disable it. Since the test has rarely, if ever, passed on the bots, this should have the same effect and it will unblock the creation of the new bot. Reviewers: asmith, delcypher, zturner Subscribers: stella.stamenova, llvm-commits Differential Revision: https://reviews.llvm.org/D51871 llvm-svn: 341856
* API to update MemorySSA for cloned blocks and added CFG edges.Alina Sbirlea2018-09-105-17/+804
| | | | | | | | | | | | | | | | Summary: End goal is to update MemorySSA in all loop passes. LoopUnswitch clones all blocks in a loop. SimpleLoopUnswitch clones some blocks. LoopRotate clones some instructions. Some of these loop passes also make CFG changes. This is an API based on what I found needed in LoopUnswitch, SimpleLoopUnswitch, LoopRotate, LoopInstSimplify, LoopSimplifyCFG. Adding dependent patches using this API for context. Reviewers: george.burgess.iv, dberlin Subscribers: sanjoy, jlebar, Prazek, llvm-commits Differential Revision: https://reviews.llvm.org/D45299 llvm-svn: 341855
* [clang-tidy] ExprMutationAnalyzer: construct from references. Fixes PR38888Roman Lebedev2018-09-105-17/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: I have hit this the rough way, while trying to use this in D51870. There is no particular point in storing the pointers, and moreover the pointers are assumed to be non-null, and that assumption is not enforced. If they are null, it won't be able to do anything good with them anyway. Initially i thought about simply adding asserts() that they are not null, but taking/storing references looks like even cleaner solution? Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=38888 | PR38888 ]] Reviewers: JonasToth, shuaiwang, alexfh, george.karpenkov Reviewed By: shuaiwang Subscribers: xazax.hun, a.sidorin, Szelethus, cfe-commits Tags: #clang-tools-extra Differential Revision: https://reviews.llvm.org/D51884 llvm-svn: 341854
* NFC: bit.h don't warn on strict aliasing for GCC <= 7.1JF Bastien2018-09-101-0/+8
| | | | | | | | | | Summary: Addressed https://bugs.llvm.org/show_bug.cgi?id=38885 Subscribers: dexonsmith, llvm-commits, rsmith, steven_wu, RKSimon, Abhilash, srhines Differential Revision: https://reviews.llvm.org/D51869 llvm-svn: 341853
* [ADT] Support converting to lowercase string in toHexPetr Hosek2018-09-102-5/+8
| | | | | | | | This is useful in certain use-cases such as D51833. Differential Revision: https://reviews.llvm.org/D51835 llvm-svn: 341852
* [Hexagon] Split large offsets into properly aligned addendsKrzysztof Parzyszek2018-09-101-0/+9
| | | | llvm-svn: 341851
* [InstCombine] use SelectInst operand names to make code clearer; NFCSanjay Patel2018-09-101-8/+10
| | | | | | Cleanup step for D51433. llvm-svn: 341850
* Fix raw address breakpoints not resolvingTed Woodward2018-09-104-23/+45
| | | | | | | | | | | | | | Summary: An address breakpoint of the form "b 0x1000" won't resolve if it's created while the process isn't running. This patch deletes Address::SectionWasDeleted, renames Address::SectionWasDeletedPrivate to SectionWasDeleted (and makes it public), and changes the section check in Breakpoint::ModulesChanged back to its original form Reviewers: jingham, #lldb Reviewed By: jingham Subscribers: davide, lldb-commits Differential Revision: https://reviews.llvm.org/D51816 llvm-svn: 341849
* [clang-tidy] Handle unresolved expressions in ExprMutationAnalyzerShuai Wang2018-09-102-10/+126
| | | | | | | | | | | | | | Summary: - If a function is unresolved, assume it mutates its arguments - Follow unresolved member expressions for nested mutations Reviewers: aaron.ballman, JonasToth, george.karpenkov Subscribers: xazax.hun, a.sidorin, cfe-commits Differential Revision: https://reviews.llvm.org/D50619 llvm-svn: 341848
* [clang-cl] Enable -march optionAlexandre Ganea2018-09-102-1/+2
| | | | | | | | This change allows usage of -march when using the clang-cl driver. This is similar to MSVC's /arch; however -march can target precisely all supported CPUs, while /arch has a more restricted set. Differential Revision: https://reviews.llvm.org/D51806 llvm-svn: 341847
* [MinGW] Hook up the --require-defined option to -include:Martin Storsjo2018-09-103-0/+9
| | | | | | Differential Revision: https://reviews.llvm.org/D51840 llvm-svn: 341846
* [x86] test codegen for unsigned saturated add; NFCSanjay Patel2018-09-101-0/+949
| | | | | | | | | | | | | All of the ISA holes are going to make this difficult, but we can't canonicalize the IR and try to solve PR14613 until we have backend support to get this right. https://bugs.llvm.org/show_bug.cgi?id=14613 https://rise4fun.com/Alive/Guv https://rise4fun.com/Alive/AADG llvm-svn: 341845
* [ARC] Fix macro usage (DEBUG -> LLVM_DEBUG)Tatyana Krasnukha2018-09-101-1/+1
| | | | llvm-svn: 341844
* [AMDGPU] Preliminary patch for divergence driven instruction selection. ↵Alexander Timofeev2018-09-102-5/+218
| | | | | | | | | | Inline immediate move to V_MADAK_F32. Differential revision: https://reviews.llvm.org/D51586 Reviewer: rampitec llvm-svn: 341843
* Remove all uses of DIFlagBlockByrefStructAdrian Prantl2018-09-103-23/+47
| | | | | | | | | | | | This patch removes the last reason why DIFlagBlockByrefStruct from Clang by directly implementing the drilling into the member type done in DwarfDebug::DbgVariable::getType() into the frontend. rdar://problem/31629055 Differential Revision: https://reviews.llvm.org/D51807 llvm-svn: 341842
* [AST] Visit memtransfer arguments in orderPhilip Reames2018-09-102-9/+9
| | | | | | | | | | The only point to this change is the test diffs. When I remove this code entirely (in favor of the recently added generic handling), I don't want there to be any confusion due to spurious test diffs. As an aside, the fact out tests are AST construction order dependent is not great. I thought about fixing that, but the reasonable schemes I might want (e.g. sort by name) need the test diffs anyways. Philip llvm-svn: 341841
* [MIPS GlobalISel] Select icmpPetar Jovanovic2018-09-107-0/+1152
| | | | | | | | | | Select 32bit integer compare instructions for MIPS32. Patch by Petar Avramovic. Differential Revision: https://reviews.llvm.org/D51489 llvm-svn: 341840
* HotColdSplitting: fix test failing because of last commitSebastian Pop2018-09-101-3/+1
| | | | llvm-svn: 341839
* HotColdSplitting: check that target supports cold calling conventionSebastian Pop2018-09-101-4/+13
| | | | | | | | | Before tagging a function with coldcc make sure the target supports cold calling convention. Without this patch HotColdSplitting pass fails on aarch64 with: fatal error: error in backend: Unsupported calling convention. llvm-svn: 341838
* add flag instead of using a constant [NFC]Sebastian Pop2018-09-101-1/+5
| | | | llvm-svn: 341837
* make flag name more specific to gvn [NFC]Sebastian Pop2018-09-101-2/+2
| | | | llvm-svn: 341836
* [LSR] Add tests for small constants; NFCGil Rapaport2018-09-101-0/+151
| | | | | | | | | LSR reassociates small constants that fit into add immediate operands as unfolded offset. Since unfolded offset is not combined with loop-invariant registers, LSR does not consider solutions that bump invariant registers by these constants outside the loop. llvm-svn: 341835
* [OMPT] Update types according to TR7Joachim Protze2018-09-1016-129/+198
| | | | | | | | | | | | | | | | | | Some types and callback signatures have changed from TR6 to TR7. Major changes (only adding signatures and stubs): (-remove idle callback) done by D48362 -add reduction and dispatch callback -add get_task_memory and finalize_tool runtime entry points -ompt_invoker_t becomes ompt_parallel_flag_t -more types of sync_regions Patch provided by Simon Convent Reviewers: hbae, protze.joachim Differential Revision: https://reviews.llvm.org/D50774 llvm-svn: 341834
* Prevent cpu-specific/cpu-dispatch from giong on a lambda.Erich Keane2018-09-102-0/+11
| | | | | | | It is non-sensical to use cpu-specific/cpu-dispatch multiversioning on a lambda, so prevent it when trying to add the attribute. llvm-svn: 341833
* [clangd] Unbreak buildbots after r341802Kirill Bobyrev2018-09-101-1/+1
| | | | | Solution: use std::move when returning result from toJSON(...). llvm-svn: 341832
* InstCombine: move hasOneUse check to the top of foldICmpAddConstantTim Northover2018-09-106-9/+26
| | | | | | | | | | | | There were two combines not covered by the check before now, neither of which actually differed from normal in the benefit analysis. The most recent seems to be because it was just added at the top of the function (naturally). The older is from way back in 2008 (r46687) when we just didn't put those checks in so routinely, and has been diligently maintained since. llvm-svn: 341831
* [clangd] Add unittests for D51038Kadir Cetinkaya2018-09-101-0/+50
| | | | | | | | | | | | Reviewers: ilya-biryukov, ioeric, hokein Reviewed By: ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D51039 llvm-svn: 341830
* Buildfix for r341825Alexandre Ganea2018-09-101-3/+3
| | | | llvm-svn: 341827
* [Sparc] Move SparcTargetStreamer.h to the MC Desc, where the implementation ↵Benjamin Kramer2018-09-102-4/+3
| | | | | | is already llvm-svn: 341826
* [LLD][COFF] Cleanup error messages / add more coverage testsAlexandre Ganea2018-09-108-25/+476
| | | | | | | | | | | | - Log the reason for a PDB or precompiled-OBJ load failure - Properly handle out-of-date PDB or precompiled-OBJ signature by displaying a corresponding error - Slightly change behavior on PDB failure: any subsequent load attempt from another OBJ would result in the same error message being logged - Slightly change behavior on PDB failure: retry with filename only if previous error was ENOENT ("no such file or directory") - Tests: a. for native PDB errors; b. cover all the cases above Differential Revision: https://reviews.llvm.org/D51559 llvm-svn: 341825
* [clang] Make sure codecompletion is called for calls even when inside a token.Kadir Cetinkaya2018-09-108-4/+88
| | | | | | | | | | | | | | | | | Summary: Currently CodeCompleteCall only gets called after a comma or parantheses. This patch makes sure it is called even at the cases like: ```foo(1^);``` Reviewers: ilya-biryukov, ioeric, hokein Reviewed By: ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D51038 llvm-svn: 341824
* Remove an effectively unused local variable.Nico Weber2018-09-101-3/+2
| | | | llvm-svn: 341823
* [Target] Untangle disassemblersBenjamin Kramer2018-09-1015-43/+37
| | | | | | | Disassemblers cannot depend on main target headers. The same is true for MCTargetDesc, but there's a lot more cleanup needed for that. llvm-svn: 341822
* Don't create a temporary vector of loop blocks just to iterate over them.Benjamin Kramer2018-09-103-14/+9
| | | | | | Loop's getBlocks returns an ArrayRef. llvm-svn: 341821
* [GVN] Invalidate cached info for values replaced by equality propagationJohn Brawn2018-09-102-0/+78
| | | | | | | | | When GVN propagates an equality by replacing one value with another it also needs to invalidate the cached information for the value being replaced. Differential Revision: https://reviews.llvm.org/D51218 llvm-svn: 341820
* AMDGPU: Remove function pointer type hackMatt Arsenault2018-09-101-7/+4
| | | | | | | Now the pointer size should always be correct and we don't need to improperly inspect the pointee type. llvm-svn: 341806
* AMDGPU: Stop reporting is-noop addrspacecast for constant 32-bitMatt Arsenault2018-09-102-2/+8
| | | | | | | This will require something to cast. Before this would eliminate the cast, which would result in copies of $noreg. llvm-svn: 341803
* [clangd] Implement FuzzyFindRequest JSON (de)serializationKirill Bobyrev2018-09-103-3/+33
| | | | | | | | | | | | JSON (de)serialization of `FuzzyFindRequest` might be useful for both D51090 and D51628. Also, this allows precise logging of the fuzzy find requests. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D51852 llvm-svn: 341802
* DAG: Handle odd vector sizes in calling conv splittingMatt Arsenault2018-09-109-55/+81
| | | | | | | | | | | | | | This already worked if only one register piece was used, but didn't if a type was split into multiple, unequal sized pieces. Fixes not splitting 3i16/v3f16 into two registers for AMDGPU. This will also allow fixing the ABI for 16-bit vectors in a future commit so that it's the same for all subtargets. llvm-svn: 341801
* [clangd] Add symbol slab size to index memory consumption estimatesKirill Bobyrev2018-09-106-19/+37
| | | | | | | | | | | | | Currently, `SymbolIndex::estimateMemoryUsage()` returns the "overhead" estimate, i.e. the estimate of the Index data structure excluding backing data (such as Symbol Slab and Reference Slab). This patch propagates information about paired data size where necessary. Reviewed By: ioeric, sammccall Differential Revision: https://reviews.llvm.org/D51539 llvm-svn: 341800
* [llvm-exegesis] Ignore double spaced separators in asm stringsSimon Pilgrim2018-09-101-1/+1
| | | | | | | | Some asm has double spaces between operands, the deserializer was keeping these empty split pieces, causing assertions later on: 'ADC16mi RDI i_0x1x i_0x0x i_0x1x' llvm-svn: 341799
* [AMDGPU] Prevent sequences of non-instructions disrupting ↵Carl Ritson2018-09-102-2/+76
| | | | | | | | | | | | | | | | | | GCNHazardRecognizer wait state counting Summary: This fixes a bug where a large number of implicit def instructions can fill the GCNHazardRecognizer lookahead buffer causing required NOPs to not be inserted. Reviewers: nhaehnle, arsenm Reviewed By: arsenm Subscribers: sheredom, kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, llvm-commits Differential Revision: https://reviews.llvm.org/D51726 Change-Id: Ie75338f94de704ee5816b05afd0c922c6748a95b llvm-svn: 341798
* [clangd] Fix async index loading (from r341376).Sam McCall2018-09-101-1/+4
| | | | | | | | | | | | | | | | | | | | | Summary: This wasn't actually async (due to std::future destructor blocking). If it were, we would have clean shutdown issues if main returned and destroyed Placeholder before the thread is done with it. We could attempt to avoid any blocking by using shared_ptr or weak_ptr tricks so the thread can detect Placeholder's destruction, but there are other potential issues (e.g. loadIndex does tracing, and we'll destroy the tracer...) Instead, once LSPServer::run returns, we wait for the index to finish loading before exiting. Performance is not critical in this situation. Reviewers: ilya-biryukov Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D51674 llvm-svn: 341797
* [Analyzer] Commit fix for rL341790/rC341790Adam Balogh2018-09-101-0/+175
| | | | | | Test file was accidentally not added for rL341790/rC341790 and subsequant patches. llvm-svn: 341795
* [Analyzer] Iterator Checker - Part 8: Support for assign, clear, insert, ↵Adam Balogh2018-09-104-3/+616
| | | | | | | | | | emplace and erase operations This patch adds support for the following operations in the iterator checkers: assign, clear, insert, insert_after, emplace, emplace_after, erase and erase_after. This affects mismatched iterator checks ("this" and parameter must match) and invalidation checks (according to the standard). Differential Revision: https://reviews.llvm.org/D32904 llvm-svn: 341794
* [Analyzer] Iterator Checker - Part 7: Support for push and pop operationsAdam Balogh2018-09-105-1/+550
| | | | | | | | This patch adds support for the following operations in the iterator checkers: push_back, push_front, emplace_back, emplace_front, pop_back and pop_front. This affects iterator range checks (range is extended after push and emplace and reduced after pop operations) and invalidation checks (according to the standard). Differential Revision: https://reviews.llvm.org/D32902 llvm-svn: 341793
* [Analyzer] Iterator Checker - Part 6: Mismatched iterator checker for ↵Adam Balogh2018-09-101-1/+60
| | | | | | | | | | constructors and comparisons Extension of the mismatched iterator checker for constructors taking range of first..last (first and last must be iterators of the same container) and also for comparisons of iterators of different containers (one does not compare iterators of different containers, since the set of iterators is partially ordered, there are no relations between iterators of different containers, except that they are always non-equal). Differential Revision: https://reviews.llvm.org/D32860 llvm-svn: 341792
* [Analyzer] Iterator Checker - Part 5: Move Assignment of ContainersAdam Balogh2018-09-101-6/+153
| | | | | | | | If a container is moved by its move assignment operator, according to the standard all their iterators except the past-end iterators remain valid but refer to the new container. This patch introduces support for this case in the iterator checkers. Differential Revision: https://reviews.llvm.org/D32859 llvm-svn: 341791
OpenPOWER on IntegriCloud