summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [analyzer] Enable cfg-temporary-dtors by default.Artem Dergachev2018-03-017-11/+12
| | | | | | | | | | | | Don't enable c++-temp-dtor-inlining by default yet, due to this reference counting pointe problem. Otherwise the new mode seems stable and allows us to incrementally fix C++ problems in much less hacky ways. Differential Revision: https://reviews.llvm.org/D43804 llvm-svn: 326461
* [WebAssembly] Fix broken gcc build after rL326454Sam Clegg2018-03-013-13/+14
| | | | | | | The gcc builders were broken by rL326454 See: https://reviews.llvm.org/D43921 llvm-svn: 326460
* Where possible use --long-opt=value in lld man pageEd Maste2018-03-011-20/+20
| | | | | | | | | | | | | | We intend to maintain compatibility with GNU ld, and in the GNU world long options are conventionally specified as --long-option=value. For whatever reason GNU ld.bfd accepts both --long-option value and --long-option=value, but documents the former. Follow suit. Some lld long options do not accept the = form; this is probably a bug to be fixed (along with a man page update). Reported by Ingo Schwarze, for --entry. llvm-svn: 326459
* [clangd] Make symbol name a required parameter for CanonicalIncludes::mapHeaderEric Liu2018-03-012-10/+6
| | | | llvm-svn: 326458
* [NVPTX] use pattern matching to lower int_nvvm_match_all_sync*.Artem Belevich2018-03-013-43/+4
| | | | | | | | | Now that patterns can handle intrinsics returning multiple results, use tablegen'ed pattern matching instead of custom lowering. Differential Revision: https://reviews.llvm.org/D43890 llvm-svn: 326457
* [clangd] Support include canonicalization in symbol leve.Eric Liu2018-03-014-9/+105
| | | | | | | | | | | | | | | | | Summary: Symbols with different canonical includes might be defined in the same header (e.g. symbols defined in STL <iosfwd>). This patch adds support for mapping from qualified symbol names to canonical headers and special mapping for symbols in <iosfwd> Reviewers: sammccall, hokein Reviewed By: sammccall Subscribers: klimek, ilya-biryukov, jkorous-apple, cfe-commits Differential Revision: https://reviews.llvm.org/D43869 llvm-svn: 326456
* [WebAssembly] Use uint8_t for single byte values to match the specSam Clegg2018-03-013-12/+11
| | | | | | Differential Revision: https://reviews.llvm.org/D43922 llvm-svn: 326455
* [WebAssembly] Use uint8_t for single byte values to match the specSam Clegg2018-03-017-87/+75
| | | | | | | | | | | | | The original BinaryEncoding.md document used to specify that these values were `varint7`, but the official spec lists them explicitly as single byte values and not LEB. A similar change for wabt is in flight: https://github.com/WebAssembly/wabt/pull/782 Differential Revision: https://reviews.llvm.org/D43921 llvm-svn: 326454
* [PDB] Defer writing the build id until the rest of the PDB is written.Zachary Turner2018-03-014-11/+32
| | | | | | | | | | For now this is NFC, but this small refactor opens the door to letting us embed a hash of the PDB in the build id field of the PDB. Differential Revision: https://reviews.llvm.org/D43913 llvm-svn: 326453
* [clangd] Forward all environment variables along with CLANGD_TRACE to clangd.Eric Liu2018-03-011-2/+4
| | | | llvm-svn: 326452
* [AMDGPU] : fix for the crash in SIRegisterInfo when the regiser class not foundAlexander Timofeev2018-03-011-1/+7
| | | | | | Differential revision: https://reviews.llvm.org./D43334 llvm-svn: 326451
* [Hexagon] Add guest registersKrzysztof Parzyszek2018-03-016-1/+301
| | | | llvm-svn: 326450
* Make TestDynamicValueSameBase gcc-compatiblePavel Labath2018-03-011-3/+7
| | | | | | | | | | gcc will say that the type of "this" is "T * const", clang "T *". Compare the unqualified type names to erase the difference between the two, as the constness is not a part of this test. FWIW, I think that the gcc behavior makes more sense here. llvm-svn: 326449
* [InstCombine] remove stale comments for tests; NFCSanjay Patel2018-03-011-3/+0
| | | | llvm-svn: 326448
* [Power9] Add missing instructions to the Power 9 schedulerStefan Pintilie2018-03-012-42/+160
| | | | | | | | | Adding more instructions using InstRW so that we can move away from ItinRW and ultimately have a complete Power 9 scheduler. Differential Revision: https://reviews.llvm.org/D43899 llvm-svn: 326447
* Correct markup and nits in ld.lld man pageEd Maste2018-03-011-38/+40
| | | | | | Patch by Ingo Schwarze llvm-svn: 326446
* [WebAssembly] Update pre-generated test files to match latest llc output. NFC.Nicholas Wilson2018-03-0110-29/+29
| | | | | | | | The ordering of llc's output was changed in rL326334. Differential Revision: https://reviews.llvm.org/D43941 llvm-svn: 326445
* [InstCombine] simplify code for (X*Y) * X => (X*X) * Y ; NFCISanjay Patel2018-03-011-35/+17
| | | | llvm-svn: 326444
* [AArch64] generate vuzp instead of movSebastian Pop2018-03-012-0/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when a BUILD_VECTOR is created out of a sequence of EXTRACT_VECTOR_ELT with a specific pattern sequence, either <0, 2, 4, ...> or <1, 3, 5, ...>, replace the BUILD_VECTOR with either vuzp1 or vuzp2. With this patch LLVM generates the following code for the first function fun1 in the testcase: adrp x8, .LCPI0_0 ldr q0, [x8, :lo12:.LCPI0_0] tbl v0.16b, { v0.16b }, v0.16b ext v1.16b, v0.16b, v0.16b, #8 uzp1 v0.8b, v0.8b, v1.8b str d0, [x8] ret Without this patch LLVM currently generates this code: adrp x8, .LCPI0_0 ldr q0, [x8, :lo12:.LCPI0_0] tbl v0.16b, { v0.16b }, v0.16b mov v1.16b, v0.16b mov v1.b[1], v0.b[2] mov v1.b[2], v0.b[4] mov v1.b[3], v0.b[6] mov v1.b[4], v0.b[8] mov v1.b[5], v0.b[10] mov v1.b[6], v0.b[12] mov v1.b[7], v0.b[14] str d1, [x8] ret llvm-svn: 326443
* [InstCombine] move/add tests for fmul reassociation; NFCSanjay Patel2018-03-012-12/+72
| | | | | | | This transform may be out-of-scope for instcombine, but this is only documenting the current behavior. llvm-svn: 326442
* Don't allocate a header bellow address 0.Rafael Espindola2018-03-012-4/+29
| | | | | | | | | | | | With the current code if the script has a PHDRS we always obey and try to allocate a header. This can cause Min - HeaderSize to underflow. It looks like bfd actually prints an error for this case. With this patch we do the same. Found while looking at pr36515. llvm-svn: 326441
* [InstCombine] auto-generate full checks; NFCSanjay Patel2018-03-011-51/+49
| | | | llvm-svn: 326440
* Resubmit [analyzer] Support for naive cross translation unit analysisIlya Biryukov2018-03-0123-51/+774
| | | | | | | | | | | Originally submitted as r326323 and r326324. Reverted in r326432. Reverting the commit was a mistake. The breakage was due to invalid build files in our internal buildsystem, CMakeLists did not have any cyclic dependencies. llvm-svn: 326439
* UsersManual: improve the clang-cl text some moreHans Wennborg2018-03-011-0/+17
| | | | llvm-svn: 326438
* Make Finalize tolerant of empty register sets.Tatyana Krasnukha2018-03-011-1/+1
| | | | llvm-svn: 326437
* Revert "[DEBUGINFO] Add flag for DWARF2 or less to use sections as references."Alexey Bataev2018-03-014-104/+11
| | | | | | | This reverts commit r326328 to remove checks for emission of certain sections after discussion with Eric Christofer. llvm-svn: 326436
* [OMPT] Fix interoperability test with GCCJonas Hahnfeld2018-03-011-2/+14
| | | | | | | | | | | | | | | | We have to ensure that the runtime is initialized _before_ waiting for the two started threads to guarantee that the master threads post their ompt_event_thread_begin before the worker threads. This is not guaranteed in the parallel region where one worker thread could start before the other master thread has invoked the callback. The problem did not happen with Clang becauses the generated code calls __kmpc_global_thread_num() and cashes its result for functions that contain OpenMP pragmas. Differential Revision: https://reviews.llvm.org/D43882 llvm-svn: 326435
* UsersManual: beef up the clang-cl text a littleHans Wennborg2018-03-011-3/+13
| | | | llvm-svn: 326434
* [CodeGen] fix argument attribute in lowering statepoint/patchpointThan McIntosh2018-03-014-2/+38
| | | | | | | | | | | | | | | Summary: Use the correct loop index varaible, ArgI, to retrieve attributes. Reviewers: thanm, sanjoy, rnk Reviewed By: rnk Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D43832 llvm-svn: 326433
* Revert "[analyzer] Support for naive cross translation unit analysis"Ilya Biryukov2018-03-0123-774/+51
| | | | | | | | | | Also revert "[analyzer] Fix a compiler warning" This reverts commits r326323 and r326324. Reason: the commits introduced a cyclic dependency in the build graph. This happens to work with cmake, but breaks out internal integrate. llvm-svn: 326432
* [ELF] - Don't crash on broken MEMORY declaration.George Rimar2018-03-012-3/+20
| | | | | | | | | | | LLD crashes with broken scripts shown in testcase, because fails to read memory regon name and accesses MemoryRegions's element which is nullptr. Patch fixes it. Differential revision: https://reviews.llvm.org/D43866 llvm-svn: 326431
* [ELF] - Do not remove empty sections that use symbols in expressions.George Rimar2018-03-014-5/+27
| | | | | | | | | | | | | | | This is PR36515. Currenly if we have a script like .debug_info 0 : { *(.debug_info) }, we would not remove this section and keep it in the output. That does not work, because it is common case for debug sections to have a zero address expression. Patch changes behavior so that we remove only sections that do not use symbols in its expressions. Differential revision: https://reviews.llvm.org/D43863 llvm-svn: 326430
* [SCCP] Fix unused variable warning in release builds.Benjamin Kramer2018-03-011-0/+1
| | | | llvm-svn: 326429
* [OMPT] Fix task-type test with GCCJoachim Protze2018-03-011-0/+3
| | | | | | | | | | This is similar to D43882. The runtime needs to be initialized before calling print_ids(0) http://lab.llvm.org:8011/builders/openmp-gcc-x86_64-linux-debian/builds/60 Differential Revision: https://reviews.llvm.org/D43897 llvm-svn: 326428
* [ELF] - Fix eh-frame-reloc-out-of-range.test.George Rimar2018-03-011-1/+1
| | | | | | Was broken after recent testcases changes. llvm-svn: 326427
* [clang-format] Add SpaceBeforeColon optionFrancois Ferrand2018-03-015-1/+182
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: When disabled, this option allows removing the space before colon, making it act more like the semi-colon. When enabled (default), the current behavior is not affected. This mostly affects C++11 loop, initializer list, inheritance list and container literals: class Foo: Bar {} Foo::Foo(): a(a) {} for (auto i: myList) {} f({a: 1, b: 2, c: 3}); Reviewers: krasimir, djasper Reviewed By: djasper Subscribers: xvallspl, teemperor, karies, cfe-commits, klimek Differential Revision: https://reviews.llvm.org/D32525 llvm-svn: 326426
* [dsymutil] Move string pool into its own implementatino file. NFC.Jonas Devlieghere2018-03-014-46/+57
| | | | | | | | The DwarfLinker implementation is already relatively large with over 4k LOC. This commit moves the implementation of NonRelocatableStringpool into a separate cpp file. llvm-svn: 326425
* [WebAssembly] Reorder exports to match symbol table orderNicholas Wilson2018-03-0114-105/+103
| | | | | | | | This fixes a TODO introduced in rLLD325861. Differential Revision: https://reviews.llvm.org/D43877 llvm-svn: 326424
* [PATCH] [compiler-rt, RISCV] Support builtins for RISC-VShiva Chen2018-03-019-2/+177
| | | | | | | | | | | Summary: Support builtins for RISC-V, RV32 and RV64. Reviewers: asb, apazos, mgrang Differential Revision: https://reviews.llvm.org/D42958 llvm-svn: 326420
* Function definition may have uninstantiated bodySerge Pavlov2018-03-014-51/+100
| | | | | | | | | | | | | | | | | | | | | | | | Current implementation of `FunctionDecl::isDefined` does not take into account redeclarations that do not have bodies, but the bodies can be instantiated from corresponding templated definition. This behavior does not allow to detect function redefinition in the cases where friend functions is defined in class templates. For instance, the code: ``` template<typename T> struct X { friend void f() {} }; X<int> xi; void f() {} ``` compiles successfully but must fail due to redefinition of `f`. The declaration of the friend `f` is created when the containing template `X` is instantiated, but it does not have a body as per 14.5.4p4 because `f` is not odr-used. With this change the function `Sema::CheckForFunctionRedefinition` considers functions with uninstantiated bodies as definitions. Differential Revision: https://reviews.llvm.org/D30170 llvm-svn: 326419
* [SCEV] Smart range calculation for SCEVUnknown PhisMax Kazantsev2018-03-015-3/+187
| | | | | | | | | | The range of SCEVUnknown Phi which merges values `X1, X2, ..., XN` can be evaluated as `U(Range(X1), Range(X2), ..., Range(XN))`. Reviewed By: sanjoy Differential Revision: https://reviews.llvm.org/D43810 llvm-svn: 326418
* [X86] Stop passing two arguments by reference. NFCCraig Topper2018-03-011-1/+1
| | | | | | I think these used to be out parameters, but they haven't been for a while. llvm-svn: 326417
* Remove redundant casts. NFCGeorge Burgess IV2018-03-0151-178/+162
| | | | | | | | | | | | | | | | | | | So I wrote a clang-tidy check to lint out redundant `isa`, `cast`, and `dyn_cast`s for fun. This is a portion of what it found for clang; I plan to do similar cleanups in LLVM and other subprojects when I find time. Because of the volume of changes, I explicitly avoided making any change that wasn't highly local and obviously correct to me (e.g. we still have a number of foo(cast<Bar>(baz)) that I didn't touch, since overloading is a thing and the cast<Bar> did actually change the type -- just up the class hierarchy). I also tried to leave the types we were cast<>ing to somewhere nearby, in cases where it wasn't locally obvious what we were dealing with before. llvm-svn: 326416
* Convert more tests as linker scripts instead of assembly.Rui Ueyama2018-03-0136-491/+445
| | | | llvm-svn: 326415
* [test] Restore cleanup behavior in TestQuoting.pyVedant Kumar2018-03-011-1/+1
| | | | | | | | | | Before the change to compile tests out-of-tree, the cleanup classmethod in TestQuoting.py would remove a temp file. After the change it threw an exception due to a malformed call to getBuildArtifact(). Bring back the old behavior. llvm-svn: 326414
* [Support] Fix comments for handleAllErrors: it calls llvm_unreachable if theLang Hames2018-03-011-4/+4
| | | | | | contract is violated, not report_fatal_error. llvm-svn: 326413
* We were getting the wrong dynamic type if there were two classes with the ↵Jim Ingham2018-03-014-2/+106
| | | | | | | | | | | | | | same basename. There's a bug in FindTypes, it ignores the exact flag if you pass a name that doesn't begin with :: and pass eTypeClassAny for the type. In this case we always know that the name we get from the vtable name is absolute so we can work around the bug by prepending the "::". This doesn't fix the FindTypes bug. <rdar://problem/38010986> llvm-svn: 326412
* [WebAssembly] Remove unused forward declaration.Rui Ueyama2018-03-011-2/+0
| | | | llvm-svn: 326411
* Do not create multiple NOTE segments.Rui Ueyama2018-03-012-12/+22
| | | | | | | | | | | Previously, we didn't try to make effort to put .note sections next to each other in the output file, so two .note sections were likely to be stored to two separate NOTE segments. That's undesirable because we should create as few segments as possible in general. Differential Revision: https://reviews.llvm.org/D43858 llvm-svn: 326410
* Expand test a bit.Rafael Espindola2018-03-011-11/+27
| | | | | | | | | It now includes both linkerscript and non linkerscript variants. Extracted from a patch by Rui while I was trying to figure out what exactly was changing. llvm-svn: 326409
OpenPOWER on IntegriCloud