summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [globalisel][tablegen] Add support for relative AtomicOrderingsDaniel Sanders2017-11-307-25/+171
| | | | | | | No test yet because the relevant rules are blocked on the atomic_load, and atomic_store nodes. llvm-svn: 319475
* Add powerpc64 to compiler-rt build infrastructure.Sterling Augustine2017-11-303-1/+21
| | | | | | | | Now that we have disabled the run-forever tests, and cleaned up the intel 80-bit float based tests, we should be able to enable testing compiler-rt for powerpc64. llvm-svn: 319474
* Error on -no-define-common if the output is not relocatable.Rafael Espindola2017-11-302-0/+6
| | | | | | | | | | | The ELF spec says Symbols with section index SHN_COMMON may appear only in relocatable objects. Currently lld can produce file that break that requirement. llvm-svn: 319473
* Fix this test so that the breakpoints you set areJim Ingham2017-11-302-2/+6
| | | | | | | | unambiguously on one bit of code. On macOS these lines mapped to two distinct locations, and that was artificially throwing off the test. llvm-svn: 319472
* [Hexagon] Fix wrong pass in testcaseKrzysztof Parzyszek2017-11-301-1/+1
| | | | llvm-svn: 319471
* [Hexagon] Solo instructions cannot be used with new value jumpsKrzysztof Parzyszek2017-11-302-0/+22
| | | | llvm-svn: 319470
* [AMDGPU] Convert test/tools/llvm-objdump/AMDGPU/source-lines.ll to amdgizYaxun Liu2017-11-301-21/+21
| | | | | | Differential Revision: https://reviews.llvm.org/D40653 llvm-svn: 319469
* [X86] Promote i8 CTPOP to i32 instead of i16 when we have the POPCNT ↵Craig Topper2017-11-303-7/+7
| | | | | | | | instruction. The 32-bit version is shorter to encode and the zext we emit for the promotion is likely going to be a 32-bit zero extend anyway. llvm-svn: 319468
* [llvm-objcopy] Add support for --only-keep/-j and --keepJake Ehrlich2017-11-3014-0/+322
| | | | | | | | | | | | | This change adds support for the --only-keep option and the -j alias as well. A common use case for these being used together is to dump a specific section's data. Additionally the --keep option is added (GNU objcopy doesn't have this) to avoid removing a bunch of things. This allows people to err on the side of stripping aggressively and then to keep the specific bits that they need for their application. Differential Revision: https://reviews.llvm.org/D39021 llvm-svn: 319467
* [aarch64][globalisel] Legalize G_ATOMIC_CMPXCHG_WITH_SUCCESS and G_ATOMICRMW_*Daniel Sanders2017-11-307-1/+130
| | | | | | | | | | | G_ATOMICRMW_* is generally legal on AArch64. The exception is G_ATOMICRMW_NAND. G_ATOMIC_CMPXCHG_WITH_SUCCESS needs to be lowered to G_ATOMIC_CMPXCHG with an external comparison. Note that IRTranslator doesn't generate these instructions yet. llvm-svn: 319466
* [GlobalISel][IRTranslator] Fix crash during translation of zero sized ↵Amara Emerson2017-11-303-1/+27
| | | | | | | | | | | | loads/stores/args/returns. This fixes PR35358. rdar://35619533 Differential Revision: https://reviews.llvm.org/D40604 llvm-svn: 319465
* Move x86-specific sources to x86-specific source lists.Sterling Augustine2017-11-301-13/+22
| | | | llvm-svn: 319464
* [PGO] Add a test case for infinite loopsXinliang David Li2017-11-301-0/+30
| | | | | | Differential Revision: http://reviews.llvm.org/D40663 llvm-svn: 319463
* [PGO] Skip counter promotion for infinite loopsXinliang David Li2017-11-302-0/+24
| | | | | | Differential Revision: http://reviews.llvm.org/D40662 llvm-svn: 319462
* [cmake] Include project name in Sphinx doctree dir to fix race conditionsMichal Gorny2017-11-301-1/+1
| | | | | | | | | | | | | | | | Modify add_sphinx_target() to include the project name alongside builder in Sphinx doctree directory. This aims to avoid crashes due to race conditions between multiple Sphinx instances running in parallel that attempt to create or read that directory simultaneously. This problem has originally been addressed in r283188. However, that commit presumed that there will be only one target per builder being run. However, r314863 introduced a second manpage target, reintroducing the race condition. Differential Revision: https://reviews.llvm.org/D40656 llvm-svn: 319461
* add new check to find NSError init invocationYan Zhang2017-11-303-0/+5
| | | | | | | | Subscribers: klimek, mgorny, cfe-commits Differential Revision: https://reviews.llvm.org/D40528 llvm-svn: 319460
* add new check to find NSError init invocationYan Zhang2017-11-308-0/+108
| | | | | | | | | | | | | | | | | | | Summary: This check will find out improper initialization of NSError objects. According to Apple developer document, we should always use factory method errorWithDomain:code:userInfo: to create new NSError objects instead of [NSError alloc] init]. Otherwise it will lead to a warning message during runtime in Xcode. The corresponding information about NSError creation: https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/ErrorHandlingCocoa/CreateCustomizeNSError/CreateCustomizeNSError.html Reviewers: hokein, benhamilton Reviewed By: benhamilton Subscribers: klimek, mgorny, cfe-commits Differential Revision: https://reviews.llvm.org/D40528 llvm-svn: 319459
* [OpenMP] Diagnose undeclared variables on declare target clauseKelvin Li2017-11-302-1/+5
| | | | | | | | | | | | | Clang asserts on undeclared variables on the to or link clause in the declare target directive. The patch is to properly diagnose the error. // foo1 and foo2 are not declared #pragma omp declare target to(foo1) #pragma omp declare target link(foo2) Differential Revision: https://reviews.llvm.org/D40588 llvm-svn: 319458
* [globalisel][tablegen] Add support for specific immediates in the match patternDaniel Sanders2017-11-302-1/+9
| | | | | | This enables a few rules such as ARM's uxtb instruction. llvm-svn: 319457
* Split TypeTableBuilder into two classes.Zachary Turner2017-11-3017-103/+271
| | | | llvm-svn: 319456
* Fix the MIPS baremetal buildAlexander Richardson2017-11-301-2/+2
| | | | | | | | | | | | | | | | Summary: Currently sys/cachectl.h is used unconditionally on MIPS although it is only available on Linux and will fail the build when targeting baremetal Reviewers: petarj Reviewed By: petarj Subscribers: sdardis, krytarowski Differential Revision: https://reviews.llvm.org/D40659 llvm-svn: 319455
* Remove a long out-of-date comment.Jim Ingham2017-11-301-1/+0
| | | | llvm-svn: 319454
* [llvm-readobj] Fix mismatched line endingsZachary Turner2017-11-301-7/+7
| | | | llvm-svn: 319453
* [WebAssembly] Revert r319186 "Support bitcasted function addresses with ↵Dan Gohman2017-11-304-47/+13
| | | | | | | | | | | varargs." The patch broke Emscripten's EM_ASM macros, which utiltize unprototyped functions. See https://bugs.llvm.org/show_bug.cgi?id=35385 for details. llvm-svn: 319452
* Simplify. NFC.Rafael Espindola2017-11-301-2/+2
| | | | | | This particular reportDuplicate is only used with Defined. llvm-svn: 319451
* [OPENMP] Fix possible assert for target regions with incorrect innerAlexey Bataev2017-11-306-1/+29
| | | | | | | | | teams region. If the inner teams region is not correct, it may cause an assertion when processing outer target region. Patch fixes this problem. llvm-svn: 319450
* Handle copy relocations in symbol assignments.Rafael Espindola2017-11-304-2/+51
| | | | | | | | | | | When a linker script has "foo = bar" and bar is the result of a copy relocation foo should point to the same location in .bss. This is part of a growing evidence that copy relocations should be implemented by using replaceSymbol to replace the SharedSymbol with a Defined. llvm-svn: 319449
* [CMake] Detect information about test compilerJonas Hahnfeld2017-11-308-28/+109
| | | | | | | | | | | | Perform a nested CMake invocation to avoid writing our own parser for compiler versions when we are not testing the in-tree compiler. Use the extracted information to mark a test as unsupported that hangs with Clang prior to version 4.0.1 and restrict tests for libomptarget to Clang version 6.0.0 and later. Differential Revision: https://reviews.llvm.org/D40083 llvm-svn: 319448
* [MIR] Fix DebugInfo tests after r319445Francis Visoiu Mistrih2017-11-3011-32/+32
| | | | llvm-svn: 319447
* Fix __has_unique_object_representations implementationErich Keane2017-11-3010-178/+315
| | | | | | | | | | As rsmith pointed out, the original implementation of this intrinsic missed a number of important situations. This patch fixe a bunch of shortcomings and implementation details to make it work correctly. Differential Revision: https://reviews.llvm.org/D39347 llvm-svn: 319446
* [CodeGen] Always use `printReg` to print registers in both MIR and debugFrancis Visoiu Mistrih2017-11-30138-3986/+3976
| | | | | | | | | | | | | | output As part of the unification of the debug format and the MIR format, always use `printReg` to print all kinds of registers. Updated the tests using '_' instead of '%noreg' until we decide which one we want to be the default one. Differential Revision: https://reviews.llvm.org/D40421 llvm-svn: 319445
* [FuzzMutate] Bailout from injecting into empty basic blocks.Igor Laevsky2017-11-301-0/+2
| | | | | | | | | | In rare cases we can receive request to inject into completelly empty basic block. In the normal case all basic blocks contain at least terminator instruction, but it is possible that the only instruction is catchpad instruction which is not part of the instruction iterator. This case seems rare enough to not care about it. Submiting without review, since it seems almost NFC. I couldn't come up with any reasonable way to test this. llvm-svn: 319444
* Add a test case for open bug 35480Pavel Labath2017-11-305-0/+82
| | | | | | | The test is about failing to hit breakpoints in global constructors in shared libraries. llvm-svn: 319443
* [FuzzMutate] Correctly handle vector types in the insertvalue operationIgor Laevsky2017-11-302-4/+42
| | | | | | Differential Revision: https://reviews.llvm.org/D40397 llvm-svn: 319442
* [FuzzMutate] Don't use index operands as sinksIgor Laevsky2017-11-302-2/+37
| | | | | | Differential Revision: https://reviews.llvm.org/D40396 llvm-svn: 319441
* [FuzzMutate] Pick correct index for the insertvalue instructionIgor Laevsky2017-11-302-3/+49
| | | | | | Differential Revision: https://reviews.llvm.org/D40395 llvm-svn: 319440
* [FuzzMutate] Don't create load as a new source if it doesn't match with the ↵Igor Laevsky2017-11-303-11/+102
| | | | | | | | descriptor Differential Revision: https://reviews.llvm.org/D40394 llvm-svn: 319439
* [FuzzMutate] Don't crash when we can't remove instruction from empty functionIgor Laevsky2017-11-303-1/+115
| | | | | | Differential Revision: https://reviews.llvm.org/D40393 llvm-svn: 319438
* [LangRef] clarify semantics of the frem instructionSanjay Patel2017-11-301-4/+6
| | | | | | | | | | As noted in D40594, the frem instruction corresponds to fmod() except that it can't set errno. I modified the text that we currently use for intrinsics that map to libm functions and applied it to frem. Differential Revision: https://reviews.llvm.org/D40629 llvm-svn: 319437
* [InstCombine] Additional test for PR35354, NFC.Alexey Bataev2017-11-301-0/+17
| | | | llvm-svn: 319436
* [ELF] - Handle EhInputSection Live bit in MarkLive.cppGeorge Rimar2017-11-302-10/+9
| | | | | | | | | | Since MarkLive.cpp is the place where we set Live flags for other sections, it looks correct to do that there. Benefit is that we stop spreading GC logic outsize of MarkLive.cpp. Differential revision: https://reviews.llvm.org/D40454 llvm-svn: 319435
* [PowerPC] Recommit r314244 with refactoring and off by defaultNemanja Ivanovic2017-11-3091-304/+1917
| | | | | | | | | | | | | | | This re-commits everything that was pulled in r314244. The transformation is off by default (patch to enable it to follow). The code is refactored to have a single entry-point and provide fine-grained control over patterns that it selects. This patch also fixes the bugs in the original code. Everything that failed with the original patch has been re-tested with this patch (with the transformation turned on). So the patch to turn this on is soon to follow. Differential Revision: https://reviews.llvm.org/D38575 llvm-svn: 319434
* [X86][AVX512] Tag fcmp/ptest/ternlog instructions scheduler classesSimon Pilgrim2017-11-302-120/+140
| | | | llvm-svn: 319433
* [X86][AVX512] Regenerate avx512 schedule testsSimon Pilgrim2017-11-302-321/+321
| | | | llvm-svn: 319432
* Handle Top-Level-Regions in polly::isHoistableLoadPhilip Pfaffe2017-11-302-3/+82
| | | | | | | | | | | | | | | | | | | | Summary: This can be seen as a follow-up on my previous differential [D33411](https://reviews.llvm.org/D33411). We received a bug report where this error was triggered. I have tried my best to recreate the issue in a minimal lit testcase which is also part of this differential. I only handle return instructions as predecessors to a virtual TLR-exit right now. From inspecting the codebase, it seems `unreachable` instructions may also be of interest here. If requested, I can extend my patches to consider them as well. I would also apply this on `ScopHelper.cpp::isErrorBlock` (see D33411), of course. Reviewers: philip.pfaffe, bollu Reviewed By: bollu Subscribers: Meinersbur, pollydev, llvm-commits Tags: #polly Differential Revision: https://reviews.llvm.org/D40492 llvm-svn: 319431
* [MC] Function stack size section.Sean Eveson2017-11-309-1/+95
| | | | | | | | | | | | | | | | | | | | | | | | Re applying after fixing issues in the diff, sorry for any painful conflicts/merges! Original RFC: http://lists.llvm.org/pipermail/llvm-dev/2017-August/117028.html This change adds a '.stack-size' section containing metadata on function stack sizes to output ELF files behind the new -stack-size-section flag. The section contains pairs of function symbol references (8 byte) and stack sizes (unsigned LEB128). The contents of this section can be used to measure changes to stack sizes between different versions of the compiler or a source base. The advantage of having a section is that we can extract this information when examining binaries that we didn't build, and it allows users and tools easy access to that information just by referencing the binary. There is a follow up change to add an option to clang. Thanks. Reviewers: hfinkel, MatzeB Reviewed By: MatzeB Subscribers: thegameg, asb, llvm-commits Differential Revision: https://reviews.llvm.org/D39788 llvm-svn: 319430
* Revert r319423: [MC] Function stack size section.Sean Eveson2017-11-309-4575/+4481
| | | | | | I messed up the diff. llvm-svn: 319429
* [ARM GlobalISel] Bail out for byvalDiana Picus2017-11-302-1/+22
| | | | | | | Fallback if we have a byval parameter or argument since we don't support them yet. llvm-svn: 319428
* [CodeGen] Print "%vreg0" as "%0" in both MIR and debug outputFrancis Visoiu Mistrih2017-11-3079-523/+523
| | | | | | | | | | | | | | | | | As part of the unification of the debug format and the MIR format, avoid printing "vreg" for virtual registers (which is one of the current MIR possibilities). Basically: * find . \( -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" \) -type f -print0 | xargs -0 sed -i '' -E "s/%vreg([0-9]+)/%\1/g" * grep -nr '%vreg' . and fix if needed * find . \( -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" \) -type f -print0 | xargs -0 sed -i '' -E "s/ vreg([0-9]+)/ %\1/g" * grep -nr 'vreg[0-9]\+' . and fix if needed Differential Revision: https://reviews.llvm.org/D40420 llvm-svn: 319427
* Update format after clang-format change. NFC.Michael Kruse2017-11-301-3/+3
| | | | | | In r319314 clang-format changed its reflowing logic. llvm-svn: 319426
OpenPOWER on IntegriCloud