summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Allow to use vfs::FileSystem for file accesses inside ASTUnit.Ilya Biryukov2017-05-234-48/+134
| | | | | | | | | | | | Reviewers: bkramer, krasimir, arphaman, akyrtzi Reviewed By: bkramer Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D33397 llvm-svn: 303630
* [Polly][NewPM] Reenable ScopPassManager unittestPhilip Pfaffe2017-05-232-0/+2
| | | | llvm-svn: 303629
* Post-commit fix of a commentPhilip Pfaffe2017-05-231-1/+1
| | | | llvm-svn: 303628
* Add support for new (3.0.11+) swigsPavel Labath2017-05-231-1/+17
| | | | | | | | | | | | | | | | Summary: A change in swig 3.0.9 has caused it to generate modules incompatible with us using them as __init__.py (bug #769). Swig 3.0.11 adds a setting to help fix this problem, so use that. Support for older versions of swig remains unaffected. Reviewers: zturner Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D33409 llvm-svn: 303627
* [libclang] [OpenCL] Expose more OpenCL CIndex typesSven van Haastregt2017-05-234-3/+207
| | | | | | | | | | | | | | Expose pipe, sampler_t, clk_event_t, queue_t, reserve_id_t, and all image types. Update the opencl-types.cl test RUN line such that we can test the OpenCL 2.0 types. Patch by Simon Perretta. Differential Revision: https://reviews.llvm.org/D33197 llvm-svn: 303626
* [clangd] Explicitly link against pthread.Benjamin Kramer2017-05-231-0/+1
| | | | llvm-svn: 303625
* [Polly][NewPM] Port CodeGen to the new PMPhilip Pfaffe2017-05-232-189/+212
| | | | | | | | | | | | | | | | Summary: To move CG to the new PM I outlined the various helper that were previously members of the CG class into free static functions. The CG class itself I moved into a header, which is required because we need to include it in `RegisterPasses` eventually. Reviewers: grosser, Meinersbur Reviewed By: grosser Subscribers: pollydev, llvm-commits, sanjoy Tags: #polly Differential Revision: https://reviews.llvm.org/D33423 llvm-svn: 303624
* [clangd] Pick up deps via LLVM components, which will hopefully include pthread.Benjamin Kramer2017-05-231-3/+5
| | | | llvm-svn: 303623
* [Polly][NewPM] Port IslAst to the new ScopPassManagerPhilip Pfaffe2017-05-236-87/+135
| | | | | | | | | | | | | | | | Summary: This patch ports IslAst to the new PM. The change is mostly straightforward. The only major modification required is making IslAst move-only, to correctly manage the isl resources it owns. Reviewers: grosser, Meinersbur Reviewed By: grosser Subscribers: nemanjai, pollydev, llvm-commits Tags: #polly Differential Revision: https://reviews.llvm.org/D33422 llvm-svn: 303622
* [Polly][NewPM] Port DependenceInfo to the new ScopPassManager.Philip Pfaffe2017-05-232-0/+75
| | | | | | | | | | | | | | | | Summary: This patch ports DependenceInfo to the new ScopPassManager. Printing is implemented as a seperate printer pass. Reviewers: grosser, Meinersbur Reviewed By: grosser Subscribers: llvm-commits, pollydev Tags: #polly Differential Revision: https://reviews.llvm.org/D33421 llvm-svn: 303621
* [AMDGPU] SDWA: Add assembler support for GFX9Sam Kolton2017-05-2314-233/+820
| | | | | | | | | | | | | | | Summary: Added separate pseudo and real instruction for GFX9 SDWA instructions. Currently supports only in assembler. Depends D32493 Reviewers: vpykhtin, artem.tamazov Subscribers: arsenm, kzhuravl, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye Differential Revision: https://reviews.llvm.org/D33132 llvm-svn: 303620
* [mips] Make checks in CodeGen/mips-varargs.c less fragileSimon Dardis2017-05-231-33/+34
| | | | | | | | | | | | | | | | This test was failing on our fork of clang because it was not capturing [[ARG]] in the N32 case. Therefore it used the value from the last function which does not always have to be the same. All other cases were already capturing ARG so this appears to be an oversight. The test now uses -enable-var-scope to prevent such errors in the future. Reviewers: sdardis, atanasyan Patch by: Alexander Richardson Differential Revision: https://reviews.llvm.org/D32425 llvm-svn: 303619
* [AArch64] Make instruction fusion more aggressive. Florian Hahn2017-05-234-75/+91
| | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch makes instruction fusion more aggressive by * adding artificial edges between the successors of FirstSU and SecondSU, similar to BaseMemOpClusterMutation::clusterNeighboringMemOps. * updating PostGenericScheduler::tryCandidate to keep clusters together, similar to GenericScheduler::tryCandidate. This change increases the number of AES instruction pairs generated on Cortex-A57 and Cortex-A72. This doesn't change code at all in most benchmarks or general code, but we've seen improvement on kernels using AESE/AESMC and AESD/AESIMC. Reviewers: evandro, kristof.beyls, t.p.northover, silviu.baranga, atrick, rengolin, MatzeB Reviewed By: evandro Subscribers: aemerson, rengolin, MatzeB, javed.absar, llvm-commits Differential Revision: https://reviews.llvm.org/D33230 llvm-svn: 303618
* [GlobalISel][X86] G_LOAD/G_STORE vec256/512 supportIgor Breger2017-05-238-40/+568
| | | | | | | | | | | | | | Summary: mark G_LOAD/G_STORE vec256/512 legal for AVX/AVX512. Implement instruction selection. Reviewers: zvi, guyblank Reviewed By: zvi Subscribers: rovka, llvm-commits, kristof.beyls Differential Revision: https://reviews.llvm.org/D33268 llvm-svn: 303617
* [clangd] Split clangd into library+executable (mainly for unit tests).Ilya Biryukov2017-05-233-5/+22
| | | | | | | | | | | | | | | | | | Summary: This commit itself doesn't add any unit tests, but one that does will follow shortly. Reviewers: krasimir, bkramer Reviewed By: bkramer Subscribers: mgorny, klimek, cfe-commits Tags: #clang-tools-extra Differential Revision: https://reviews.llvm.org/D33395 llvm-svn: 303616
* [ScopInfo] Translate foldAccessRelation to isl C++ [NFC]Tobias Grosser2017-05-231-50/+47
| | | | llvm-svn: 303615
* [KnownBits] Use !hasConflict() in asserts in place of Zero & One == 0 or ↵Craig Topper2017-05-232-33/+33
| | | | | | similar. NFC llvm-svn: 303614
* [LV] Report multiple reasons for not vectorizing under allowExtraAnalysisAyal Zaks2017-05-233-37/+153
| | | | | | | | | | | | | | | | | | | | The default behavior of -Rpass-analysis=loop-vectorizer is to report only the first reason encountered for not vectorizing, if one is found, at which time the vectorizer aborts its handling of the loop. This patch allows multiple reasons for not vectorizing to be identified and reported, at the potential expense of additional compile-time, under allowExtraAnalysis which can currently be turned on by Clang's -fsave-optimization-record and opt's -pass-remarks-missed. Removed from LoopVectorizationLegality::canVectorize() the redundant checking and reporting if we CantComputeNumberOfIterations, as LAI::canAnalyzeLoop() also does that. This redundancy is caught by a lit test once multiple reasons are reported. Patch initially developed by Dror Barak. Differential Revision: https://reviews.llvm.org/D33396 llvm-svn: 303613
* [ScopInfo] Translate buildMemIntrinsicAccessRelation to isl C++ [NFC]Tobias Grosser2017-05-231-16/+16
| | | | llvm-svn: 303612
* [ScopInfo] Translate assumeNoOutOfBound to isl C++ [NFC]Tobias Grosser2017-05-231-26/+19
| | | | llvm-svn: 303611
* [ScopInfo] Translate applyAndSetFAD to isl C++Tobias Grosser2017-05-231-10/+6
| | | | llvm-svn: 303610
* libDebugInfo: Support symbolizing using DWP filesDavid Blaikie2017-05-236-13/+59
| | | | llvm-svn: 303609
* [ScopInfo] Translate isReadOnly to isl C++Tobias Grosser2017-05-231-8/+4
| | | | llvm-svn: 303608
* [AArch64] Fix PRR33100.Akira Hatanaka2017-05-232-7/+29
| | | | | | | | | | | | | This commit fixes a bug introduced in r301019 where optimizeLogicalImm would replace a logical node's immediate operand that was CSE'd and was also an operand of another node. This commit fixes the bug by replacing the logical node instead of its immediate operand. rdar://problem/32295276 llvm-svn: 303607
* Update expected result for or-branch.ll . NFCAmaury Sechet2017-05-231-13/+53
| | | | llvm-svn: 303606
* [coroutines] Skip over passthrough operator co_awaitGor Nishanov2017-05-232-0/+21
| | | | | | https://reviews.llvm.org/D31627 llvm-svn: 303605
* Added LLVM_FALLTHROUGH to address gcc warning: this statement may fall through.Galina Kistanova2017-05-231-0/+1
| | | | llvm-svn: 303604
* [coroutines] Add emission of initial and final suspendsGor Nishanov2017-05-233-11/+58
| | | | | | https://reviews.llvm.org/D31608 llvm-svn: 303603
* Cosmetic. Added braces to address gcc warning: suggest explicit braces to ↵Galina Kistanova2017-05-231-4/+8
| | | | | | avoid ambiguous 'else' [-Wdangling-else]. llvm-svn: 303602
* TypeStreamMerger.h: Fix a \param in r303577. [-Wdocumentation]NAKAMURA Takumi2017-05-231-1/+1
| | | | llvm-svn: 303601
* [ScopInfo] Simplify domains earlyTobias Grosser2017-05-232-0/+380
| | | | | | | | | | | | | This speeds up scop modeling for scops with many redundent existentially quantified constraints. For the attached test case, this change reduces scop modeling time from minutes (hours?) to 0.15 seconds. This change resolves a compilation timeout on the AOSP build. Thanks Eli for reporting _and_ reducing the test case! Reported-by: Eli Friedman <efriedma@codeaurora.org> llvm-svn: 303600
* [coroutines] Add support for deallocation elisionGor Nishanov2017-05-232-8/+58
| | | | | | | | | | Wrap deallocation code with: if (auto *mem = coro.free()) Deallocate When backend decides to elide allocations it will replace coro.free with nullptr to suppress deallocation code. llvm-svn: 303599
* [coroutines] Replace all coro.frame builtins with an SSA value of coro.beginGor Nishanov2017-05-234-23/+39
| | | | | | | | SemaCoroutine forms expressions referring to the coroutine frame of the enclosing coroutine using coro.frame builtin. During codegen, we emit llvm.coro.begin intrinsic that returns the address of the coroutine frame. When coro.frame is emitted, we replace it with SSA value of coro.begin. llvm-svn: 303598
* Added LLVM_FALLTHROUGH to address gcc warning: this statement may fall through.Galina Kistanova2017-05-231-0/+4
| | | | llvm-svn: 303597
* [coroutines] Add support for allocation elisionGor Nishanov2017-05-232-4/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: We wrap allocation code so that backend can elide it if necessary. llvm.coro.alloc intrinsic returns true, when allocation is needed and false otherwise. ``` %NeedAlloc = call i1 @llvm.coro.alloc(token %2) br i1 %NeedAlloc, label %AllocBB, label %InitBB AllocBB: %5 = call i64 @llvm.coro.size.i64() %call = call i8* @_Znwm(i64 %5) ; operator new br label %InitBB InitBB: %Phi = phi i8* [ null, %0 ], [ %call, %4 ] call i8* @llvm.coro.begin(token %2, i8* %Phi) ``` Reviewers: majnemer, EricWF Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D31584 llvm-svn: 303596
* Added LLVM_FALLTHROUGH to address gcc warning: this statement may fall through.Galina Kistanova2017-05-231-0/+1
| | | | llvm-svn: 303595
* [NFC, Refactor] Modernize TemplateIdAnnotation using TrailingObjectsFaisal Vali2017-05-234-66/+82
| | | | | | | | | | A refactoring of TemplateIdAnnotation that uses TrailingObjects to create a variably-sized object on the heap. https://reviews.llvm.org/D31414 Thanks to Aaron B for the review! llvm-svn: 303594
* Adjust clang test for r303590Teresa Johnson2017-05-231-4/+9
| | | | | | | Forgot to commit this separately from the llvm change to use a new module flag type for pic and pie levels. Should fix the bot errors llvm-svn: 303593
* FIX: Remove debugging assert left in previous commitDavid Blaikie2017-05-231-1/+0
| | | | | | Sorry for the bot noise. llvm-svn: 303592
* libDebugInfo: Avoid independently parsing the same .dwo file for two ↵David Blaikie2017-05-234-38/+47
| | | | | | | | | separate CUs residing there NFC, just an optimization. Will be building on this for DWP support shortly. llvm-svn: 303591
* Support for taking the max of module flags when linking, use for PIE/PICTeresa Johnson2017-05-237-14/+43
| | | | | | | | | | | | | | | | | | | | | | Summary: Add Max ModFlagBehavior, which can be used to take the max of two module flag values when merging modules. Use it for the PIE and PIC levels. This avoids an error when we try to import from a module built -fpic into a module built -fPIC, for example. For both PIE and PIC levels, this will be legal, since the code generation gets more conservative as the level is increased. Therefore we can take the max instead of somehow trying to block importing between modules compiled with different levels. Reviewers: tmsriram, pcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D33418 llvm-svn: 303590
* Add option to include multiple lines in snippets.Richard Smith2017-05-226-88/+404
| | | | | | | | | | | | When a diagnostic includes a highlighted range spanning multiple lines, clang now supports printing out multiple lines of context if necessary to show the highlighted ranges. This is not yet exposed in the driver, but can be enabled by "-Xclang -fcaret-diagnostics-max-lines -Xclang N". This is experimental until we can find out whether it works well in practice, and if so, what a good default for the maximum number of lines is. llvm-svn: 303589
* [InstSimplify] Fix the indentation throughout the interface header file.Craig Topper2017-05-221-135/+134
| | | | | | | | The forward declarations and the SimplifyQuery class at the beginning of the namespace weren't indented. But the closing brace for SimplifyQuery and everything after it were indented. This commit makes the whole file consistent to no identation per coding standards. The signature of every function in this file changed a few weeks ago so this isn't a big disturbance to the revision history. llvm-svn: 303588
* [NewPM] Fix an innocent but silly typo. Reported by Craig Topper.Davide Italiano2017-05-221-1/+1
| | | | llvm-svn: 303587
* [NewPM] Add a temporary cl::opt() to test NewGVN.Davide Italiano2017-05-221-2/+13
| | | | llvm-svn: 303586
* Added LLVM_FALLTHROUGH to address gcc warning: this statement may fall through.Galina Kistanova2017-05-221-0/+1
| | | | llvm-svn: 303585
* [coroutines] Fix coro-eh-cleanup.cpp testGor Nishanov2017-05-221-1/+1
| | | | llvm-svn: 303584
* [coroutines] Wrap the body of the coroutine in try-catchGor Nishanov2017-05-226-21/+125
| | | | | | | | | | | | | | | | | | | | | | Summary: If unhandled_exception member function is present in the coroutine promise, wrap the body of the coroutine in: ``` try { body } catch(...) { promise.unhandled_exception(); } ``` Reviewers: EricWF, rnk, rsmith Reviewed By: rsmith Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D31692 llvm-svn: 303583
* Give files from #line the characteristics of the current fileReid Kleckner2017-05-229-104/+66
| | | | | | | | | | This allows #line directives to appear in system headers that have code that clang would normally warn on. This is compatible with GCC, which is easy to test by running `gcc -E`. Fixes PR30752 llvm-svn: 303582
* [CodeGen] Fix uninitialized variables exposed by r303084Vitaly Buka2017-05-221-2/+2
| | | | | | | All other calls of analyzeBranch reset PredTBB and PredFBB, so I assume it's expected behavior. llvm-svn: 303581
OpenPOWER on IntegriCloud