summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [NFC] simplify Darwin environment handlingJF Bastien2019-07-301-16/+12
| | | | | | | The previous code detected conflicts through copy-pasta, this versions uses a 'loop'. llvm-svn: 367350
* [NVPTX] Fix PR41651Michael Liao2019-07-302-2/+15
| | | | | | | | | | | | | | | Summary: - Use the passed `DL` directly as retrieving data layout from CS by checking the called function is not reliable. Under indirect function call, there is no called function. Subscribers: jholewinski, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65468 llvm-svn: 367349
* [dsymutil] Pass LinkOptions by value instead of const ref.Jonas Devlieghere2019-07-303-6/+6
| | | | | | | | | | | | | When looping over the difference architectures in a fat binary, we modify the link options before dispatching the link step to a different thread. Passing the options by cont reference is not thread safe, as we might modify its fields before the whole sturct is copied over. Given that the link options are already stored in the DwarfLinker, we can easily fix this by passing a copy of the link options instead of a reference, which would just get copied later on. llvm-svn: 367348
* [AMDGPU] Reserve all AGPRs on targets which do not have themStanislav Mekhanoshin2019-07-303-11/+19
| | | | | | Differential Revision: https://reviews.llvm.org/D65471 llvm-svn: 367347
* [Parser] Lambda capture lists can start with '*'Erik Pilkington2019-07-302-0/+14
| | | | | | Fixes llvm.org/PR42778 llvm-svn: 367346
* [NFC][clang] Refactor getCompilationPhases()+Types.def step 3.Puyan Lotfi2019-07-303-64/+68
| | | | | | | | | Dropping the 'u' entry and the entire Flags table from Types.def. Now it'll be a bit easier to tablegenify this. Differential Revision: https://reviews.llvm.org/D65308 llvm-svn: 367345
* [AMDGPU/GlobalISel] Add llvm.amdgcn.fdiv.fast legalization.Austin Kerbow2019-07-306-9/+114
| | | | | | | | | | | | | | Reviewers: arsenm Reviewed By: arsenm Subscribers: volkan, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, Petar.Avramovic, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64966 llvm-svn: 367344
* [OpenMP] Rename last file to cpp and remove LIBOMP_CFLAGSJonas Hahnfeld2019-07-306-33/+11
| | | | | | | | | | | | | All other files are already C++ and the build system has always passed '-x c++' for C files, effectively compiling them as C++. To stay warning free we need one fix in ittnotify_static.{c,cpp}: The variable dll_path can be written to, so it must not be const. GCC complained with -Wcast-qual and I think it's right. Differential Revision: https://reviews.llvm.org/D65285 llvm-svn: 367343
* [FunctionAttrs] Annotate "willreturn" for AssumeLikeInstHideto Ueno2019-07-302-7/+4
| | | | | | | | | | | | | | | | | Summary: In D37215, AssumeLikeInstruction are regarded as `willreturn`. In this patch, annotation is added to those which don't have `willreturn` now(`sideeffect, object_size, experimental_widenable_condition`). Reviewers: jdoerfert, nikic, sstefan1 Reviewed By: nikic Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65455 llvm-svn: 367342
* gn build: Update comment I failed to update in r367340 / D65462Nico Weber2019-07-301-2/+0
| | | | llvm-svn: 367341
* gn build: Fix check-clang-tools after r362702.Nico Weber2019-07-303-1/+37
| | | | | | | | | r362702 added a test that requires clang-tidy to be linked into libclang, so add that to the gn build. Differential Revision: https://reviews.llvm.org/D65462 llvm-svn: 367340
* [WebAssembly] Do not emit tail calls with return type mismatchThomas Lively2019-07-304-12/+136
| | | | | | | | | | | | | | | | | Summary: return_call and return_call_indirect are only valid if the return types of the callee and caller match. We were previously not enforcing that, which was producing invalid modules. Reviewers: aheejin Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65246 llvm-svn: 367339
* [Reproducers] Fix incorrect help messageJonas Devlieghere2019-07-301-2/+2
| | | | | | | The help message mentioned the `log` command (probably because I copied it from there originally). llvm-svn: 367338
* Remove cache for macro arg stringizationReid Kleckner2019-07-305-47/+42
| | | | | | | | | | | | | | | | | | | Summary: The cache recorded the wrong expansion location for all but the first stringization. It seems uncommon to stringize the same macro argument multiple times, so this cache doesn't seem that important. Fixes PR39942 Reviewers: vsk, rsmith Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65428 llvm-svn: 367337
* [NFC] remove obsolete commentJF Bastien2019-07-301-5/+0
| | | | | | LLVM_ALIGNAS was removed from this class in http://llvm.org/r338099 but the comment was left there. The class is still sommewhat relevant despite the comment, let's keep it there with its one use. llvm-svn: 367336
* Revert [GVN] Preserve loop related analysis/canonical forms.Florian Hahn2019-07-306-96/+9
| | | | | | This reverts r367332 (git commit 2d7227ec3ac91f36fc32b1c21e72e2f1f5d030ad) llvm-svn: 367335
* [Docs] Fix sphinx warning in OCamlLangImpl5.rstFrancis Visoiu Mistrih2019-07-301-1/+1
| | | | | | | | | | The path to the image was outdated. http://lab.llvm.org:8011/builders/llvm-sphinx-docs/builds/33865/steps/docs-llvm-html/logs/stdio llvm/docs/tutorial/OCamlLangImpl5.rst:173: WARNING: image file not readable: tutorial/LangImpl05-cfg.png llvm-svn: 367334
* [clang-tidy] Fix the documentation for linuxkernel-must-use-errs.Tom Roeder2019-07-302-17/+11
| | | | | | | | | | | | | | | | | | | Summary: This changes ReleaseNotes.txt to have the first sentence of the full documentation from linuxkernel-must-use-errs.rst. This addresses a comment from the review of rL367071 in https://reviews.llvm.org/D59963. Reviewers: Eugene.Zelenko Subscribers: xazax.hun, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65343 llvm-svn: 367333
* [GVN] Preserve loop related analysis/canonical forms.Florian Hahn2019-07-306-9/+96
| | | | | | | | | | | | | | | | | | | | LoopInfo can be easily preserved by passing it to the functions that modify the CFG (SplitCriticalEdge and MergeBlockIntoPredecessor. SplitCriticalEdge also preserves LoopSimplify and LCSSA form when when passing in LoopInfo. The test case shows that we preserve LoopSimplify and LoopInfo. Adding addPreservedID(LCSSAID) did not preserve LCSSA for some reason. Also I am not sure if it is possible to preserve those in the new pass manager, as they aren't analysis passes. Reviewers: reames, hfinkel, davide, jdoerfert Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D65137 llvm-svn: 367332
* [dotest] Remove multiprocessingJonas Devlieghere2019-07-306-1913/+5
| | | | | | | | | | | Now that the Xcode project is removed, I want to focus on dotest as a test framework, and remove its driver capabilities for which we already rely on llvm's lit. Removing multiprocessing is the first step in that direction. Differential revision: https://reviews.llvm.org/D65311 llvm-svn: 367331
* [NFC] Remove uses of LLVM_ALIGNASJF Bastien2019-07-303-8/+6
| | | | | | It's not useful anymore: we mandate C++11, and already use alignas in a bunch of places. llvm-svn: 367330
* [Support] Workaround a GCC 4.8 bug on constant expression evaluation.Michael Liao2019-07-301-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: - The following stripped code trigger a gcc-4.8 bug. To work that around, move the alignment evaluation into template parameter. ``` // https://godbolt.org/z/58p5_X // enum { aligned = 0, unaligned = 1 }; template <typename T, int alignment> struct PickAlignment { enum { value = alignment == 0 ? alignof(T) : alignment }; }; template <typename ValueType, std::size_t Alignment> struct packed { private: struct { alignas( PickAlignment<ValueType, Alignment>::value) char buffer[sizeof(int)]; } Value; }; using ule16_t = packed<uint16_t, unaligned>; ule16_t x; ``` - Also, replace `alignas` with `LLVMALIGN_AS` to improve the compiler compatibility. Reviewers: jfb Subscribers: dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65452 llvm-svn: 367329
* [Remarks] Add two serialization modes for remarks: separate and standaloneFrancis Visoiu Mistrih2019-07-307-27/+167
| | | | | | | | | | The default mode is separate, where the metadata is serialized separately from the remarks. Another mode is the standalone mode, where the metadata is serialized before the remarks, on the same stream. llvm-svn: 367328
* [LoopFusion] Extend use of OptimizationRemarkEmitterKit Barton2019-07-303-73/+538
| | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch extends the use of the OptimizationRemarkEmitter to provide information about loops that are not fused, and loops that are not eligible for fusion. In particular, it uses the OptimizationRemarkAnalysis to identify loops that are not eligible for fusion and the OptimizationRemarkMissed to identify loops that cannot be fused. It also reuses the statistics to provide the messages used in the OptimizationRemarks. This provides common message strings between the optimization remarks and the statistics. I would like feedback on this approach, in general. If people are OK with this, I will flesh out additional remarks in subsequent commits. Subscribers: hiraditya, jsji, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D63844 llvm-svn: 367327
* AMDGPU: Avoid emitting "true" predicatesMatt Arsenault2019-07-305-5/+16
| | | | | | | | | | Empty condition strings are considerde always true. This removes a lot of clutter from the generated matcher tables. This shrinks the source size of AMDGPUGenDAGISel.inc from 7.3M to 6.1M. llvm-svn: 367326
* [DivRemPairs] Add srem-of-srem tests (PR42823, D65298, D65451)Roman Lebedev2019-07-304-0/+176
| | | | | | | | | | | | The @srem_of_srem_expanded case exposed a RAUW pitfall in D65298. Right now these don't appear to fail verification, so it should be safe to precommit them. https://reviews.llvm.org/D65298 https://bugs.llvm.org/show_bug.cgi?id=42823 https://reviews.llvm.org/D65451 llvm-svn: 367325
* Address post commit review comments on revision 366727.Sean Fertile2019-07-306-20/+21
| | | | | | | | | | | | | Addresses number of comment made on D64652 after commiting: - Reorders function decls in the TargetLoweringObjectFileXCOFF class. - Fix comment in MCSectionXCOFF to include description of external reference csects. - Convert several llvm_unreachables to report_fatal_error - Convert several dyn_casts to casts as they are expected not to fail. - Avoid copying DataLayout object. llvm-svn: 367324
* [COFF][ARM64] Reorder handling of aarch64 MSVC builtinsDavid Major2019-07-302-145/+149
| | | | | | | | | | In `CodeGenFunction::EmitAArch64BuiltinExpr()`, bulk move all of the aarch64 MSVC-builtin cases to an earlier point in the function (the `// Handle non-overloaded intrinsics first` switch block) in order to avoid an unreachable in `GetNeonType()`. The NEON type-overloading logic is not appropriate for the Windows builtins. Fixes https://llvm.org/pr42775 Differential Revision: https://reviews.llvm.org/D65403 llvm-svn: 367323
* [InstCombine] Fold "x ?% y ==/!= 0" to "x & (y-1) ==/!= 0" iff y is ↵Roman Lebedev2019-07-305-13/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | power-of-two Summary: I have stumbled into this by accident while preparing to extend backend `x s% C ==/!= 0` handling. While we did happen to handle this fold in most of the cases, the folding is indirect - we fold `x u% y` to `x & (y-1)` (iff `y` is power-of-two), or first turn `x s% -y` to `x u% y`; that does handle most of the cases. But we can't turn `x s% INT_MIN` to `x u% -INT_MIN`, and thus we end up being stuck with `(x s% INT_MIN) == 0`. There is no such restriction for the more general fold: https://rise4fun.com/Alive/IIeS To be noted, the fold does not enforce that `y` is a constant, so it may indeed increase instruction count. This is consistent with what `x u% y`->`x & (y-1)` already does. I think it makes sense, it's at most one (simple) extra instruction, while `rem`ainder is really much more un-simple (and likely **very** costly). Reviewers: spatel, RKSimon, nikic, xbolva00, craig.topper Reviewed By: RKSimon Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65046 llvm-svn: 367322
* Ask confirmation when `git llvm push` will push multiple commitsMehdi Amini2019-07-301-0/+26
| | | | | | | | This can reduce unexpectedly pushing more than expected by the user. Differential Revision: https://reviews.llvm.org/D64893 llvm-svn: 367321
* Fix `git llvm` script when no arguments are supplied on Python 3Mehdi Amini2019-07-301-0/+9
| | | | | | | | | | Instead of displaying a help message, it was issuing an error message: AttributeError: 'Namespace' object has no attribute 'func' https://bugs.python.org/issue16308 has more information on the bug. llvm-svn: 367320
* add more information to benchmark test failuresEric Fiselier2019-07-301-1/+1
| | | | llvm-svn: 367319
* [X86] SimplifyDemandedVectorEltsForTargetNode should be calling ↵Simon Pilgrim2019-07-301-0/+1
| | | | | | | | resolveTargetShuffleInputs not getTargetShuffleMask Add TODO comment. llvm-svn: 367318
* libcxx: Define __STDCPP_THREADS__ to 1, not to __cplusplus.Nico Weber2019-07-303-5/+11
| | | | | | | | | | | | | | | | | | | [cpp.predefined]p2: __STDCPP_THREADS__ Defined, and has the value integer literal 1, if and only if a program can have more than one thread of execution . Also define it only if it's not defined already, since it's supposed to be defined by the compiler. Also move it from thread to __config (which requires setting it only if _LIBCPP_HAS_NO_THREADS is not defined). Part of PR33230. The intent is to eventually make the compiler define this instead. llvm-svn: 367316
* gn build: Use rebase_path on filename args to libcxx/utils/gen_link_script.pyHans Wennborg2019-07-301-2/+2
| | | | | | | | | | | | | | | | | | | $ ninja -j800 [1/5] ACTION //libcxx/src:cxx_linker_script(//llvm/utils/gn/build/toolchain:stage2_unix) FAILED: lib/libc++.so python ../libcxx/utils/gen_link_script.py --input //build.gn/lib/libc++.so.0 --output //build.gn/lib/libc++.so c++abi unwind GENERATING SCRIPT: 'INPUT(libc++.so.0 -lc++abi -lunwind)' as file //build.gn/lib/libc++.so Traceback (most recent call last): File "../libcxx/utils/gen_link_script.py", line 57, in <module> sys.exit(main()) File "../libcxx/utils/gen_link_script.py", line 50, in main with open(args.output, 'w') as f: IOError: [Errno 2] No such file or directory: '//build.gn/lib/libc++.so' ninja: build stopped: subcommand failed. Differential revision: https://reviews.llvm.org/D65449 llvm-svn: 367314
* [clangd] Fix a regression in rL366996.Haojian Wu2019-07-302-7/+16
| | | | | | | | | | | | | | Summary: That patch made the tweak always annotate the whole file by accident. Reviewers: jvikstrom Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65443 llvm-svn: 367313
* Add typedef declaration information to the JSON AST dump.Aaron Ballman2019-07-304-52/+106
| | | | | | When dumping a desugared QualType and the type is a type alias, also print out the id for the type alias declaration. llvm-svn: 367312
* [RISCV] Attempt to make rv{32,64}i-aliases-invalid.s less flakySam Elliott2019-07-302-6/+6
| | | | | | | | | | | These tests have been disabled on Linux and Windows due to failing there. I think that could be down to a race condition between stdout and stderr, so I have disabled output to stdout. For the moment, only re-enable on linux, because I don't have a windows machine to test on. llvm-svn: 367311
* [llvm-objcopy] - Stop using Inputs/alloc-symtab.oGeorge Rimar2019-07-305-19/+46
| | | | | | | | | | | | | | | | Initially Inputs/alloc-symtab.o was added in D42222. It contains an allocatable .symtab section. Today we are able to create such sections using yaml2obj. Later people started using this input for no solid reason in their tests. Now multiple of tests are using it. (And those tests do not need such a specific case actually). In this patch I removed this binary and rewrote the few tests. Differential revision: https://reviews.llvm.org/D65278 llvm-svn: 367310
* [lldb][NFC] Fix import-std-module tests that relied on fix-its to passRaphael Isemann2019-07-302-5/+5
| | | | | | | These tests currently pass, but they rely on fix-its in our expression parser to pass because they have some typos. llvm-svn: 367309
* [lldb] Fix crash when tab-completing in multi-line exprRaphael Isemann2019-07-304-1/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Tab completing inside the multiline expression command can cause LLDB to crash. The easiest way to do this is to go inside a frame with at least one local variable and then try to complete: (lldb) expr 1. a[tab] Reason for this was some mixup when we calculate the cursor position. Obviously we should calculate the offset inside the string by doing 'end - start', but we are doing 'start - end' (which causes the offset to become -1 which will lead to some out-of-bounds reading). Fixes rdar://51754005 I don't see any way to test this as the *multiline* expression completion is completely untested at the moment and I don't think we have any existing code for testing infrastructure for it. Reviewers: shafik, davide, labath Reviewed By: labath Subscribers: abidh, lldb-commits, davide, clayborg, labath Tags: #lldb Differential Revision: https://reviews.llvm.org/D64995 llvm-svn: 367308
* [lldb][NFC] Check in crashing test caseRaphael Isemann2019-07-303-0/+19
| | | | llvm-svn: 367307
* [X86][AVX] SimplifyDemandedVectorElts - handle extraction from ↵Simon Pilgrim2019-07-302-8/+42
| | | | | | | | | | X86ISD::SUBV_BROADCAST source (PR42819) PR42819 showed an issue that we couldn't handle the case where we demanded a 'sub-sub-vector' of the SUBV_BROADCAST 'sub-vector' source. This patch recognizes these cases and extracts the sub-sub-vector instead of trying to broadcast to a type smaller than the 'sub-vector' source. llvm-svn: 367306
* [Driver] Define _FILE_OFFSET_BITS=64 on SolarisRainer Orth2019-07-301-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | make check-all currently fails on x86_64-pc-solaris2.11 when building with GCC 9: Undefined first referenced symbol in file _ZN11__sanitizer14internal_lseekEimi SANITIZER_TEST_OBJECTS.sanitizer_libc_test.cc.i386.o _ZN11__sanitizer23MapWritableFileToMemoryEPvmim SANITIZER_TEST_OBJECTS.sanitizer_libc_test.cc.i386.o ld: fatal: symbol referencing errors clang-9: error: linker command failed with exit code 1 (use -v to see invocation) make[3]: *** [projects/compiler-rt/lib/sanitizer_common/tests/CMakeFiles/TSanitizer-i386-Test.dir/build.make:92: projects/compiler-rt/lib/sanitizer_common/tests/Sanitizer-i386-Test] Error 1 While e.g. __sanitizer::internal_lseek is defined in sanitizer_solaris.cc, g++ 9 predefines _FILE_OFFSET_BITS=64 while clang++ currently does not. This patch resolves this inconsistency by following the gcc lead, which allows make check-all to finish successfully. There's one caveat: gcc defines _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for C++ only, while clang has long been doing it for all languages. I'd like to keep it this way because those macros do is to make declarations of fseek/ftello (_LARGEFILE_SOURCE) resp. the 64-bit versions of largefile functions (*64 with _LARGEFILE64_SOURCE) visible additionally. However, _FILE_OFFSET_BITS=64 changes all affected functions to be largefile-aware. I'd like to restrict this to C++, just like gcc does. To avoid a similar inconsistence with host compilers that don't predefine _FILE_OFFSET_BITS=64 (e.g. clang < 9, gcc < 9), this needs a compantion patch https://reviews.llvm.org/D64483. Tested on x86_64-pc-solaris2.11. Differential Revision: https://reviews.llvm.org/D64482 llvm-svn: 367305
* [CMake] Define _FILE_OFFSET_BITS=64 on SolarisRainer Orth2019-07-302-0/+11
| | | | | | | | | | | | This is the compantion patch to https://reviews.llvm.org/D64482, needed to ensure that builds with host compilers that don't yet predefine _FILE_OFFSET_BITS=64 on Solaris succeed by always making the host and freshly built clang consistent. Tested on x86_64-pc-solaris2.11. Differential Revision: https://reviews.llvm.org/D64483 llvm-svn: 367304
* [clangd] Ignore diags from builtin filesKadir Cetinkaya2019-07-303-15/+37
| | | | | | | | | | | | | | | | | | Summary: This fixes a case where we show diagnostics on arbitrary lines, in an internal codebase. Open for ideas on unittesting this. Reviewers: ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64863 llvm-svn: 367303
* [lldb][docs] Update documentation for monorepo and CMake cachesStefan Granitz2019-07-301-36/+144
| | | | | | | | | | | | | | | | Summary: The lldb build system made good progress in the last months, but documentation was still lacking behind. Here's a patch to catch up. Reviewers: JDevlieghere, jingham, labath, stella.stamenova, teemperor, jryans, kastiglione, xiaobai, compnerd, zturner Reviewed By: labath, stella.stamenova, jryans Subscribers: clayborg, amccarth, friss, lldb-commits, #lldb Tags: #lldb Differential Revision: https://reviews.llvm.org/D65330 llvm-svn: 367302
* [AArch64] Disable __ARM_FEATURE_SVE without ACLE.Sander de Smalen2019-07-302-4/+1
| | | | | | | | | | | | | | | | | The Arm C Language Extensions for SVE document specifies that __ARM_FEATURE_SVE should be set when the compiler supports SVE and implements all the extensions described in the document. This is currently not yet the case, so the feature should be disabled until the compiler can provide all the extensions as described. Reviewers: c-rhodes, rengolin, rovka, ktkachov Reviewed By: rengolin Differential Revision: https://reviews.llvm.org/D65404 llvm-svn: 367301
* PECOFF: Fix a "memset clearing an object of non-trivial type" warningPavel Labath2019-07-302-34/+32
| | | | | | | | | | | | This time, the warning pointed to an actual problem, because the coff_opt_header structure contained a std::vector. I guess this happened to work because the all-zero state was a valid representation of an empty vector, but its not a good idea to rely on that. I remove the memset, and have the structure clear its members in the constructor instead. llvm-svn: 367299
* SymbolVendor: Move locking into the Symbol FilesPavel Labath2019-07-308-160/+126
| | | | | | | | | | | | | | | | | | | | | | Summary: The last bit of functionality in SymbolVendor passthrough functions is the locking the module mutex. While it may be nice doing the locking in a central place, we weren't really succesful in doing that right now, because some SymbolFile function could still be called without going through the SymbolVendor. This meant in SymbolFileDWARF (the only battle-tested symbol file implementation) roughly a half of the functions was taking additional locks and another half was asserting that the lock is already held. By making the SymbolFile responsible for locking, we can at least make the situation in SymbolFileDWARF more consistent. Reviewers: clayborg, JDevlieghere, jingham, jdoerfert Subscribers: aprantl, lldb-commits Differential Revision: https://reviews.llvm.org/D65329 llvm-svn: 367298
OpenPOWER on IntegriCloud