summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix clang for r350647: Missed a function renamePhilip Pfaffe2019-01-081-2/+3
| | | | llvm-svn: 350648
* [NewPM] Port tsanPhilip Pfaffe2019-01-088-49/+82
| | | | | | | | | A straightforward port of tsan to the new PM, following the same path as D55647. Differential Revision: https://reviews.llvm.org/D56433 llvm-svn: 350647
* [x86] add tests for PR40243; NFCSanjay Patel2019-01-082-2/+51
| | | | llvm-svn: 350646
* Fix opencl test broken on windows by r350643.Erich Keane2019-01-081-2/+2
| | | | | | | | | Windows doesn't allow common with alignment >32 bits, so these tests were broken in windows mode. This patch makes 'common' optional in these cases. Change-Id: I4d5fdd07ecdafc3570ef9b09cd816c2e5e4ed15e llvm-svn: 350645
* [NFC] Don't over-eagerly check block alignmentJF Bastien2019-01-081-2/+2
| | | | | | Alignment of __block isn't relevant to this test, remove its checking. llvm-svn: 350644
* Limit COFF 'common' emission to <=32 alignment types.Erich Keane2019-01-082-0/+13
| | | | | | | | | | | | | | | | As reported in PR33035, LLVM crashes if given a common object with an alignment of greater than 32 bits. This is because the COFF file format does not support these alignments, so emitting them is broken anyway. This patch changes any global definitions greater than 32 bit alignment to no longer be in 'common'. https://bugs.llvm.org/show_bug.cgi?id=33035 Differential Revision: https://reviews.llvm.org/D56391 Change-Id: I48609289753b7f3b58c5e2bc1712756750fbd45a llvm-svn: 350643
* __has_feature(pragma_clang_attribute_namespaces) should be __has_extensionErik Pilkington2019-01-083-3/+9
| | | | | | Thanks to Richard Smith for pointing this out. llvm-svn: 350642
* Rename DIFlagFixedEnum to DIFlagEnumClass. NFCPaul Robinson2019-01-0811-40/+41
| | | | llvm-svn: 350641
* [UnrollRuntime] Fix domTree failures in multiexit unrollingAnna Thomas2019-01-082-24/+173
| | | | | | | | | | | | | | | | | | | | Summary: This fixes the IDom for exit blocks and all blocks reachable from the exit blocks, when runtime unrolling under multiexit/exiting case. We initially had a restrictive check that the IDom is only updated when it is the header of the loop. However, we also need to update the IDom to the correct one when the IDom is any block within the original loop. See added test cases (which fail dom tree verification without the patch). Reviewers: reames, mzolotukhin, mkazantsev, hfinkel Reviewed by: brzycki, kuhar Subscribers: zzheng, dmgreen, llvm-commits Differential Revision: https://reviews.llvm.org/D56284 llvm-svn: 350640
* Revert "Split -Wdelete-non-virtual-dtor into -Wdelete-abstract-non-virtual-dtor"Erik Pilkington2019-01-083-35/+1
| | | | | | | This reverts commit r350585. There was some late post-commit review on phab. llvm-svn: 350639
* Fix use-after-free bug in Tooling.Alexander Kornienko2019-01-083-17/+14
| | | | | | | | | | | | | | | | | | | Summary: `buildASTFromCodeWithArgs()` was creating a memory buffer referencing a stack-allocated string. This diff changes the implementation to copy the code string into the memory buffer so that said buffer owns the memory. Patch by Yitzhak Mandelbaum. Reviewers: alexfh Reviewed By: alexfh Subscribers: cfe-commits, EricWF Differential Revision: https://reviews.llvm.org/D55765 llvm-svn: 350638
* [BPF] Fix .BTF.ext reloc type assigment issueYonghong Song2019-01-082-2/+43
| | | | | | | | | | | | | | | | | | | | Commit f1db33c5c1a9 ("[BPF] Disable relocation for .BTF.ext section") assigned relocation type R_BPF_NONE if the fixup type is FK_Data_4 and the symbol is temporary. The reason is we use FK_Data_4 as a fixup type for insn offsets in .BTF.ext section. Just checking whether the symbol is temporary is not enough. For example, .debug_info may reference some strings whose fixup is FK_Data_4 with a temporary symbol as well. To truely reflect the case for .BTF.ext section, this patch further checks that the section associateed with the symbol must be SHF_ALLOC and SHF_EXECINSTR, i.e., in the text section. This fixed the above-mentioned problem. Signed-off-by: Yonghong Song <yhs@fb.com> llvm-svn: 350637
* Don't emit DW_AT_enum_class unless it's actually an 'enum class'.Paul Robinson2019-01-082-1/+4
| | | | | | | | Finishes off the functional part of PR36168. Differential Revision: https://reviews.llvm.org/D56393 llvm-svn: 350636
* [AST][NFC] Pack CXXScalarValueInitExprBruno Ricci2019-01-084-9/+22
| | | | | | | Use the newly available space in the bit-fields of Stmt. This saves one pointer per CXXScalarValueInitExpr. NFC. llvm-svn: 350635
* [OPENMP]Fix PR40191: Do not allow orphaned cancellation constructs.Alexey Bataev2019-01-083-44/+47
| | | | | | Prohibited use of the orphaned cancellation directives. llvm-svn: 350634
* [clangd] Fix a crash when reading an empty index file.Haojian Wu2019-01-082-3/+10
| | | | | | | | | | | | | | | Summary: Unfortunately, yaml::Input::setCurrentDocument() and yaml::Input::nextDocument() are internal APIs, the way we use them may cause a nullptr accessing when processing an empty YAML file. Reviewers: ilya-biryukov Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D56442 llvm-svn: 350633
* [gn build] Update readmeNico Weber2019-01-081-15/+3
| | | | | | Differential Revision: https://reviews.llvm.org/D56375 llvm-svn: 350632
* [gn build] Make sync_source_lists_from_cmake.py check that all LLVM ↵Nico Weber2019-01-081-2/+1
| | | | | | | | | | unittests are present Now that the PowerPC and WebAssembly targets are added, this check passes. Differential Revision: https://reviews.llvm.org/D56417 llvm-svn: 350631
* [MachineVerifier] Include offending register in allocatable live-in error msg.Florian Hahn2019-01-081-0/+6
| | | | | | | | | | | | | | This patch adds a convenience report() method for physical registers and uses it to print the offending register with the 'MBB has allocatable live-in' error. Reviewers: MatzeB, rtereshin, dsanders Reviewed By: dsanders Differential Revision: https://reviews.llvm.org/D55946 llvm-svn: 350630
* [gn build] Add build files for llvm/lib/Target/PowerPC + testsNico Weber2019-01-0812-5/+307
| | | | | | | | | | | | | | | | The PowerPC target itself is similar to the X86 target in https://reviews.llvm.org/rL348903 The llvm-exegesis unittests bits are similar to the corresponding AArch64 in https://reviews.llvm.org/rL350499 The whole patch is very similar to the WebAssembly target being added in https://reviews.llvm.org/rL350628 Also add a dep from tools/llvm-exegesis/lib to the AArch64 subdir, which I failed to do in r350499. The motivation for this target is solely that it has a unit test and I want to enable the GN<->CMake unittest syncing check for llvm. Differential Revision: https://reviews.llvm.org/D56416 llvm-svn: 350629
* [gn build] Add build files for llvm/lib/Target/WebAssembly + testsNico Weber2019-01-089-0/+291
| | | | | | | | | | | | | The WebAssembly target itself is similar to the X86 target in https://reviews.llvm.org/rL348903 The unittests bits are similar to the corresponding AArch64 in https://reviews.llvm.org/rL350499 The motivation for this target is solely that it has a unit test and I want to enable the GN<->CMake unittest syncing check for llvm. (After this, only the PowerPC target is needed and I can turn it on.) Differential Revision: https://reviews.llvm.org/D56374 llvm-svn: 350628
* [AST][NFC] Pack CXXNoexceptExpr and SubstNonTypeTemplateParmExprBruno Ricci2019-01-083-29/+51
| | | | | | | | | | Use the newly available space in the bit-fields of Stmt. This saves one pointer per CXXNoexceptExpr/SubstNonTypeTemplateParmExpr. Use this opportunity to run clang-format on these two classes and fix some style issues. NFC overall. llvm-svn: 350627
* [GlobalISel] Fix choice of instruction selector for AArch64 at -O0 with ↵Petr Pavlu2019-01-082-12/+58
| | | | | | | | | | | | | | | | | -global-isel=0 Commit rL347861 introduced an unintentional change in the behaviour when compiling for AArch64 at -O0 with -global-isel=0. Previously, explicitly disabling GlobalISel resulted in using FastISel but an updated condition in the commit changed it to using SelectionDAG. The patch fixes this condition and slightly better organizes the code that chooses the instruction selector. Fixes PR40131. Differential Revision: https://reviews.llvm.org/D56266 llvm-svn: 350626
* [AST] Pack CXXDependentScopeMemberExprBruno Ricci2019-01-085-128/+189
| | | | | | | | | | | | | | | | | | | | Use the newly available space in the bit-fields of Stmt. Additionally store FirstQualifierFoundInScope as a trailing object since it is most of the time null (non-null for 2 of the 35446 CXXDependentScopeMemberExpr when parsing all of Boost). It would be possible to move the data for the nested-name-specifier to a trailing object too to save another 2 pointers, however doing so did actually regress the time taken to parse all of Boost slightly. This saves 8 bytes + 1 pointer per CXXDependentScopeMemberExpr in the vast majority of cases. Differential Revision: https://reviews.llvm.org/D56367 Reviewed By: rjmccall llvm-svn: 350625
* [DA][NewPM] Add a printerpass and port the testsuitePhilip Pfaffe2019-01-0828-0/+67
| | | | | | | | | The new-pm version of DA is untested. Testing requires a printer, so add that and use it in the existing DA tests. Differential Revision: https://reviews.llvm.org/D56386 llvm-svn: 350624
* [X86][Darwin] Emit compact-unwind for register-sized stack adjustmentsFrancis Visoiu Mistrih2019-01-082-10/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For stack frames on the size of a register in x86, a code size optimization emits "push rax/eax" instead of "sub" for stack allocation. For example: foo: .cfi_startproc BB#0: pushq %rax Ltmp0: .cfi_def_cfa_offset 16 ... .cfi_endproc However, we are falling back to DWARF in this case because we cannot encode %rax as a saved register. This requirement is wrong, since we don't care about the contents of %rax, it is the equivalent of a sub. In order to specify that we care about the contents of %rax, we would need a .cfi_offset %rax, <offset>. It's also overzealous in the case where there are pushes for callee saved registers followed by a "push rax/eax" instead of "sub", in which case we should also be able to encode the callee saved regs and everything else using compact unwind. Patch authored by Bruno Cardoso Lopes. Differential Revision: https://reviews.llvm.org/D13793 llvm-svn: 350623
* [Sema] Diagnose array access preceding the array bounds even when the base ↵Bruno Ricci2019-01-082-7/+13
| | | | | | | | | | | | | | | | | type is incomplete. When the type of the base expression after IgnoreParenCasts is incomplete, it is still possible to diagnose an array access which precedes the array bounds. This is a follow-up on D55862 which added an early return when the type of the base expression after IgnoreParenCasts was incomplete. Differential Revision: https://reviews.llvm.org/D56050 Reviewed By: efriedma llvm-svn: 350622
* Revert "Revert "Resubmit rL345008 "Split MachinePipeliner code into header ↵Lama Saba2019-01-082-595/+620
| | | | | | | | | | and cpp files""" This reverts commit rL350497 reported remaining issues seem to be unrelated to modules or this change. more info: https://reviews.llvm.org/D56084 llvm-svn: 350621
* AArch64: avoid splitting vector truncating stores.Tim Northover2019-01-082-0/+27
| | | | | | | | | | | | We have code to split vector splats (of zero and non-zero) for performance reasons, but it ignores the fact that a store might be truncating. Actually, truncating stores are formed for vNi8 and vNi16 types. Since the truncation is from a legal type, the size of the store is always <= 64-bits and so they don't actually benefit from being split up anyway, so this patch just disables that transformation. llvm-svn: 350620
* [X86] Add shift-by-immediate tests for non-immediate/out-of-range valuesSimon Pilgrim2019-01-086-0/+588
| | | | | | As noted on PR40203, for gcc compatibility we need to support non-immediate values in the 'slli/srli/srai' shift by immediate vector intrinsics. llvm-svn: 350619
* [GlobalISel] Fix unused variable warning in Release builds.Benjamin Kramer2019-01-081-3/+3
| | | | llvm-svn: 350618
* ProcessLaunchInfo: Remove Target referencePavel Labath2019-01-085-129/+119
| | | | | | | | | | | | | | | | | | | | | Summary: The target was being used in FinalizeFileActions to provide default values for stdin/out/err. Also, most of the logic of this function was very specific to how the lldb's Target class wants to launch processes, so I, move it to Target::FinalizeFileActions, inverting the dependency. The only piece of logic that was useful elsewhere (lldb-server) was the part which sets up a pty and relevant file actions. I've kept this part as ProcessLaunchInfo::SetUpPtyRedirection. This makes ProcessLaunchInfo independent of any high-level lldb constructs. Reviewers: zturner, jingham, teemperor Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D56196 llvm-svn: 350617
* [llvm-readobj] Don't print '@' at end of unversioned dynsym namesJames Henderson2019-01-085-34/+36
| | | | | | | | | | | | | This fixes https://bugs.llvm.org/show_bug.cgi?id=40097. The problem was caused by a regression in r188022. See also r350614. Reviewed by: rupprecht, mstorsjo, Higuoxing, jakehehrlich Differential Revision: https://reviews.llvm.org/D56319 llvm-svn: 350615
* [ELF] Remove checking for spurious '@' at the end of dynamic sym namesJames Henderson2019-01-0854-145/+145
| | | | | | | | | | | | llvm-readobj currently has a bug (see PR40097) where it prints '@' at the end of unversioned dynamic symbols. This bug will be fixed in a separate later commit, but these tests need fixing first. Reviewed by: ruiu, Higuoxing Differential Revision: https://reviews.llvm.org/D56388 llvm-svn: 350614
* [ARM] Add missing patterns for DSP mulsSam Parker2019-01-083-112/+209
| | | | | | | | | | | Using a PatLeaf for sext_16_node allowed matching smulbb and smlabb instructions once the operands had been sign extended. But we also need to use sext_inreg operands along with sext_16_node to catch a few more cases that enable use to remove the unnecessary sxth. Differential Revision: https://reviews.llvm.org/D55992 llvm-svn: 350613
* [ASTMatchers] Improve assert message for broken parent map.Sam McCall2019-01-081-7/+11
| | | | | | | | | | | | | | | | Summary: This assert catches places where the AST (as seen by RecursiveASTVisitor) becomes disconnected due to incomplete traversal. Making it print the actual parent-less node is a lot more helpful - it's possible to work out which part of the tree wasn't traversed. Reviewers: ilya-biryukov Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D56395 llvm-svn: 350612
* AMDGPU/GlobalISel: Introduce vcc reg bankMatt Arsenault2019-01-0817-128/+156
| | | | | | | | | | | | | | | | | | | | | | | | | | | I'm not entirely sure this is the correct thing to do with the global isel philosophy, but I think this is necessary to handle how differently SGPRs are used normally vs. from a condition. For example, it makes sense to allow a copy from a VGPR to an SGPR, but it makes no sense to allow a copy from VGPRs to SGPRs used as select mask. This avoids regbankselecting strange code with a truncate feeding directly into a condition field. Now a copy is forced from sgpr(s1) to vcc, which is more sensible to handle. Some of these issues could probably avoided with making enough operations resulting in i1 illegal. I think we can't avoid this register bank for legality. For example, an i1 and where one source is from a truncate, and one source is a compare needs some kind of copy inserted to make sure both are in condition registers. llvm-svn: 350611
* [WebAssembly] Instruction renamingThomas Lively2019-01-0817-24/+24
| | | | | | | | | | | | Summary: Associated with D56338. Reviewers: aheejin, aardappel Subscribers: dschuff, sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D56339 llvm-svn: 350610
* [WebAssembly] Massive instruction renamingThomas Lively2019-01-0871-931/+931
| | | | | | | | | | | | | | | Summary: An automated renaming of all the instructions listed at https://github.com/WebAssembly/spec/issues/884#issuecomment-426433329 as well as some similarly-named identifiers. Reviewers: aheejin, dschuff, aardappel Subscribers: sbc100, jgravelle-google, eraman, sunfish, jfb, llvm-commits Differential Revision: https://reviews.llvm.org/D56338 llvm-svn: 350609
* [LLVM-C] Allow For Creating a BasicBlock without a Parent FunctionRobert Widmann2019-01-082-0/+15
| | | | | | | | | | | | | | Summary: Add a utility function for creating a basic block without a parent function. A useful operation for compilers that need to synthesize and conditionally insert code without having to bother with appending and immediately unlinking a block. Reviewers: whitequark, deadalnix Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D56279 llvm-svn: 350608
* [LLVM-C] Allow Specifying Signedness in Int CastRobert Widmann2019-01-082-2/+14
| | | | | | | | | | | | | | Summary: Fix an old outstanding problem with the int cast builder binding always assuming the cast is signed by introducing a new LLVMBuildIntCast2 operation and deprecating the old prototype. Reviewers: whitequark, deadalnix Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D56280 llvm-svn: 350607
* [MC] [AArch64] Support resolving signed fixups for :abs_g0_s: etc.Mandeep Singh Grang2019-01-083-28/+117
| | | | | | | | | | | | | | Summary: This patch is a follow-up to D55896. Reviewers: efriedma, mstorsjo Reviewed By: efriedma Subscribers: javed.absar, kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D56029 llvm-svn: 350606
* [NFC] Remove empty line as a test commit.Chris Kennelly2019-01-081-1/+0
| | | | llvm-svn: 350605
* gn build: Stop passing -o to ar.Peter Collingbourne2019-01-081-1/+1
| | | | | | | | | The -o flag means something different to ar than what appears to be intended here. Also, llvm-ar doesn't accept the flag in this position. Differential Revision: https://reviews.llvm.org/D56426 llvm-svn: 350604
* Set the buffer of an fstream to empty when the underlying file is closed. ↵Marshall Clow2019-01-082-0/+36
| | | | | | This 'fixes' PR#38052 - std::fstream still good after closing and updating content. llvm-svn: 350603
* Fix Mac compilation.Evgeniy Stepanov2019-01-081-0/+4
| | | | | | Provide an implementation of MemoryMappingLayout::Error() for Mac. llvm-svn: 350601
* gn build: Merge r350580.Peter Collingbourne2019-01-081-0/+1
| | | | llvm-svn: 350600
* [SymbolContext] Remove dead codeJonas Devlieghere2019-01-082-72/+13
| | | | | | Removes two methods from SymbolContextList that aren't referenced. llvm-svn: 350599
* AMDGPU/GlobalISel: Legalize concat_vectorsMatt Arsenault2019-01-082-0/+141
| | | | llvm-svn: 350598
* Fix typosMatt Arsenault2019-01-081-2/+2
| | | | llvm-svn: 350597
OpenPOWER on IntegriCloud