summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Delete BuiltinCC. NFC.Rafael Espindola2018-03-205-26/+3
| | | | | | It is always identical to RuntimeCC. llvm-svn: 328050
* [WebAssembly] Strip threadlocal attribute from globals in single thread modeDerek Schuff2018-03-202-2/+37
| | | | | | | | | The default thread model for wasm is single, and in this mode thread-local global variables can be lowered identically to non-thread-local variables. Differential Revision: https://reviews.llvm.org/D44703 llvm-svn: 328049
* Add CHECKs for a few declarations. NFC.Rafael Espindola2018-03-201-0/+4
| | | | | | We were just missing test coverage for this. llvm-svn: 328048
* [format] Eliminate global destructors.Benjamin Kramer2018-03-202-8/+7
| | | | llvm-svn: 328047
* Read OMP_TARGET_OFFLOAD and provide API to access ICVJonathan Peyton2018-03-205-0/+64
| | | | | | | | | | | | | | Added settings code to read OMP_TARGET_OFFLOAD environment variable. Added target-offload-var ICV as __kmp_target_offload, set via OMP_TARGET_OFFLOAD, if available, otherwise defaulting to DEFAULT. Valid values for the ICV are specified as enum values {0,1,2} for disabled, default, and mandatory. An internal API access function __kmpc_get_target_offload is provided. Patch by Terry Wilmarth Differential Revision: https://reviews.llvm.org/D44577 llvm-svn: 328046
* [X86] Drop unnecessary InstRW overrides for WriteFMASimon Pilgrim2018-03-201-24/+0
| | | | | | As noticed on D44687, these already match the WriteFMA def so can be removed. llvm-svn: 328045
* [Driver] Fix some Clang-tidy modernize and Include What You Use warnings; ↵Eugene Zelenko2018-03-2010-220/+310
| | | | | | other minor fixes (NFC). llvm-svn: 328044
* [ReachingDefAnalysis] Fix what I assume to be a typo ↵Craig Topper2018-03-202-5/+5
| | | | | | | | ReachingDedDefaultVal->ReachingDefDefaultVal. Unless Ded has some many I don't know about. llvm-svn: 328043
* [ObjCARC] Add funclet token to ARC markerShoaib Meenai2018-03-202-8/+88
| | | | | | | | | | | | | | | The inline assembly generated for the ARC autorelease elision marker must have a funclet token if it's emitted inside a funclet, otherwise the inline assembly (and all subsequent code in the funclet) will be marked unreachable by WinEHPrepare. Note that this only applies for the non-O0 case, since at O0, clang emits the autorelease elision marker itself rather than deferring to the backend. The fix for clang is handled in a separate change. Differential Revision: https://reviews.llvm.org/D44641 llvm-svn: 328042
* [format] Initialize regex lazilyBenjamin Kramer2018-03-201-8/+8
| | | | | | | No need to pay for this on program startup, and also no need to destroy it on process end. llvm-svn: 328041
* Set dso_local on string literals.Rafael Espindola2018-03-206-12/+13
| | | | llvm-svn: 328040
* [X86] Don't use the MSVC stack protector names on mingwMartin Storsjo2018-03-203-4/+208
| | | | | | | | | | | Mingw uses the same stack protector functions as GCC provides on other platforms as well. Patch by Valentin Churavy! Differential Revision: https://reviews.llvm.org/D27296 llvm-svn: 328039
* [AArch64] Add vmulxh_lane fp16 vector intrinsicAbderrazek Zaafrani2018-03-203-19/+25
| | | | | | https://reviews.llvm.org/D44591 llvm-svn: 328038
* For llvm-objdump and Mach-O files, fix the printing of module init andKevin Enderby2018-03-203-9/+47
| | | | | | | | | | | term sections from .o files to look to see if the pointers have a relocation entry and if so print the symbol name from the relocation entry. If not fall back to the existing code and use the pointer value to look up that value in the symbol table. rdar://38337506 llvm-svn: 328037
* Set dso_local for runtime function.Rafael Espindola2018-03-202-19/+20
| | | | | | | This is another case where there is special logic for adding dllimport and so we cannot use setGVProperties. llvm-svn: 328036
* [AArch64] Add vmulxh_lane fp16 vector intrinsicAbderrazek Zaafrani2018-03-201-0/+30
| | | | | | https://reviews.llvm.org/D44591 llvm-svn: 328035
* [TableGen] Use range based for loop. NFCCraig Topper2018-03-201-5/+2
| | | | llvm-svn: 328034
* [TableGen] Use vector::append instead of looping and calling push_back. NFCCraig Topper2018-03-201-4/+2
| | | | | | Both vectors contain unsigned so we can just use append to do the copying. Not only is this shorter, but it should be able to predict the final size and only grow the vector once if needed. llvm-svn: 328033
* [TableGen] Use llvm::transform to simplify some loops. NFCICraig Topper2018-03-201-18/+12
| | | | llvm-svn: 328032
* [TableGen] Pass result of std::unique to vector::erase instead of ↵Craig Topper2018-03-206-3/+99
| | | | | | calculating a size and calling resize. llvm-svn: 328031
* [DEBUGINFO] Add -no-dwarf-debug-ranges option.Alexey Bataev2018-03-204-4/+81
| | | | | | | | | | | | | | Summary: Added option -no-dwarf-debug-ranges option to disable emission of .debug_ranges section. Reviewers: probinson, echristo Subscribers: aprantl, JDevlieghere, llvm-commits Differential Revision: https://reviews.llvm.org/D44384 llvm-svn: 328030
* [llvm-mca] add keyword override to a couple of methods in BackendStatistics.Andrea Di Biagio2018-03-201-2/+2
| | | | | | This should fix the buildbots after r328011. llvm-svn: 328029
* [WebAssembly] Added initial AsmParser implementation.Derek Schuff2018-03-2010-7/+686
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It uses the MC framework and the tablegen matcher to do the heavy lifting. Can handle both explicit and implicit locals (-disable-wasm-explicit-locals). Comes with a small regression test. This is a first basic implementation that can parse most llvm .s output and round-trips most instructions succesfully, but in order to keep the commit small, does not address all issues. There are a fair number of mismatches between what MC / assembly matcher think a "CPU" should look like and what WASM provides, some already have workarounds in this commit (e.g. the way it deals with register operands) and some that require further work. Some of that further work may involve changing what the Disassembler outputs (and what s2wasm parses), so are probably best left to followups. Some known things missing: - Many directives are ignored and not emitted. - Vararg calls are parsed but extra args not emitted. - Loop signatures are likely incorrect. - $drop= is not emitted. - Disassembler does not output SIMD types correctly, so assembler can't test them. Patch by Wouter van Oortmerssen Differential Revision: https://reviews.llvm.org/D44329 llvm-svn: 328028
* [AArch64] Adjust the cost model for Exynos M3Evandro Menezes2018-03-201-1/+1
| | | | | | Fix typo in the number of integer dividers. llvm-svn: 328027
* [llvm-objcopy] Revert the tests from r328012Alexander Shaposhnikov2018-03-204-152/+0
| | | | | | Temporarily revert the tests from r328012 as well. llvm-svn: 328026
* [ExpressionParser] Re-implement r327356 in a less disruptive way.Davide Italiano2018-03-2010-29/+78
| | | | | | | | | | | | Instead of applying the sledgehammer of refusing to insert any C++ symbol in the ASTContext, try to validate the decl if what we have is an operator. There was other code in lldb which was responsible for this, just not really exposed (or used) in this codepath. Also, add a better/more comprehensive test. <rdar://problem/35645893> llvm-svn: 328025
* [llvm-objcopy] Revert r328012Alexander Shaposhnikov2018-03-202-120/+43
| | | | | | | Temporarily revert r328012 (since it broke down the big-endian bots), will resubmit an updated version later. llvm-svn: 328024
* [Hexagon] Add a few more lit tests, NFCKrzysztof Parzyszek2018-03-2014-0/+1134
| | | | llvm-svn: 328023
* [Hexagon] Add heuristic to exclude critical path cost for schedulingKrzysztof Parzyszek2018-03-206-184/+88
| | | | | | Patch by Brendon Cahoon. llvm-svn: 328022
* [Hexagon] Fix fall-through warnings in HexagonMCDuplexInfo.cppKrzysztof Parzyszek2018-03-201-4/+4
| | | | llvm-svn: 328021
* [lldb-dotest] Wrap arguments in single quotesJonas Devlieghere2018-03-201-2/+6
| | | | | | | | If we don't wrap arguments to the wrapper in single quotes, combined arguments, for example for -E, don't reach dotest.py as a unit but as separate arguments, causing the latter to fail. llvm-svn: 328020
* [MC,X86] Cleanup some X86 parser functions to use MCParser helpers. NFCI.Nirav Dave2018-03-201-45/+22
| | | | llvm-svn: 328019
* [llvm-mca] Remove const from a bunch of ArrayRef. NFCAndrea Di Biagio2018-03-206-14/+14
| | | | llvm-svn: 328018
* [PowerPC][LegalizeFloatTypes] Move the PPC hacks for (i32 ↵Craig Topper2018-03-203-60/+362
| | | | | | | | | | | | | | fp_to_sint/fp_to_uint (ppcf128 X)) out of LegalizeFloatTypes and into PPC specific code I'm not entirely sure these hacks are still needed. If you remove the hacks completely, the name of the library call that gets generated doesn't match the grep the test previously had. So the test wasn't really checking anything. If the hack is still needed it belongs in PPC specific code. I believe the FP_TO_SINT code here is the only place in the tree where a FP_ROUND_INREG node is created today. And I don't think its even being used correctly because the legalization returned a BUILD_PAIR with the same value twice. That doesn't seem right to me. By moving the code entirely to PPC we can avoid creating the FP_ROUND_INREG at all. I replaced the grep in the existing test with full checks generated by hacking update_llc_test_check.py to support ppc32 just long enough to generate it. Differential Revision: https://reviews.llvm.org/D44061 llvm-svn: 328017
* [X86] Add phony registers for high halves of regs with low halvesKrzysztof Parzyszek2018-03-2010-51/+124
| | | | | | | | | | | | | | | | | Registers E[A-D]X, E[SD]I, E[BS]P, and EIP have 16-bit subregisters that cover the low halves of these registers. This change adds artificial subregisters for the high halves in order to differentiate (in terms of register units) between the 32- and the low 16-bit registers. This patch contains parts that aim to preserve the calculated register pressure. This is in order to preserve the current codegen (minimize the impact of this patch). The approach of having artificial subregisters could be used to fix PR23423, but the pressure calculation would need to be changed. Differential Revision: https://reviews.llvm.org/D43353 llvm-svn: 328016
* [MustExecute] Use the annotation style printerPhilip Reames2018-03-202-54/+82
| | | | | | | As suggested in the original review (https://reviews.llvm.org/D44524), use an annotation style printer instead. Note: The switch from -analyze to -disable-output in tests was driven by the fact that seems to be the idiomatic style used in annoation passes. I tried to keep both working, but the old style pass API for printers really doesn't make this easy. It invokes (runOnFunction, print(Module)) repeatedly. I decided the extra state wasn't worth it given the old pass manager is going away soonish anyway. llvm-svn: 328015
* Revert "Resubmit "Support embedding natvis files in PDBs.""Zachary Turner2018-03-2031-656/+47
| | | | | | | | This is still failing on a different bot this time due to some issue related to hashing absolute paths. Reverting until I can figure it out. llvm-svn: 328014
* [TestExpr] Fix a typo in a test, unbreaking the lldb Mac OS X bot.Davide Italiano2018-03-201-1/+1
| | | | llvm-svn: 328013
* [llvm-objcopy] Implement support for section groupsAlexander Shaposhnikov2018-03-206-43/+272
| | | | | | | | | | | | | | | | | This diff adds support for SHT_GROUP sections to llvm-objcopy. Some sections are interrelated and comprise a group. For example, a definition of an inline function might require, in addition to the section containing its instructions, a read-only data section containing literals referenced inside the function. A section of the type SHT_GROUP contains the indices of the group members, therefore, it needs to be updated whenever the indices change. Similarly, the fields sh_link, sh_info should be recalculated as well. Test plan: make check-all Differential revision: https://reviews.llvm.org/D43996 llvm-svn: 328012
* [llvm-mca] Move the logic that computes the scheduler's queue usage to the ↵Andrea Di Biagio2018-03-207-59/+119
| | | | | | | | | | | | | | | | | | | | | | BackendStatistics view. This patch introduces two new callbacks in the event listener interface to handle the "buffered resource reserved" event and the "buffered resource released" event. Every time a buffered resource is used, an event is generated. Before this patch, the Scheduler (with the help of the ResourceManager) was responsible for tracking the scheduler's queue usage. However, that design forced the Scheduler to 'publish' scheduler's queue pressure information through the Backend interface. The goal of this patch is to break the dependency between the BackendStatistics view, and the Backend. Now the Scheduler knows how to notify "buffer reserved/released" events. The scheduler's queue usage analysis has been moved to the BackendStatistics. Differential Revision: https://reviews.llvm.org/D44686 llvm-svn: 328011
* Fix consitent -> consistent.Eric Christopher2018-03-202-2/+2
| | | | llvm-svn: 328010
* [ELF] Simplify compCtors and writeInt.Fangrui Song2018-03-201-6/+3
| | | | | | | | | | Reviewers: ruiu Subscribers: emaste, arichardson, llvm-commits Differential Revision: https://reviews.llvm.org/D44690 llvm-svn: 328009
* Basic: support PreserveMost and PreserveAll on Windows ARMSaleem Abdulrasool2018-03-203-0/+4
| | | | | | | Do not ignore these calling conventions on Windows ARM. They are used by the swift runtime for certain calls. llvm-svn: 328007
* [NVPTX] Make tensor load/store intrinsics overloaded.Artem Belevich2018-03-205-157/+174
| | | | | | | | | | | | | | | | This way we can support address-space specific variants without explicitly encoding the space in the name of the intrinsic. Less intrinsics to deal with -> less boilerplate. Added a bit of tablegen magic to match/replace an intrinsics with a pointer argument in particular address space with the space-specific instruction variant. Updated tests to use non-default address spaces. Differential Revision: https://reviews.llvm.org/D43268 llvm-svn: 328006
* Adjust to clang-format changesTobias Grosser2018-03-2032-46/+0
| | | | llvm-svn: 328005
* Add an analysis printer for must execute reasoningPhilip Reames2018-03-207-0/+194
| | | | | | | | | | | | Many of our loop passes make use of so called "must execute" or "guaranteed to execute" facts to prove the legality of code motion. The basic notion is that we know (by assumption) an instruction didn't fault at it's original location, so if the location we move it to is strictly post dominated by the original, then we can't have introduced a new fault. At the moment, the testing for this logic is somewhat adhoc and done mostly through LICM. Since I'm working on that code, I want to improve the testing. This patch is the first step in that direction. It doesn't actually test the variant used by the loop passes - I need to move that to the Analysis library first - but instead exercises an alternate implementation used by SCEV. (I plan on merging both implementations.) Note: I'll be replacing the printing logic within this with an annotation based version in the near future. Anna suggested this in review, and it seems like a strictly better format. Differential Revision: https://reviews.llvm.org/D44524 llvm-svn: 328004
* MC: fix layering violation introduced in r325139.Rafael Espindola2018-03-202-115/+115
| | | | | | | | | Move AsmToken from MC/MCParser/MCAsmLexer.h into MC/MCAsmMacro.h in order to avoid MCAsmMacro definition depending on MCParser. Patch by Roger Pau Monné <royger@freebsd.org>. llvm-svn: 328003
* Resubmit "Support embedding natvis files in PDBs."Zachary Turner2018-03-2031-47/+656
| | | | | | | | | | | The issue causing this to fail in certain configurations should be fixed. It was due to the fact that DIA apparently expects there to be a null string at ID 1 in the string table. I'm not sure why this is important but it seems to make a difference, so set it. llvm-svn: 328002
* [LangRef] fix link formattingSanjay Patel2018-03-201-11/+11
| | | | llvm-svn: 328001
* [Hexagon] Correct the computation of TopReadyCycle and BotReadyCycle of SUKrzysztof Parzyszek2018-03-202-14/+5
| | | | | | | | | TopReadyCycle and BotReadyCycle were off by one cycle when an SU is either the first instruction or the last instruction in a packet. Patch by Ikhlas Ajbar. llvm-svn: 328000
OpenPOWER on IntegriCloud