summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [LICM] sink through non-trivially replicable PHIJun Bum Lim2017-11-033-61/+427
| | | | | | | | | | | | | | | | | | | Summary: The current LICM allows sinking an instruction only when it is exposed to exit blocks through a trivially replacable PHI of which all incoming values are the same instruction. This change enhance LICM to sink a sinkable instruction through non-trivially replacable PHIs by spliting predecessors of loop exits. Reviewers: hfinkel, majnemer, davidxl, bmakam, mcrosier, danielcdh, efriedma, jtony Reviewed By: efriedma Subscribers: nemanjai, dberlin, llvm-commits Differential Revision: https://reviews.llvm.org/D37163 llvm-svn: 317335
* [SLP] Test for PR23510, NFC.Alexey Bataev2017-11-031-0/+84
| | | | llvm-svn: 317334
* Use ToolExecutor framework in the sample tool-template.Eric Liu2017-11-032-9/+42
| | | | llvm-svn: 317333
* [Tooling] Fix linking of StandaloneToolExecutorPlugin.Eric Liu2017-11-033-12/+11
| | | | llvm-svn: 317332
* [mips] Match 'ins' and its' variants with C++ codeSimon Dardis2017-11-036-17/+79
| | | | | | | | | | | | | Change the ISel matching of 'ins', 'dins[mu]' from tablegen code to C++ code. This resolves an issue where ISel would select 'dins' instead of 'dinsm' when the instructions size and position were individually in range but their sum was out of range according to the ISA specification. Reviewers: atanasyan Differential Revision: https://reviews.llvm.org/D39117 llvm-svn: 317331
* Fix for Bug 34475 - LOCK/REP/REPNE prefixes emitted as instruction on their own.Andrew V. Tischenko2017-11-038-130/+68
| | | | | | Differential Revision: https://reviews.llvm.org/D39546 llvm-svn: 317330
* Add float/vector registers for ppc64lePavel Labath2017-11-038-17/+1099
| | | | | | | | | | | | | | | Summary: Add read and write functions for VSX, VMX and float registers and fix watchpoint size Reviewers: clayborg Reviewed By: clayborg Subscribers: eugene, labath, clayborg, nemanjai, kbarton, JDevlieghere, anajuliapc, gut, lbianc, lldb-commits Differential Revision: https://reviews.llvm.org/D39487 Patch by: Alexandre Yukio Yamashita <alexandre.yamashita@eldorado.org.br> llvm-svn: 317329
* [Tooling] Put createExecutorFromCommandLineArgs implementation in a wrapper. NFCEric Liu2017-11-032-3/+20
| | | | llvm-svn: 317328
* Add type to FileSpec::PathSyntax enum.Don Hinton2017-11-031-1/+1
| | | | | | | | | | | | Summary: Add type to FileSpec::PathSyntax enum to decrease size for FileSpec on systems with 32 bit pointers. Thanks to @zturner for pointing this out. Differential Revision: https://reviews.llvm.org/D39574 llvm-svn: 317327
* Xfail test_stack_info_in_minidump testPavel Labath2017-11-031-0/+1
| | | | | | | The test has been failing since we enabled the i386 ABI plugin on windows. See pr35193 for details. llvm-svn: 317326
* [clang-format] Sort using-declarations case sensitively with a special case ↵Krasimir Georgiev2017-11-032-45/+33
| | | | | | | | | | | | | | | | | | | | for '_' Summary: This makes clang-format sort using declarations case-sensitive with the exception that '_' comes just before 'A'. This is better than the current case insensitive version, because it groups uppercase names in the same namespace together. Reviewers: bkramer Reviewed By: bkramer Subscribers: cfe-commits, klimek Differential Revision: https://reviews.llvm.org/D39549 llvm-svn: 317325
* [LoopPredication] NFC: Refactored code to separate out functions being reusedAnna Thomas2017-11-031-62/+92
| | | | | | | | | | | | Summary: Refactored the code to separate out common functions that are being reused. This is to reduce the changes for changes coming up wrt loop predication with reverse loops. This refactoring is what we have in our downstream code. llvm-svn: 317324
* [ADCE] Use MapVector for BlockInfo to make iteration order deterministicMikael Holmen2017-11-032-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: Also added a reserve() method to MapVector since we want to use that from ADCE. DenseMap does not provide deterministic iteration order so with that we will handle the members of BlockInfo in random order, eventually leading to random order of the blocks in the predecessor lists. Without this change, I get the same predecessor order in about 90% of the time when I compile a certain reproducer and in 10% I get a different one. No idea how to make a proper test case for this. Reviewers: kuhar, david2050 Reviewed By: kuhar Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D39593 llvm-svn: 317323
* [clangd] Handle clangd.applyFix server-sideMarc-Andre Laperle2017-11-0313-49/+346
| | | | | | | | | | | | | | | | | | | | | | | Summary: When the user selects a fix-it (or any code action with commands), it is possible to let the client forward the selected command to the server. When the clangd.applyFix command is handled on the server, it can send a workspace/applyEdit request to the client. This has the advantage that the client doesn't explicitly have to know how to handle clangd.applyFix. Therefore, the code to handle clangd.applyFix in the VS Code extension (and any other Clangd client) is not required anymore. Reviewers: ilya-biryukov, sammccall, Nebiroth, hokein Reviewed By: hokein Subscribers: ioeric, hokein, rwols, puremourning, bkramer, ilya-biryukov Tags: #clang-tools-extra Differential Revision: https://reviews.llvm.org/D39276 llvm-svn: 317322
* [ELF] - Remove excessive field initialization. NFC.George Rimar2017-11-031-1/+0
| | | | | | It is already initialized in header file to same value. llvm-svn: 317320
* Fix classifications on two concurrent event testsPavel Labath2017-11-032-1/+1
| | | | | | | I have classified one as a watchpoint test even though it wasn't and vice versa. Fix that. llvm-svn: 317319
* re-land [ExpandMemCmp] Split ExpandMemCmp from CodeGen into its own pass."Clement Courbet2017-11-0315-1200/+1350
| | | | | | Fix undefined references: ExpandMemCmp belongs to CodeGen/, not Scalar/. llvm-svn: 317318
* [ELf] - Fix compilation after r317307.George Rimar2017-11-031-0/+1
| | | | | | | | | Not sure why that seems did not break any llvm bots or my windows local build, but is was required to fix compilation breakage of my ubuntu build when using gcc version 8.0.0 20171019 (experimental) llvm-svn: 317317
* [ELF] - Removed unused variable. NFC.George Rimar2017-11-031-4/+1
| | | | llvm-svn: 317316
* [X86][SSE] Add PACKUS support to combineVectorTruncationSimon Pilgrim2017-11-034-141/+141
| | | | | | | | Similar to the existing code to lower to PACKSS, we can use PACKUS if the input vector's leading zero bits extend all the way to the packed/truncated value. We have to account for pre-SSE41 targets not supporting PACKUSDW llvm-svn: 317315
* [PartialInliner] Skip call sites where inlining fails.Florian Hahn2017-11-032-7/+54
| | | | | | | | | | | | | | | | | | Summary: InlineFunction can fail, for example when trying to inline vararg fuctions. In those cases, we do not want to bump partial inlining counters or set AnyInlined to true, because this could leave an unused function hanging around. Reviewers: davidxl, davide, gyiu Reviewed By: davide Subscribers: llvm-commits, eraman Differential Revision: https://reviews.llvm.org/D39581 llvm-svn: 317314
* [globalisel][tablegen] Skip src child predicatesDiana Picus2017-11-032-0/+38
| | | | | | | | | | | | | | | | | | The GlobalISel TableGen backend didn't check for predicates on the source children. This caused it to generate code for ARM patterns such as SMLABB or similar, but without properly checking for the sext_16_node part of the operands. This in turn meant that we would select SMLABB instead of MLA for simple sequences such as s32 + s32 * s32, which is wrong (we want a MLA on the full operands, not just their bottom 16 bits). This patch forces TableGen to skip patterns with predicates on the src children, so it doesn't generate code for SMLABB and other similar ARM instructions at all anymore. AArch64 and X86 are not affected. Differential Revision: https://reviews.llvm.org/D39554 llvm-svn: 317313
* [ARM GlobalISel] Move the check for Thumb higher upDiana Picus2017-11-031-6/+6
| | | | | | | | | We're currently bailing out for Thumb targets while lowering formal parameters, but there used to be some other checks before it, which could've caused some functions (e.g. those without formal parameters) to sneak through unnoticed. llvm-svn: 317312
* [Analysis] Refine matching and merging of TBAA tagsIvan A. Kosarev2017-11-031-78/+95
| | | | | | | | | | This patch combines the code that matches and merges TBAA access tags. The aim is to simplify future changes and making sure that these operations produce consistent results. Differential Revision: https://reviews.llvm.org/D39463 llvm-svn: 317311
* [PEI] Simplify handling of targets with no phys regs. NFCFrancis Visoiu Mistrih2017-11-031-13/+3
| | | | | | | | | Make doSpillCalleeSavedRegs a member function, instead of passing most of the members of PEI as arguments. Differential Review: https://reviews.llvm.org/D35642 llvm-svn: 317309
* [preamble] Also record the "skipping" state of the preprocessorErik Verbruggen2017-11-037-16/+102
| | | | | | | | | | When a preamble ends in a conditional preprocessor block that is being skipped, the preprocessor needs to continue skipping that block when the preamble is used. This fixes PR34570. llvm-svn: 317308
* [ELF] - Linkerscript: fixed non-determinism when handling MEMORY.George Rimar2017-11-033-2/+25
| | | | | | | | | | | | | When findMemoryRegion do search to find a region for output section it iterates over MemoryRegions which is DenseMap and so does not guarantee iteration in insertion order. As a result selected region depends on its name and not on its definition position Testcase shows the issue, patch fixes it. Behavior after applying the patch seems consistent with bfd. Differential revision: https://reviews.llvm.org/D39544 llvm-svn: 317307
* [ELF] - Teach LLD to strip .zdebug_* sections when --strip-debug/--strip-all ↵George Rimar2017-11-032-20/+10
| | | | | | | | | | | is specified. Currently we do not strip .zdebug_*, what looks wrong. Also this simplifies the testcase we have for this options. Differential revision: https://reviews.llvm.org/D39552 llvm-svn: 317306
* [ELF] - Teach LLD to use information from .debug_str for error reporting.George Rimar2017-11-033-1/+164
| | | | | | | | | | | | Recently we teached LLD to report line numbers for duplicate variables definitions, though currently LLD is unable to do that for case when strings are not built in .debug_info, but stored in .debug_str instead. That is because out LLDDwarfObj does not handle .debug_str yet. Patch fixes that. Differential revision: https://reviews.llvm.org/D39542 llvm-svn: 317305
* [AArch64] Use dwarf exception handling on MinGWMartin Storsjo2017-11-033-1/+47
| | | | | | | | | | Ideally we should probably produce WinEH here as well, but until then, we can use dwarf exceptions, without any further changes required in clang, libunwind or libcxxabi. Differential Revision: https://reviews.llvm.org/D39535 llvm-svn: 317304
* [NFC] Get rid of hard-coded value ID in testMax Kazantsev2017-11-031-1/+1
| | | | llvm-svn: 317303
* [MinGW] Add an option -Xlink for passing options through to lld-linkMartin Storsjo2017-11-033-1/+9
| | | | | | | | | Also move the -mllvm option to the right section of the options list. Differential Revision: https://reviews.llvm.org/D39528 llvm-svn: 317302
* [llvm-nm] Don't error out on multiple occurrances of the -g/--external-only flagMartin Storsjo2017-11-032-2/+5
| | | | | | | | | | | GNU binutils nm doesn't error out on this, and some projects' build systems can end up doing that in some cases. Allowing that seems like a better target than trying to avoid user projects passing multiple -g parameters to $NM. Differential Revision: https://reviews.llvm.org/D39539 llvm-svn: 317301
* [llvm-nm] Print 'I' for import table data in COFFMartin Storsjo2017-11-032-0/+6
| | | | | | | | | | | | | | | | | | | | | | The character gets uppercased into 'I' when it's a global symbol. In GNU binutils, nm prints 'I' for symbols classified by bfd_is_ind_section - which probably isn't exactly/only import tables. When building for win32, (some incarnations of?) libtool has got rules that try to inspect linked libraries, and in order to be sure that it is linking to a DLL import library as opposed to a static library, it expects to find the string " I " in the output of $NM when run on such an import library. GNU binutils nm also flags all of the .idata$X chunks as 'i' (while this patch only makes it set on .idata$2 and .idata$6) and also flags __imp__function as 'I'. Differential Revision: https://reviews.llvm.org/D39540 llvm-svn: 317300
* [X86] Remove PALIGNR/VALIGN handling from combineBitcastForMaskedOp and move ↵Craig Topper2017-11-033-24/+133
| | | | | | to isel patterns instead. Prefer 128-bit VALIGND/VALIGNQ over PALIGNR during lowering when possible. llvm-svn: 317299
* [TableGen] Add an extra blank line to DAGISel output file to separate functions.Craig Topper2017-11-031-1/+1
| | | | llvm-svn: 317298
* [CUDA] Mark CUDA as a no-errno platform.Justin Lebar2017-11-031-0/+1
| | | | | | | | | | | | | | | | | | | | Summary: CUDA doesn't support errno at all, so this is the right thing -- or at least, in the right direction. But also, this unbreaks the CUDA test-suite math tests [0] after D39481. __cuda_cmath.h forwards nexttoward() to __builtin_nexttoward, which, after that patch, was lowering to a libcall that doesn't exist in NVPTX. [0] http://lab.llvm.org:8011/builders/clang-cuda-build/builds/14999 Reviewers: tra Subscribers: sanjoy, cfe-commits Differential Revision: https://reviews.llvm.org/D39586 llvm-svn: 317297
* [c++17] Visit class template explicit specializations just like all other ↵Richard Smith2017-11-032-9/+19
| | | | | | | | class definitions in codegen. If an explicit specialization has a static data member, it may be a definition and we may need to register it for emission. llvm-svn: 317296
* [LSR] Clarify a comment. NFC.Vedant Kumar2017-11-031-1/+1
| | | | llvm-svn: 317295
* [analyzer] [NFC] very minor ExprEngineC refactoringGeorge Karpenkov2017-11-031-4/+2
| | | | | | Differential Revision: https://reviews.llvm.org/D39577 llvm-svn: 317294
* [analyzer] do not crash on libcxx03 call_once implementationGeorge Karpenkov2017-11-032-8/+72
| | | | | | | | Addresses https://bugs.llvm.org/show_bug.cgi?id=35075, rdar://35230961 Differential Revision: https://reviews.llvm.org/D39518 llvm-svn: 317293
* Avoid PLT for external calls when attribute nonlazybind is used.Sriraman Tallam2017-11-032-2/+32
| | | | | | Differential Revision: https://reviews.llvm.org/D39065 llvm-svn: 317292
* Reland "Add feature to determine if host architecture is 64-bit in llvm-lit"Jake Ehrlich2017-11-021-0/+1
| | | | | | | | | | A member of config was removed in this patch which resulted in errors I didn't expect. Removing config.host_arch will take more work some I'm readding that field. Differential Revision: https://reviews.llvm.org/D39465 llvm-svn: 317289
* [Verifier] Remove the -verify-debug-info cl::optVedant Kumar2017-11-023-4/+2
| | | | | | | This cl::opt has been dead for a while. It's no longer possible to run the verifier without also verifying debug info. llvm-svn: 317288
* [AArch64][RegisterBankInfo] Add mapping for G_FPEXT.Quentin Colombet2017-11-024-1/+193
| | | | | | | | | | This fixes http://llvm.org/PR32560. We were missing a description for half floating point type and as a result were using the FPR 32 mapping. Because of the size mismatch the generic code was complaining that the default mapping is not appropriate. Fix the mapping description so that the default mapping can be properly applied. llvm-svn: 317287
* [AArch64][RegisterBankInfo] Add FPR16 support in value mapping.Quentin Colombet2017-11-023-35/+48
| | | | | | NFC. llvm-svn: 317286
* mir-canon: First commit.Puyan Lotfi2017-11-024-0/+629
| | | | | | | | | | | | | | | mir-canon (MIRCanonicalizerPass) is a pass designed to reorder instructions and rename operands so that two similar programs will diff more cleanly after being run through mir-canon than they would otherwise. This project is still a work in progress and there are ideas still being discussed for improving diff quality. M include/llvm/InitializePasses.h M lib/CodeGen/CMakeLists.txt M lib/CodeGen/CodeGen.cpp A lib/CodeGen/MIRCanonicalizerPass.cpp llvm-svn: 317285
* [llvm-objcopy] Fix bug in how segment alignment was being handledJake Ehrlich2017-11-023-3/+124
| | | | | | | | | | | | | | | Just aligning segment offsets to segment alignment is incorrect and also wastes more space than is needed. The requirement is that p_offset == p_addr modulo p_align *not* that p_offset == 0 modulo p_align. Generally speaking we've been using p_addr == 0 modulo p_align. In fact yaml2obj can't even produce a valid situation which causes llvm-objcopy to produce incorrect results because alignment and offset were both inherited from the sections the program header covers. This change fixes this bad behavior in llvm-objcopy. Differential Revision: https://reviews.llvm.org/D39132 llvm-svn: 317284
* [X86] Give AVX512VL instructions priority over their AVX equivalents.Craig Topper2017-11-024-18/+38
| | | | | | I thought we had gotten all these priority bugs worked out, but I guess not. llvm-svn: 317283
* IndVarSimplify: preserve debug information attached to widened PHI nodes.Adrian Prantl2017-11-022-0/+81
| | | | | | | | | | This fixes PR35015. https://bugs.llvm.org/show_bug.cgi?id=35015 Differential Revision: https://reviews.llvm.org/D39345 llvm-svn: 317282
OpenPOWER on IntegriCloud