summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [WebAssembly] llvm-readobj: display symbols names in relocationsSam Clegg2018-05-016-55/+70
| | | | | | Differential Revision: https://reviews.llvm.org/D46296 llvm-svn: 331279
* AMDGPU/NFC: Use enum values for first/last machs instead of numbersKonstantin Zhuravlyov2018-05-011-4/+10
| | | | llvm-svn: 331278
* [lit] Replace generator expressions in lit.site.cfgJonas Devlieghere2018-05-011-0/+12
| | | | | | | | The lit site configuration for the test suite can contain generator expressions such as $<TARGET_FILE:debugserver> that need to be substituted. llvm-svn: 331277
* [X86] Split WriteFAdd into XMM and YMM/ZMM scheduler classesSimon Pilgrim2018-05-0111-91/+31
| | | | | | Removes more WriteFAdd InstRW overrides llvm-svn: 331276
* Remove @brief commands from doxygen comments, too.Adrian Prantl2018-05-0187-839/+839
| | | | | | | | | | | | | | | | | This is a follow-up to r331272. We've been running doxygen with the autobrief option for a couple of years now. This makes the \brief markers into our comments redundant. Since they are a visual distraction and we don't want to encourage more \brief markers in new code either, this patch removes them all. Patch produced by for i in $(git grep -l '\@brief'); do perl -pi -e 's/\@brief //g' $i & done https://reviews.llvm.org/D46290 llvm-svn: 331275
* [SLP] Add additional test for transposable binary operations with reuseMatthew Simpson2018-05-011-2/+44
| | | | llvm-svn: 331274
* [X86] Convert all uses of WriteFAdd to X86SchedWriteWidths.Simon Pilgrim2018-05-013-162/+180
| | | | | | In preparation of splitting WriteFAdd by vector width. llvm-svn: 331273
* Remove \brief commands from doxygen comments.Adrian Prantl2018-05-01781-5005/+5005
| | | | | | | | | | | | | | | | We've been running doxygen with the autobrief option for a couple of years now. This makes the \brief markers into our comments redundant. Since they are a visual distraction and we don't want to encourage more \brief markers in new code either, this patch removes them all. Patch produced by for i in $(git grep -l '\\brief'); do perl -pi -e 's/\\brief //g' $i & done Differential Revision: https://reviews.llvm.org/D46290 llvm-svn: 331272
* [DAG] add test to show FMF mismatch between IR and DAG; NFCSanjay Patel2018-05-011-0/+32
| | | | | | | D45710 proposes to change this, but we have no test coverage for the first step in this process. llvm-svn: 331271
* Remove redundant command.Adrian Prantl2018-05-011-1/+0
| | | | llvm-svn: 331270
* [LV] Preserve inbounds on created GEPsDaniel Neilson2018-05-0112-254/+382
| | | | | | | | | | | | | | | | | | | Summary: This is a fix for PR23997. The loop vectorizer is not preserving the inbounds property of GEPs that it creates. This is inhibiting some optimizations. This patch preserves the inbounds property in the case where a load/store is being fed by an inbounds GEP. Reviewers: mkuper, javed.absar, hsaito Reviewed By: hsaito Subscribers: dcaballe, hsaito, llvm-commits Differential Revision: https://reviews.llvm.org/D46191 llvm-svn: 331269
* [clang-tidy/google-runtime-int] Allow passing non-bitwidth types to ↵Ben Hamilton2018-05-012-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | printf()-style APIs Summary: The `google-runtime-int` check currently fires on calls like: printf("%lu", (unsigned long)foo); However, the style guide says: > Where possible, avoid passing arguments of types specified by > bitwidth typedefs to printf-based APIs. http://google.github.io/styleguide/cppguide.html#64-bit_Portability This diff relaxes the check to not fire on parameters to functions with the `__format__` attribute. (I didn't specifically check for `__printf__` since there are a few variations.) Test Plan: New tests added. Ran tests with: % make -j16 check-clang-tools Reviewers: alexfh, bkramer Reviewed By: alexfh Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D46293 llvm-svn: 331268
* [clang-tidy] Add Apple prefix acronyms to objc-property-declarationBen Hamilton2018-05-012-0/+10
| | | | | | | | | | | | | | | | | | | | | Summary: This adds a few common Apple first-party API prefixes as acronyms to `objc-property-declaration`. Here's a list showing where these come from: http://nshipster.com/namespacing/ Test Plan: New tests added. Ran tests with: % make -j16 check-clang-tools Reviewers: Wizard, hokein Subscribers: klimek, xazax.hun, cfe-commits Differential Revision: https://reviews.llvm.org/D46206 llvm-svn: 331267
* Fix the issue that ComputeValueKnownInPredecessors only handles the case whenWei Mi2018-05-013-4/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | phi is on lhs of a comparison op. For the following testcase, L1: %t0 = add i32 %m, 7 %t3 = icmp eq i32* %t2, null br i1 %t3, label %L3, label %L2 L2: %t4 = load i32, i32* %t2, align 4 br label %L3 L3: %t5 = phi i32 [ %t0, %L1 ], [ %t4, %L2 ] %t6 = icmp eq i32 %t0, %t5 br i1 %t6, label %L4, label %L5 We know if we go through the path L1 --> L3, %t6 should always be true. However currently, if the rhs of the eq comparison is phi, JumpThreading fails to evaluate %t6 to true. And we know that Instcombine cannot guarantee always canonicalizing phi to the left hand side of the comparison operation according to the operand priority comparison mechanism in instcombine. The patch handles the case when rhs of the comparison op is a phi. Differential Revision: https://reviews.llvm.org/D46275 llvm-svn: 331266
* [InstCombine] new testcases for OverflowingBinaryOperators and ↵Omer Paparo Bivas2018-05-011-0/+1149
| | | | | | | | | PossiblyExactOperators transformations; NFC instcombine should transform the relevant cases if the OverflowingBinaryOperator/PossiblyExactOperator can be proven to be safe. Change-Id: I7aec62a31a894e465e00eb06aed80c3ea0c9dd45 llvm-svn: 331265
* [X86] Split WriteFShuffle into XMM and YMM/ZMM scheduler classesSimon Pilgrim2018-05-0111-163/+96
| | | | | | Removes more WriteFShuffle InstRW overrides llvm-svn: 331264
* Add Microsoft Mangling for OpenCL Half TypeErich Keane2018-05-012-2/+6
| | | | | | | | | | | | Half-type mangling is accomplished following the method introduced by Erich Keane for mangling _Float16. Updated the half.cl LIT test to cover this particular case. Patch By: vbridgers Differential Revision: https://reviews.llvm.org/D46131 llvm-svn: 331263
* [X86] Convert all uses of WriteFShuffle to X86SchedWriteWidths.Simon Pilgrim2018-05-012-123/+153
| | | | | | In preparation of splitting WriteFShuffle by vector width. llvm-svn: 331262
* [OPENMP] Emit template instatiation|specialization functions forAlexey Bataev2018-05-012-5/+18
| | | | | | | | | | devices. If the function is an instantiation|specialization of the template and is used in the device code, the definitions of such functions should be emitted for the device. llvm-svn: 331261
* [AArch64][SVE] Asm: Support for contiguous ST1 (scalar+scalar) store ↵Sander de Smalen2018-05-0110-1/+214
| | | | | | | | | | | | instructions. Reviewers: fhahn, rengolin, samparker, SjoerdMeijer, javed.absar Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D46121 llvm-svn: 331260
* Reland r331175: "[mips] Fix the predicates of jump and branch and link ↵Simon Dardis2018-05-015-51/+71
| | | | | | | | | | | | | | | | instructions" The previous version of this patch restricted the 'jal' instruction to MIPS and microMIPSr3. microMIPS32r6 does not have this instruction and instead uses jal as an alias for balc. Original commit message: > Reviewers: smaksimovic, atanasyan, abeserminji > > Differential Revision: https://reviews.llvm.org/D46114 > llvm-svn: 331259
* [X86] Split WriteVecLogic into XMM and YMM/ZMM scheduler classesSimon Pilgrim2018-05-0112-43/+21
| | | | | | This removes all the WriteVecLogic InstRW overrides. llvm-svn: 331258
* [InstCombine] Adjusting bswap pattern matching to hold for And/Shift mixed caseOmer Paparo Bivas2018-05-012-6/+14
| | | | | | | Differential Revision: https://reviews.llvm.org/D45731 Change-Id: I85d4226504e954933c41598327c91b2d08192a9d llvm-svn: 331257
* [X86] Convert all uses of WriteFLogic/WriteVecLogic to X86SchedWriteWidths.Simon Pilgrim2018-05-012-141/+157
| | | | | | In preparation of splitting WriteVecLogic by vector width. llvm-svn: 331256
* [MC] Add llvm_unreachable to toString to fix compile time warning.Florian Hahn2018-05-011-2/+1
| | | | | | | | | | | | | Without this change, GCC 7 raises the warning below: control reaches end of non-void function Reviewers: sbc100, andreadb Reviewed By: andreadb Differential Revision: https://reviews.llvm.org/D46304 llvm-svn: 331255
* [X86] Tag PSLLDQ/PSRLDQ as WriteShuffle scheduler classes instead of shifts.Simon Pilgrim2018-05-016-39/+25
| | | | | | Although they are encoded similar to bit shifts, the byte shifts behave like shuffles from a scheduling point of view. llvm-svn: 331253
* [X86] Correct spill slot size.Andrea Di Biagio2018-05-012-2/+70
| | | | | | | | | | | | | | | This patch fixes a bug introduced by revision 330778 (originally reviewed at: https://reviews.llvm.org/D44782), where function isFrameLoadOpcode returned the wrong number of bytes read for opcodes VMOVSSrm and VMOVSDrm. This corrects that mistake, and extends the regression test to catch cases where the dead stores should be removed. Patch by Jeremy Morse. Differential Revision: https://reviews.llvm.org/D46256 llvm-svn: 331252
* NFC, Avoid a warning in WasmObjectWriterGabor Buella2018-05-011-0/+2
| | | | | | | | | | The warning was (introduced in r331220): lib/MC/WasmObjectWriter.cpp:51:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ llvm-svn: 331251
* Split TestGlobalVariables into two and xfail one of them for arm64 linuxPavel Labath2018-05-011-10/+23
| | | | | | | | | | | | | | Displaying of global pointer variables is not working on arm64 linux (pr37301). I've moved this part into a separate test, so it can be xfailed separately. I then move the "show-variables-with-process-available" check before the "show-all-variables" command to presrve the intent of checking that global variable caching works correctly. (I've verified that the new arrangement still fails when I revert the fix from r331230.) llvm-svn: 331250
* [X86] directstore and movdir64b intrinsicsGabor Buella2018-05-0114-0/+141
| | | | | | | | | | Reviewers: spatel, craig.topper, RKSimon Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D45984 llvm-svn: 331249
* [X86] movdiri and movdir64b instructionsGabor Buella2018-05-0116-2/+211
| | | | | | | | | | Reviewers: spatel, craig.topper, RKSimon Reviewed By: craig.topper, RKSimon Differential Revision: https://reviews.llvm.org/D45983 llvm-svn: 331248
* [PM/LoopUnswitch] Remove the last manual domtree update code from loopChandler Carruth2018-05-011-170/+18
| | | | | | | | | unswitch and replace it with the amazingly simple update API code. This addresses piles of FIXMEs around the update logic here and makes everything substantially simpler. llvm-svn: 331247
* [PM/LoopUnswitch] Add back a successor set that was removed based onChandler Carruth2018-05-011-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | code review. It turns out this *is* necessary, and I read the comment on the API correctly the first time. ;] The `applyUpdates` routine requires that updates are "balanced". This is in order to cleanly handle cycles like inserting, removing, nad then re-inserting the same edge. This precludes inserting the same edge multiple times in a row as handling that would cause the insertion logic to become *ordered* instead of *unordered* (which is what the API provides). It happens that in this specific case nothing (other than an assert and contract violation) goes wrong because we're never inserting and removing the same edge. The implementation *happens* to do the right thing to eliminate redundant insertions in that case. But the requirement is there and there is an assert to catch it. Somehow, after the code review I never did another asserts-clang build testing loop-unswich for a long time. As a consequence, I didn't notice this despite a bunch of testing going on, but it shows up immediately with an asserts build of clang itself. llvm-svn: 331246
* Fix up r331244 - the emitted definition is weak_odr linkage. Should getChandler Carruth2018-05-011-1/+1
| | | | | | | | the build bots to healthy again without a full revert. As the functionality added has nothing to do with linkage this seems unlikely to represent a deep or interesting bug in the patch. llvm-svn: 331245
* Implement P0482R2, support for char8_t type.Richard Smith2018-05-0148-19/+254
| | | | | | | | | | | | This is not yet part of any C++ working draft, and so is controlled by the flag -fchar8_t rather than a -std= flag. (The GCC implementation is controlled by a flag with the same name.) This implementation is experimental, and will be removed or revised substantially to match the proposal as it makes its way through the C++ committee. llvm-svn: 331244
* [X86] Remove 'opaque ptr' from the intel syntax parser and printer.Craig Topper2018-05-0110-75/+66
| | | | | | | | Previously for instructions like fxsave we would print "opaque ptr" as part of the memory operand. Now we print nothing. We also no longer accept "opaque ptr" in the parser. We still accept any size to be specified for these instructions, but we may want to consider only parsing when no explicit size is specified. This what gas does. llvm-svn: 331243
* Fix type_lookup test to make buildbots happyEugene Zemtsov2018-05-013-3/+3
| | | | llvm-svn: 331242
* Fix return type of isinf(double) and isnan(double) where possible.Richard Smith2018-05-012-6/+36
| | | | | | | | | | | When using an old version of glibc, a ::isinf(double) and ::isnan(double) function is provided, rather than just the macro required by C and C++. Displace this function using _LIBCPP_PREFERRED_OVERLOAD where possible. The only remaining case where we should get the wrong return type is now glibc + libc++ + a non-clang compiler. llvm-svn: 331241
* Log to the process channel, not target twice.Jason Molenda2018-05-011-1/+1
| | | | llvm-svn: 331239
* [ShadowCallStack] fix the docsKostya Serebryany2018-05-011-2/+2
| | | | llvm-svn: 331238
* Temporarily revert "[DEBUG] Initial adaptation of NVPTX target for debug ↵Eric Christopher2018-05-0116-9150/+308
| | | | | | | | | | | | | | | | | info emission." This appears to have some issues associated with the file directive output causing multiple global symbols with the name "file" to be emitted into a startup section. I'm investigating more specific causes and working with the original author. This reverts commit r330271. Also Revert "[DEBUGINFO, NVPTX] Add the test for the debug info of the local" This reverts commit r330592 and the follow up of 330779 as the testcase is dependent upon r330271. llvm-svn: 331237
* Add logging when ArchSpec::SetArchitecture is given a cputype andJason Molenda2018-05-011-0/+5
| | | | | | | | cpusubtype that don't map to any known core definition. <rdar://problem/39779398> llvm-svn: 331236
* Refactor GetNextPersistentVariableName into a non-virtual methodAdrian Prantl2018-04-3010-37/+39
| | | | | | | | | | | | that takes a prefix string. This simplifies the implementation and allows plugins such as the Swift plugin to supply different prefixes for return and error variables. rdar://problem/39299889 Differential Revision: https://reviews.llvm.org/D46088 llvm-svn: 331235
* Move the persistent variable counter into TargetAdrian Prantl2018-04-3011-19/+30
| | | | | | | | | | | | | | | | | so it can be shared across multiple language plugins. In a multi-language project it is counterintuitive to have a result variables reuse numbers just because they are using a different language plugin in LLDB (but not for example, when they are Objective-C versus C++, since they are both handled by Clang). This is NFC on llvm.org except for the Go plugin. rdar://problem/39299889 Differential Revision: https://reviews.llvm.org/D46083 llvm-svn: 331234
* [Modules] Fix testcases from r331232Bruno Cardoso Lopes2018-04-302-3/+2
| | | | llvm-svn: 331233
* [Modules] Handle ObjC/C ODR-like semantics for EnumConstantDeclBruno Cardoso Lopes2018-04-306-4/+44
| | | | | | | | | | | | | | Support for ObjC/C ODR-like semantics with structural equivalence checking was added back in r306918. There enums are handled and also checked for structural equivalence. However, at use time of EnumConstantDecl, support was missing for preventing ambiguous name lookup. Add the missing bits for properly merging EnumConstantDecl. rdar://problem/38374569 llvm-svn: 331232
* [CodeGen] Fix typo in comment form->from. NFCCraig Topper2018-04-301-1/+1
| | | | llvm-svn: 331231
* Remove premature caching of the global variables list in CompileUnit.Adrian Prantl2018-04-303-5/+20
| | | | | | | | | | | | | | | | | | | | | | | | This fixes a bug where (lldb) target var g_ptr would populate the global variables list with exactly one entry because SymbolFileDWARF::ParseVariables() was invoked with a list of DIEs pre-filtered by name, such that a subsequent call to (lldb) fr var --show-globals would only list that one variable, because CompileUnit::m_variables was already initialized, fooling CompileUnit::GetVariableList(). CompileUnit::GetVariableList() grabs the *complete* list of variables via (SymbolFileDWARF, ...)::ParseVariablesForContext and that still calls CompileUnit::SetVariableList(variables) which acts as the caching mechanism. Differential Revision: https://reviews.llvm.org/D46220 llvm-svn: 331230
* Protect DWARFCompileUnit::m_die_array by a new mutexJan Kratochvil2018-04-302-3/+18
| | | | | | | | | | | | | | Multiple DW_TAG_compile_unit being indexed in a multithreaded way can request reading of the same DW_TAG_partial_unit. Unfortunately one cannot detect DWZ file ahead of time to disable such locking overhead as DWARFCompileUnit::Extract does not read the first DIE which is the only place one could find early enough if the DWARF file is using any DW_TAG_partial_unit. Differential revision: https://reviews.llvm.org/D40470 llvm-svn: 331229
* [InstCombine] fix test to restore intentSanjay Patel2018-04-301-3/+2
| | | | | | | | | This test had values that differed in only in capitalization, and that causes problems for the auto-generating check line script. So I changed that in rL331226, but I accidentally forgot to change a subsequent use of a param. llvm-svn: 331228
OpenPOWER on IntegriCloud