summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Update the Visual Studio Integration from user feedback.Zachary Turner2018-08-273-69/+55
| | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the MSBuild warnings about options that clang-cl ignores. It also adds several additional fields to the LLVM Configuration options page. The first is that it adds support for LLD! To give the user flexibility though, we don't want to force LLD to always-on, and if we're not forcing LLD then we might as well not force clang-cl either. So we add options that can enable or disable lld, clang-cl, or any combination of the two. Whenever one is disabled, it falls back to the Microsoft equivalent. Additionally, for each of clang-cl and lld-link, we add a new configuration setting that allows Additional Options to be passed for that specific tool only. This is similar to the C/C++ > Command Line > Additional Options entry box, but it serves the use case where a user switches back and forth between the toolsets in their vcxproj, but where cl.exe won't accept some options that clang-cl will. In this case you can pass those options in the clang-cl additional options and whenever clang-cl is disabled (or the other toolset is selected entirely), those options won't get passed at all. llvm-svn: 340780
* Fix typoAdrian Prantl2018-08-271-1/+1
| | | | llvm-svn: 340779
* Fix ODR violation: namespace-scope helpers should not be declared 'static'.Richard Smith2018-08-271-1/+1
| | | | llvm-svn: 340778
* Revert "[SCEV][NFC] Check NoWrap flags before lexicographical comparison of ↵Roman Tereshin2018-08-275-18/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SCEVs" This reverts r319889. Unfortunately, wrapping flags are not a part of SCEV's identity (they do not participate in computing a hash value or in equality comparisons) and in fact they could be assigned after the fact w/o rebuilding a SCEV. Grep for const_cast's to see quite a few of examples, apparently all for AddRec's at the moment. So, if 2 expressions get built in 2 slightly different ways: one with flags set in the beginning, the other with the flags attached later on, we may end up with 2 expressions which are exactly the same but have their operands swapped in one of the commutative N-ary expressions, and at least one of them will have "sorted by complexity" invariant broken. 2 identical SCEV's won't compare equal by pointer comparison as they are supposed to. A real-world reproducer is added as a regression test: the issue described causes 2 identical SCEV expressions to have different order of operands and therefore compare not equal, which in its turn prevents LoadStoreVectorizer from vectorizing a pair of consecutive loads. On a larger example (the source of the test attached, which is a bugpoint) I have seen even weirder behavior: adding a constant to an existing SCEV changes the order of the existing terms, for instance, getAddExpr(1, ((A * B) + (C * D))) returns (1 + (C * D) + (A * B)). Differential Revision: https://reviews.llvm.org/D40645 llvm-svn: 340777
* Set line endings to Windows on MSBuild files.Zachary Turner2018-08-272-252/+252
| | | | | | Normally we force Unix line endings in the repository, but since these are Windows files which are consumed by Microsoft tools that we don't have the source of, we should probably err on the side of caution and force CRLF. llvm-svn: 340776
* [X86] Reverse the check prefixes in the test added in r340774.Craig Topper2018-08-271-497/+497
| | | | | | The 32-bit and 64-bit checks were reversed. llvm-svn: 340775
* [X86] Add test cases to show current codegen of v2i32 div/rem in 32-bit and ↵Craig Topper2018-08-271-0/+624
| | | | | | | | 64-bit modes In particular this shows that we end up using libcalls in 32-bit mode even for division by constant. llvm-svn: 340774
* [x86] add tests for possibly avoiding scalar->vector move; NFCSanjay Patel2018-08-271-0/+437
| | | | llvm-svn: 340773
* [OpenMP][NVPTX] Use appropriate _CALL_ELF macro when offloadingGheorghe-Teodor Bercea2018-08-272-5/+12
| | | | | | | | | | | | | | Summary: When offloading to a device and using the powerpc64le version of the auxiliary triple, the _CALL_ELF macro is not set correctly to 2 resulting in the attempt to include a header that does not exist. This patch fixes this problem. Reviewers: Hahnfeld, ABataev, caomhin Reviewed By: Hahnfeld Subscribers: guansong, cfe-commits Differential Revision: https://reviews.llvm.org/D51312 llvm-svn: 340772
* [OpenMP][Fix] Conditional compilation leaves variables unusedGheorghe-Teodor Bercea2018-08-271-0/+2
| | | | | | | | | | | | | | Summary: Prevent variables from being left unused by conditional compilation. Reviewers: ABataev, grokos, Hahnfeld, caomhin, protze.joachim Reviewed By: Hahnfeld Subscribers: guansong, openmp-commits Differential Revision: https://reviews.llvm.org/D51303 llvm-svn: 340771
* [PPC] Remove Darwin support from POWER backend.Kit Barton2018-08-276-57/+7
| | | | | | | | | | | | | | This patch removes uses of the Darwin ABI for PowerPC related test cases. This is the first step in removing Darwin support from the POWER backend. clang/test/CodeGen/darwin-ppc-varargs.c was deleted because it was a darwin/ppc specific test case. All other tests were updated to remove the darwin/ppc specific invocation. Phabricator Review: https://reviews.llvm.org/D50989. llvm-svn: 340770
* [lsan] Check that leak sanitizer works in the forked processVitaly Buka2018-08-271-0/+23
| | | | | | Regression test for PR38698 llvm-svn: 340769
* [llvm-mca] Remove unused include. NFCAndrea Di Biagio2018-08-271-1/+0
| | | | llvm-svn: 340768
* [OpenMP][libomptarget] rework of fatal error reportingAlexandre Eichenberger2018-08-273-23/+21
| | | | | | | | | | | | | | | | Summary: Removed the function that used a lock and varargs Used the same mechanism as for debug messages Reviewers: ABataev, gtbercea, grokos, Hahnfeld Reviewed By: gtbercea, Hahnfeld Subscribers: mikerice, ABataev, RaviNarayanaswamy, guansong, openmp-commits Differential Revision: https://reviews.llvm.org/D51226 llvm-svn: 340767
* DAG: Check transformed type for forming fminnum/fmaxnum from vselectMatt Arsenault2018-08-273-46/+15
| | | | | | Follow up to r340655 to fix vector types which are split. llvm-svn: 340766
* [Sema/Attribute] Make types declared with address_space an AttributedTypeLeonard Chan2018-08-273-13/+26
| | | | | | | | | | | | | | | Currently an address_space is stored in a qualifier. This makes any type declared with an address_space attribute in the form `__attribute__((address_space(1))) int 1;` be wrapped in an AttributedType. This is for a later patch where if `address_space` is declared in a macro, any diagnostics that would normally print the address space will instead dump the macro name. This will require saving any macro information in the AttributedType. Differential Revision: https://reviews.llvm.org/D51229 llvm-svn: 340765
* [sanitizer][fuzzer] Transition back to ZX_TIME_INFINITEPetr Hosek2018-08-272-11/+5
| | | | | | | | | | Now that all Zircon calls have been transitioned to take time as signed value, we can transition back to ZX_TIME_INFINITE, undoing the change made in r337802. Differential Revision: https://reviews.llvm.org/D51266 llvm-svn: 340764
* MachineVerifier: Fix assert on implicit virtreg useMatt Arsenault2018-08-272-2/+25
| | | | | | | | | If the liveness of a physical register was invalid, this was attempting to iterate the subregisters of all register uses of the instruction, which would assert when it encountered an implicit virtual register operand. llvm-svn: 340763
* LangRef: Clarify expected sNaN behavior for minnum/maxnumMatt Arsenault2018-08-271-10/+27
| | | | | | | This matches the de-facto behavior based on constant folding and the default lowering to fmin/fmax. llvm-svn: 340762
* [PowerPC][MC] Support expressions in getMemRIX16Encoding.Sean Fertile2018-08-272-3/+47
| | | | | | | | | | Loosens an assert in getMemRIX16Encoding that restricts DQ-form instructions to using an immediate, so that we can assemble instructions like lxv/stxv where the offset is an expression. Differential Revision: https://reviews.llvm.org/D51122 llvm-svn: 340761
* [NVPTX] Implement isLegalToVectorizeLoadChainBenjamin Kramer2018-08-272-0/+42
| | | | | | | | This lets LSV nicely split up underaligned chains. Differential Revision: https://reviews.llvm.org/D51306 llvm-svn: 340760
* Cleanup after rL340729Kirill Bobyrev2018-08-271-13/+12
| | | | llvm-svn: 340759
* Revert "[lsan] Do not check for leaks in the forked process"Vitaly Buka2018-08-272-44/+0
| | | | | | | | Users need leak reports in forks. This reverts commit r334036. llvm-svn: 340758
* [X86] When lowering v32i8 MULHS/MULHU, shuffle after the PACKUS rather than ↵Craig Topper2018-08-276-58/+42
| | | | | | | | | | before. We're using a 256-bit PACKUS to do the truncation, but that instruction operates on 128-bit lanes. So previously we shuffled first to rearrange the lanes. But that requires 2 shuffles. Instead we can shuffle after the PACKUS using a single VPERMQ. This matches what our normal LowerTRUNCATE code does when it uses PACKUS. Differential Revision: https://reviews.llvm.org/D51284 llvm-svn: 340757
* [X86] Add support for matching paddus patterns where one of the vectors is a ↵Craig Topper2018-08-272-1614/+266
| | | | | | | | | | constant. InstCombine mucks these up a bit. So we need to do some additional pattern matching to fix it. There are a still a few special cases not handled, but this covers the general case. Differential Revision: https://reviews.llvm.org/D50952 llvm-svn: 340756
* [llvm-mca] Introduce the llvm-mca library and organize the directory ↵Matt Davis2018-08-2741-62/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | accordingly. NFC. Summary: This patch introduces llvm-mca as a library. The driver (llvm-mca.cpp), views, and stats, are not part of the library. Those are separate components that are not required for the functioning of llvm-mca. The directory has been organized as follows: All library source files now reside in: - `lib/HardwareUnits/` - All subclasses of HardwareUnit (these represent the simulated hardware components of a backend). (LSUnit does not inherit from HardwareUnit, but Scheduler does which uses LSUnit). - `lib/Stages/` - All subclasses of the pipeline stages. - `lib/` - This is the root of the library and contains library code that does not fit into the Stages or HardwareUnit subdirs. All library header files now reside in the `include` directory and mimic the same layout as the `lib` directory mentioned above. In the (near) future we would like to move the library (include and lib) contents from tools and into the core of llvm somewhere. That change would allow various analysis and optimization passes to make use of MCA functionality for things like cost modeling. I left all of the non-library code just where it has always been, in the root of the llvm-mca directory. The include directives for the non-library source file have been updated to refer to the llvm-mca library headers. I updated the llvm-mca/CMakeLists.txt file to include the library headers, but I made the non-library code explicitly reference the library's 'include' directory. Once we eventually (hopefully) migrate the MCA library components into llvm the include directives used by the non-library source files will be updated to point to the proper location in llvm. Reviewers: andreadb, courbet, RKSimon Reviewed By: andreadb Subscribers: mgorny, javed.absar, tschuett, gbedwell, llvm-commits Differential Revision: https://reviews.llvm.org/D50929 llvm-svn: 340755
* [llvm-mca] Remove unused method. NFC.Matt Davis2018-08-271-1/+0
| | | | llvm-svn: 340754
* [lit, python] Remove quotes around %python in cache.llStella Stamenova2018-08-271-10/+10
| | | | | | | | | | | | Summary: We needed quotes around %python before to make python work correctly (on Windows) if the path contains spaces. I recently made a change so that %python now inherently has quotes, so now adding quotes around %python makes the test fail because the quotes cancel each other. Reviewers: asmith, inglorion Subscribers: mehdi_amini, eraman, steven_wu, dexonsmith, llvm-commits Differential Revision: https://reviews.llvm.org/D51244 llvm-svn: 340753
* Mark P0556 as 'in progress'Marshall Clow2018-08-271-2/+2
| | | | llvm-svn: 340752
* Use a lambda for calls to ::open in RetryAfterSignalHans Wennborg2018-08-272-3/+8
| | | | | | | | | | In Bionic, open can be overloaded for _FORTIFY_SOURCE support, causing compile errors of RetryAfterSignal due to overload resolution. Wrapping the call in a lambda avoids this. Based on a patch by Chih-Wei Huang <cwhuang@linux.org.tw>! llvm-svn: 340751
* [WebAssembly] Added default stack-only instruction mode for MC.Wouter van Oortmerssen2018-08-2797-427/+951
| | | | | | | | | | | | | | | | | | | | | Summary: Made it convert from register to stack based instructions, and removed the registers. Fixes to related code that was expecting register based instructions. Added the correct testing flag to all tests, depending on what the format they were expecting so far. Translated one test to stack format as example: reg-stackify-stack.ll tested: llvm-lit -v `find test -name WebAssembly` unittests/MC/* Reviewers: dschuff, sunfish Subscribers: sbc100, jgravelle-google, eraman, aheejin, llvm-commits, jfb Differential Revision: https://reviews.llvm.org/D51241 llvm-svn: 340750
* [docs] Mention clangd-dev in clangd documentationKirill Bobyrev2018-08-271-1/+4
| | | | | | | | | | | | Since the clangd-dev is intended to be the place for clangd-related discussions, we should point new users to this mailing list while probably mentioning cfe-dev, too. Reviewed by: ioeric Differential Revision: https://reviews.llvm.org/D51293 llvm-svn: 340749
* Let the CompilerInstance create our clang ASTContextRaphael Isemann2018-08-271-10/+5
| | | | | | | | | | | | | | | | | | Summary: Now that we moved the BuiltinContext and SelectorTable to the CompilerInstance, we can also get rid of manually creating our own ASTContext, but just use the one from the CompilerInstance (which will be created with the same settings). Reviewers: vsk, aprantl, davide Reviewed By: davide Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D51253 llvm-svn: 340748
* Disable use-color if the output stream is not a terminal with color support.Raphael Isemann2018-08-274-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: LLDB currently only checks the output terminal for color support by looking at the `TERM` environment variable and comparing it to `"dumb"`. This causes that when running LLDB on a CI node, the syntax highlighter will not be deactivated by LLDB and the output log is filled with color codes (unless the terminal emulator actually exposes itself as dumb). This patch now relies on the LLVM code for detecting color support which is more reliable. We now also correctly actually initialize the `m_supports_colors` variable in `File`. `m_supports_colors` was so far uninitialized, but the code path that uses `m_supports_colors` was also dead so the sanitizers didn't sound an alarm. The old check that compares `TERM` is not removed by this patch as the new LLVM code doesn't seem to handle this case (and it's a good thing to check for "dumb" terminals). Reviewers: aprantl, javed.absar Reviewed By: aprantl Subscribers: kristof.beyls, abidh, lldb-commits Differential Revision: https://reviews.llvm.org/D51243 llvm-svn: 340747
* [llvm-mca] Improved report generated by the SchedulerStatistics view.Andrea Di Biagio2018-08-279-109/+231
| | | | | | | | | | | | | Before this patch, the SchedulerStatistics only printed the maximum number of buffer entries consumed in each scheduler's queue at a given point of the simulation. This patch restructures the reported table, and adds an extra field named "Average number of used buffer entries" to it. This patch also uses different colors to help identifying bottlenecks caused by high scheduler's buffer pressure. llvm-svn: 340746
* [OpenMP][Fix] Ensure comparison between unsigned values.Gheorghe-Teodor Bercea2018-08-271-1/+1
| | | | | | | | | | | | | | Summary: Ensure the values being compared are both unsigned. Reviewers: ABataev, Hahnfeld, caomhin, grokos, AndreyChurbanov Reviewed By: AndreyChurbanov Subscribers: AndreyChurbanov, guansong, openmp-commits Differential Revision: https://reviews.llvm.org/D51301 llvm-svn: 340745
* fix comment typoNico Weber2018-08-273-3/+3
| | | | llvm-svn: 340744
* fix comment typoNico Weber2018-08-271-1/+1
| | | | llvm-svn: 340743
* fix comment typoNico Weber2018-08-271-1/+1
| | | | llvm-svn: 340742
* [SelectionDAG] add helper query for binops; NFCSanjay Patel2018-08-272-11/+14
| | | | | | We will also use this in a planned enhancement for vector insertelement. llvm-svn: 340741
* [PowerPC] Revert commit r339779Nemanja Ivanovic2018-08-276-109/+23
| | | | | | | This commit has caused failures in some internal benchmarks. Temporarily reverting this patch until the issue can be diagnosed and fixed. llvm-svn: 340740
* [ELF][HEXAGON] Add R_HEX_11/10/9_X supportSid Manning2018-08-272-0/+30
| | | | | | Differential Revision: https://reviews.llvm.org/D51225 llvm-svn: 340739
* Handle identifying AMDGPU bitcode filesMatt Arsenault2018-08-273-0/+27
| | | | llvm-svn: 340738
* [X86] Adding the test pointing to the fail case of D45653Aleksandr Urakov2018-08-271-0/+29
| | | | | | | | Summary: This commit adds the case of tail calling a sret function from a non-sret function when both functions have the C calling convention. llvm-svn: 340737
* [Sparc] Avoid writing outside array in applyFixupDaniel Cederman2018-08-272-3/+23
| | | | | | | | | | | | | | | | Summary: If an object file ends with a relocation that is smaller than 4 bytes we will write outside the Data array and trigger an "Invalid index" assertion. Reviewers: jyknight, venkatra Reviewed By: jyknight Subscribers: fedor.sergeev, jrtc27, llvm-commits Differential Revision: https://reviews.llvm.org/D50971 llvm-svn: 340736
* [NFC][X86] Fix `sibcall.ll` formattingAleksandr Urakov2018-08-271-317/+303
| | | | | | | | Summary: Remove unnecessary lines from `sibcall.ll` and rename labels according to @RKSimon's recommendations in the D45653 conversation. llvm-svn: 340735
* [PowerPC] Recommit r340016 after fixing the reported issueNemanja Ivanovic2018-08-275-3/+55
| | | | | | | | The internal benchmark failure reported by Google was due to a missing check for the result type for the sign-extend and shift DAG. This commit adds the check and re-commits the patch. llvm-svn: 340734
* [Sparc] Add support for the cycle counter available in GR740Daniel Cederman2018-08-277-2/+36
| | | | | | | | | | | | | | | | | Summary: The GR740 provides an up cycle counter in the registers ASR22 and ASR23. As these registers can not be read together atomically we only use the value of ASR23 for llvm.readcyclecounter(). The ASR23 register holds the 32 LSBs of the up-counter. Reviewers: jyknight, venkatra Reviewed By: jyknight Subscribers: jfb, fedor.sergeev, jrtc27, llvm-commits Differential Revision: https://reviews.llvm.org/D48638 llvm-svn: 340733
* [NFC] Try to make buildbot happy about virtual destructorsMax Kazantsev2018-08-271-0/+2
| | | | llvm-svn: 340732
* [clangd] Use TRUE iterator instead of complete posting listKirill Bobyrev2018-08-271-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Stop using `$$$` (empty) trigram and generating a posting list with all items. Since TRUE iterator is already implemented and correctly inserted when there are no real trigram posting lists, this is a valid transformation. Benchmarks show that this simple change allows ~30% speedup on dataset of real completion queries. Before ``` ------------------------------------------------------- Benchmark Time CPU Iterations ------------------------------------------------------- DexAdHocQueries 5640321 ns 5640265 ns 120 DexRealQ 939835603 ns 939830296 ns 1 ``` After ``` ------------------------------------------------------- Benchmark Time CPU Iterations ------------------------------------------------------- DexAdHocQueries 3452014 ns 3451987 ns 203 DexRealQ 667455912 ns 667455750 ns 1 ``` Reviewed by: ilya-biryukov Differential Revision: https://reviews.llvm.org/D51287 llvm-svn: 340729
OpenPOWER on IntegriCloud