summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [WebAssembly] FastISel: Don't fallback to SelectionDAG after BuildMI in ↵Sam Clegg2019-04-192-6/+24
| | | | | | | | | | | | | | | | | selectCall My understanding is that once BuildMI has been called we can't fallback to SelectionDAG. This change moves the fallback for when getRegForValue() fails for that target of an indirect call. This was failing in -fPIC mode when the callee is GlobalValue. Add a test case that tickles this. Differential Revision: https://reviews.llvm.org/D60908 llvm-svn: 358793
* [Tests] Split float test into float and doublesJonas Devlieghere2019-04-194-18/+76
| | | | | | | | As I was waiting for the test suite to complete at 99% I noticed this test taking quite a bit of time. Since it's easy to split I just went ahead and did so. llvm-svn: 358792
* [GVN+LICM] Use line 0 locations for better crash attributionVedant Kumar2019-04-194-14/+14
| | | | | | | | | | | | This is a follow-up to r291037+r291258, which used null debug locations to prevent jumpy line tables. Using line 0 locations achieves the same effect, but works better for crash attribution because it preserves the right inline scope. Differential Revision: https://reviews.llvm.org/D60913 llvm-svn: 358791
* Update GN files to build with r358103Vitaly Buka2019-04-193-2/+14
| | | | llvm-svn: 358790
* Remove the EnableEarlyCSEMemSSA set of options from the legacyEric Christopher2019-04-192-10/+2
| | | | | | | | | and new pass managers. They were default to true and not being used. Differential Revision: https://reviews.llvm.org/D60747 llvm-svn: 358789
* [AArch64] Fix checks for AArch64MCExpr::VK_SABS flag.Eli Friedman2019-04-191-2/+2
| | | | | | | | | | | | | | VK_SABS is part of the SymLoc bitfield in the variant kind which should be compared for equality, not by checking the VK_SABS bit. As far as I know, the existing code happened to produce the correct results in all cases, so this is just a cleanup. Patch by Stephen Crane. Differential Revision: https://reviews.llvm.org/D60596 llvm-svn: 358788
* [GlobalISel] Add IRTranslator support for G_FRINTJessica Paquette2019-04-192-0/+10
| | | | | | | | Add it as a simple intrinsic, update arm64-irtranslator.ll. Differential Revision: https://reviews.llvm.org/D60893 llvm-svn: 358787
* Attempt to fix buildbot failure in commit ↵Amy Huang2019-04-191-1/+1
| | | | | | 1bb57bac959ac163fd7d8a76d734ca3e0ecee6ab. llvm-svn: 358786
* [GlobalISel] Add a G_FRINT opcodeJessica Paquette2019-04-194-0/+14
| | | | | | | | Equivalent to SelectionDAG's frint node. Differential Revision: https://reviews.llvm.org/D60891 llvm-svn: 358785
* [X86] Add test case for D60801. NFCCraig Topper2019-04-191-0/+49
| | | | llvm-svn: 358784
* [MS] Emit S_HEAPALLOCSITE debug infoAmy Huang2019-04-197-1/+116
| | | | | | | | | | | | | | | | | Summary: This emits labels around heapallocsite calls and S_HEAPALLOCSITE debug info in codeview. Currently only changes FastISel, so emitting labels still needs to be implemented in SelectionDAG. Reviewers: hans, rnk Subscribers: aprantl, hiraditya, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D60800 llvm-svn: 358783
* [libc++] [test] Silence C++20 deprecation warnings in the MSVC STLCasey Carter2019-04-191-1/+2
| | | | | | ... when including msvc_stdlib_force_include.hpp. llvm-svn: 358782
* Reapply "[analyzer] Introduce a simplified API for adding custom path notes."Artem Dergachev2019-04-1910-40/+137
| | | | | | | | This reapplies commit r357323, fixing memory leak found by LSan. Differential Revision: https://reviews.llvm.org/D58367 llvm-svn: 358781
* [CMake] Add fuzzer as a component for runtime buildsChris Bieneman2019-04-191-0/+2
| | | | | | Calling `add_compiler_rt_component` sets up the component connection between runtime builds and the parent CMake configuration. Adding this call allows specifying `fuzzer` as a `LLVM_RUNTIME_DISTRIBUTION_COMPONENT`. llvm-svn: 358780
* [CMake] Pass monorepo build settings in cross compileChris Bieneman2019-04-191-0/+2
| | | | | | | | This allows the cross compiled build targets to configure the LLVM tools and sub-projects that are part of the main build. This is needed for generating native non llvm *-tablegen tools when cross compiling clang in the monorepo build environment. llvm-svn: 358779
* [MSVC] If unable to find link.exe from a MSVC installation, look for ↵Martin Storsjo2019-04-191-2/+12
| | | | | | | | | | | | | | | | link.exe next to cl.exe Previously, if the MSVC installation isn't detected properly, clang will later just fail to execute link.exe. This improves using clang in msvc mode on linux, where one intentionally might not want to point clang to the MSVC installation itself (which isn't executable as such), but where a link.exe named wine wrapper is available in the path next to a cl.exe named wine wrapper. Differential Revision: https://reviews.llvm.org/D60094 llvm-svn: 358778
* [Docs] Add more info about building the docsJonas Devlieghere2019-04-191-15/+27
| | | | | | Including the C++ and Python reference. llvm-svn: 358777
* This test doesn't need to be run for all debug formats.Jim Ingham2019-04-191-0/+1
| | | | llvm-svn: 358776
* Enable frame pointer elimination for OpenBSD on powerpc.Brad Smith2019-04-192-0/+5
| | | | llvm-svn: 358775
* [gn] Support dots in CMake paths in the sync scriptPetr Hosek2019-04-193-2/+2
| | | | | | | | Some file paths use dots to pick up sources from parent directories. Differential Revision: https://reviews.llvm.org/D60734 llvm-svn: 358774
* [Docs] Make Doxygen functionalJonas Devlieghere2019-04-194-36/+11
| | | | | | | | | This fixes the doxygen configuration to be functional again. I removed the customer header and footer, as well as the no-longer-existent style sheet. I also widened the scope of the documentation, from just the public API to include the private interfaces as well. llvm-svn: 358773
* [LICM & MemorySSA] Make limit flags pass tuning options.Alina Sbirlea2019-04-199-48/+99
| | | | | | | | | | | | | | Summary: Make the flags in LICM + MemorySSA tuning options in the old and new pass managers. Subscribers: mehdi_amini, jlebar, Prazek, george.burgess.iv, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60490 llvm-svn: 358772
* Revert "[GlobalISel] Add legalization support for non-power-2 loads and stores"Amara Emerson2019-04-195-153/+32
| | | | | | This introduces some runtime failures which I'll need to investigate further. llvm-svn: 358771
* Removed regiser dump checks from FP unit test.Mitch Phillips2019-04-191-41/+14
| | | | llvm-svn: 358770
* [HWASan] Added no-FP unit test for register dump.Mitch Phillips2019-04-191-12/+12
| | | | | | | | | | | | | | Summary: Unit test for D60798. Reviewers: eugenis Subscribers: kubamracek, #sanitizers, llvm-commits, pcc Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D60806 llvm-svn: 358769
* Updated test case.Mitch Phillips2019-04-191-7/+19
| | | | llvm-svn: 358768
* Added no-FP unit test for register dump.Mitch Phillips2019-04-191-0/+43
| | | | llvm-svn: 358767
* [OPENMP][NVPTX] target [teams distribute] simd maybe run withoutAlexey Bataev2019-04-193-17/+24
| | | | | | | | | runtime. target [teams distribute] simd costructs do not require full runtime for the correct execution, we can run them without full runtime. llvm-svn: 358766
* Update to use PipelineTuningOptions. Corresponds to llvm change: D59723.Alina Sbirlea2019-04-191-1/+1
| | | | llvm-svn: 358765
* [GlobalISel][AArch64] Legalize vector G_FPOWJessica Paquette2019-04-194-2/+299
| | | | | | | | | | This instruction is legalized in the same way as G_FSIN, G_FCOS, G_FLOG10, etc. Update legalize-pow.mir and arm64-vfloatintrinsics.ll to reflect the change. Differential Revision: https://reviews.llvm.org/D60218 llvm-svn: 358764
* [NewPassManager] Adding pass tuning options: loop vectorize.Alina Sbirlea2019-04-199-12/+63
| | | | | | | | | | | | | | | | Summary: Trying to add the plumbing necessary to add tuning options to the new pass manager. Testing with the flags for loop vectorize. Reviewers: chandlerc Subscribers: sanjoy, mehdi_amini, jlebar, steven_wu, dexonsmith, dang, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59723 llvm-svn: 358763
* [dsymutil] DwarfLinker: delete unused parameterFangrui Song2019-04-191-7/+6
| | | | llvm-svn: 358762
* [SelectionDAG] soften splat mask assert/unreachable (PR41535)Sanjay Patel2019-04-193-5/+26
| | | | | | | | These are general queries, so they should not die when given a degenerate input like an all undef mask. Callers should be able to deal with an op that will eventually be simplified away. llvm-svn: 358761
* llvm-undname: Attempt to fix leak-on-invalid found by oss-fuzzNico Weber2019-04-191-3/+6
| | | | llvm-svn: 358760
* [MinGW] Add an --appcontainer flag, passed through to lld-linkMartin Storsjo2019-04-193-0/+7
| | | | | | | | | GNU ld doesn't have such a flag though, so this is a lld specific option. Differential Revision: https://reviews.llvm.org/D60860 llvm-svn: 358759
* Debian: Add two missing version code in sidSylvestre Ledru2019-04-191-0/+2
| | | | llvm-svn: 358758
* Add support of the future Debian (Debian 11 - Bullseye)Sylvestre Ledru2019-04-192-1/+4
| | | | | | https://wiki.debian.org/DebianBullseye llvm-svn: 358757
* Add support of the next Ubuntu (Ubuntu 19.10 - Eoan EANIMAL)Sylvestre Ledru2019-04-192-1/+3
| | | | llvm-svn: 358756
* gn build: Merge r358722Nico Weber2019-04-191-0/+1
| | | | llvm-svn: 358755
* gn build: Merge r358691Nico Weber2019-04-192-0/+2
| | | | llvm-svn: 358754
* [LTO] Add plumbing to save stats during LTO on Darwin.Florian Hahn2019-04-195-13/+54
| | | | | | | | | | | | | | | | | | | | | Gold and ld on Linux already support saving stats, but the infrastructure is missing on Darwin. Unfortunately it seems like the configuration from lib/LTO/LTO.cpp is not used. This patch adds a new LTOStatsFile option and adds plumbing in Clang to use it on Darwin, similar to the way remarks are handled. Currnetly the handling of LTO flags seems quite spread out, with a bunch of duplication. But I am not sure if there is an easy way to improve that? Reviewers: anemet, tejohnson, thegameg, steven_wu Reviewed By: steven_wu Differential Revision: https://reviews.llvm.org/D60516 llvm-svn: 358753
* [analyzer][NFC] Reimplement checker optionsKristof Umann2019-04-199-36/+555
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TL;DR: * Add checker and package options to the TableGen files * Added a new class called CmdLineOption, and both Package and Checker recieved a list<CmdLineOption> field. * Added every existing checker and package option to Checkers.td. * The CheckerRegistry class * Received some comments to most of it's inline classes * Received the CmdLineOption and PackageInfo inline classes, a list of CmdLineOption was added to CheckerInfo and PackageInfo * Added addCheckerOption and addPackageOption * Added a new field called Packages, used in addPackageOptions, filled up in addPackage Detailed description: In the last couple months, a lot of effort was put into tightening the analyzer's command line interface. The main issue is that it's spectacularly easy to mess up a lenghty enough invocation of the analyzer, and the user was given no warnings or errors at all in that case. We can divide the effort of resolving this into several chapters: * Non-checker analyzer configurations: Gather every analyzer configuration into a dedicated file. Emit errors for non-existent configurations or incorrect values. Be able to list these configurations. Tighten AnalyzerOptions interface to disallow making such a mistake in the future. * Fix the "Checker Naming Bug" by reimplementing checker dependencies: When cplusplus.InnerPointer was enabled, it implicitly registered unix.Malloc, which implicitly registered some sort of a modeling checker from the CStringChecker family. This resulted in all of these checker objects recieving the name "cplusplus.InnerPointer", making AnalyzerOptions asking for the wrong checker options from the command line: cplusplus.InnerPointer:Optimisic istead of unix.Malloc:Optimistic. This was resolved by making CheckerRegistry responsible for checker dependency handling, instead of checkers themselves. * Checker options: (this patch included!) Same as the first item, but for checkers. (+ minor fixes here and there, and everything else that is yet to come) There were several issues regarding checker options, that non-checker configurations didn't suffer from: checker plugins are loaded runtime, and they could add new checkers and new options, meaning that unlike for non-checker configurations, we can't collect every checker option purely by generating code. Also, as seen from the "Checker Naming Bug" issue raised above, they are very rarely used in practice, and all sorts of skeletons fell out of the closet while working on this project. They were extremely problematic for users as well, purely because of how long they were. Consider the following monster of a checker option: alpha.cplusplus.UninitializedObject:CheckPointeeInitialization=false While we were able to verify whether the checker itself (the part before the colon) existed, any errors past that point were unreported, easily resulting in 7+ hours of analyses going to waste. This patch, similarly to how dependencies were reimplemented, uses TableGen to register checker options into Checkers.td, so that Checkers.inc now contains entries for both checker and package options. Using the preprocessor, Checkers.inc is converted into code in CheckerRegistry, adding every builtin (checkers and packages that have an entry in the Checkers.td file) checker and package option to the registry. The new addPackageOption and addCheckerOption functions expose the same functionality to statically-linked non-builtin and plugin checkers and packages as well. Emitting errors for incorrect user input, being able to list these options, and some other functionalies will land in later patches. Differential Revision: https://reviews.llvm.org/D57855 llvm-svn: 358752
* Change \r\n -> \n for llvm-symbolizer/help.test after rL358749Fangrui Song2019-04-191-8/+8
| | | | llvm-svn: 358751
* [analyzer] Fix an assertion failure if plugins added dependenciesKristof Umann2019-04-193-10/+43
| | | | | | | | | | | | | | | | | | | Ideally, there is no reason behind not being able to depend on checkers that come from a different plugin (or on builtin checkers) -- however, this is only possible if all checkers are added to the registry before resolving checker dependencies. Since I used a binary search in my addDependency method, this also resulted in an assertion failure (due to CheckerRegistry::Checkers not being sorted), since the function used by plugins to register their checkers (clang_registerCheckers) calls addDependency. This patch resolves this issue by only noting which dependencies have to established when addDependency is called, and resolves them at a later stage when no more checkers are added to the registry, by which point CheckerRegistry::Checkers is already sorted. Differential Revision: https://reviews.llvm.org/D59461 llvm-svn: 358750
* [llvm-symbolizer] Add llvm-addr2lineIgor Kudrin2019-04-1912-2/+128
| | | | | | | | | | | | | This adds an alias for llvm-symbolizer with different defaults so that it can be used as a drop-in replacement for GNU's addr2line. If a substring "addr2line" is found in the tool's name: * it defaults "-i", "-f" and "-C" to OFF; * it uses "--output-style=GNU" by default. Differential Revision: https://reviews.llvm.org/D60067 llvm-svn: 358749
* [llvm-symbolizer] Unhide and document the "-output-style" optionIgor Kudrin2019-04-192-1/+32
| | | | | | | | | With the latest changes, the option gets useful for users of llvm-symbolizer, not only for the upcoming llvm-addr2line. Differential Revision: https://reviews.llvm.org/D60816 llvm-svn: 358748
* [llvm-symbolizer] Make the output with -output-style=GNU closer to addr2line'sIgor Kudrin2019-04-194-1/+49
| | | | | | | | | | | | | | | | This patch addresses two differences in the output of llvm-symbolizer and GNU's addr2line: * llvm-symbolizer prints an empty line after the report for an address. * With "-f -i=0", llvm-symbolizer replaces the name of an inlined function with the name from the symbol table, i. e., the top caller function in the inlining chain. addr2line preserves the name of the inlined function. Differential Revision: https://reviews.llvm.org/D60770 llvm-svn: 358747
* [AMDGPU] Regenerate extractelt->truncate test. Simon Pilgrim2019-04-191-27/+117
| | | | | | Prep work for D60462 llvm-svn: 358746
* [LibTooling] Fix -Wsign-compare after r358697Bjorn Pettersson2019-04-191-2/+2
| | | | llvm-svn: 358745
* [CodeGen] Add "const" to MachineInstr::mayAliasBjorn Pettersson2019-04-1921-75/+98
| | | | | | | | | | | | | | | | | | | | | | | | Summary: The basic idea here is to make it possible to use MachineInstr::mayAlias also when the MachineInstr is const (or the "Other" MachineInstr is const). The addition of const in MachineInstr::mayAlias then rippled down to the need for adding const in several other places, such as TargetTransformInfo::getMemOperandWithOffset. Reviewers: hfinkel Reviewed By: hfinkel Subscribers: hfinkel, MatzeB, arsenm, jvesely, nhaehnle, hiraditya, javed.absar, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60856 llvm-svn: 358744
OpenPOWER on IntegriCloud