summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [utils] Cope with the binary having a .exe extension in ↵Greg Bedwell2018-09-281-2/+2
| | | | | | update_mca_test_checks.py llvm-svn: 343333
* [utils] Stricter checking from update_mca_test_checks.pyGreg Bedwell2018-09-283-38/+50
| | | | | | | | | | | | | | | | If any prefixes have been specified on the RUN lines that do not end up ever actually getting printed, raise an Error. This is either an indication that the run lines just need cleaning up, or that something is more fundamentally wrong with the test. Also raise an Error if there are any blocks which cannot be checked because they are not uniquely covered by a prefix. Fixed up a couple of tests where the extra checking flagged up issues. Differential Revision: https://reviews.llvm.org/D48276 llvm-svn: 343332
* [utils] Allow better identification of matching blocks in ↵Greg Bedwell2018-09-285-151/+194
| | | | | | | | | | | | | | update_mca_test_checks.py Insert empty blocks to cause the positions of matching blocks to match across lists where possible so that later stages of the algorithm can actually identify them as being identical. Regenerated all tests with this change. Differential Revision: https://reviews.llvm.org/D52560 llvm-svn: 343331
* [LLVM-C] Add more debug information accessors to GlobalObject and InstructionRobert Widmann2018-09-285-8/+195
| | | | | | | | | | | | | | Summary: Adds missing debug information accessors to GlobalObject. This puts the finishing touches on cloning debug info in the echo tests. Reviewers: whitequark, deadalnix Reviewed By: whitequark Subscribers: aprantl, JDevlieghere, llvm-commits, harlanhaskins Differential Revision: https://reviews.llvm.org/D51522 llvm-svn: 343330
* [InstCombine] don't propagate wider shufflevector arguments to predecessorsSanjay Patel2018-09-283-12/+28
| | | | | | | | | | | | | | | InstCombine would propagate shufflevector insts that had wider output vectors onto predecessors, which would sometimes push undef's onto the divisor of a div/rem and result in bad codegen. I've fixed this by just banning propagating shufflevector back if the result of the shufflevector is wider than the input vectors. Patch by: @sheredom (Neil Henning) Differential Revision: https://reviews.llvm.org/D52548 llvm-svn: 343329
* [InstCombine] adjust shuffle undef propagation tests; NFCSanjay Patel2018-09-282-200/+29
| | | | | | | | | | | These are the updated baseline tests for D52548 - I'm putting the tests next to the tests where the transform functions as expected, so we can see the intended/unintended consequences. Patch by: @sheredom (Neil Henning) llvm-svn: 343328
* [ORC] Remove some dead code.Lang Hames2018-09-281-20/+0
| | | | llvm-svn: 343327
* [ORC] Fix the unit tests that were broken by r343323.Lang Hames2018-09-281-0/+2
| | | | llvm-svn: 343326
* [GISel]: Remove an incorrect assert in CallLoweringAditya Nandakumar2018-09-282-1/+13
| | | | | | | | | | | https://reviews.llvm.org/D51147 Asserting if any extend of vectors should be up to the target's legalizer/target specific code not in CallLowering. reviewed by : dsanders. llvm-svn: 343325
* [libomptarget-nvptx] Add testing infrastructureJonas Hahnfeld2018-09-289-16/+208
| | | | | | | | | | | | | | | This patch also introduces testing for libomptarget-nvptx which has been missing until now. I propose to add tests for all bugs that are fixed in the future. The target check-libomptarget-nvptx is not run by default because - we can't determine if there is a GPU plugged into the system. - it will require the latest Clang compiler. Keeping compatibility with older releases would prevent testing newer code generation developed in trunk. Differential Revision: https://reviews.llvm.org/D51687 llvm-svn: 343324
* [ORC] Improve debugging output for ORC.Lang Hames2018-09-287-57/+238
| | | | | | | | | | | | (1) Print debugging output under a session lock to avoid garbled messages when compiling on multiple threads. (2) Name MaterializationUnits, add an ostream operator for them, and so they can be easily referenced in debugging output, and have that ostream operator optionally print code/data/hidden symbols provided by that materialization unit based on command line options. llvm-svn: 343323
* Revert r342652 "[winasan] Unpoison the stack in NtTerminateThread"Hans Wennborg2018-09-282-12/+1
| | | | | | | | | | | | | This seems to cause the thread's exit code to be clobbered, breaking Chromium tests. Also revert follow-up r342654. > In long-running builds we've seen some ASan complaints during thread creation that we suspect are due to leftover poisoning from previous threads whose stacks occupied that memory. This patch adds a hook that unpoisons the stack just before the NtTerminateThread syscall. > > Differential Revision: https://reviews.llvm.org/D52091 llvm-svn: 343322
* [X86][Btver2] PSUBS/PSUBUS instructions are zero-idiomsSimon Pilgrim2018-09-282-148/+157
| | | | | | Noticed during llvm-exegesis tests, the PSUBS/PSUBUS instructions have the same zero-idiom behaviour to PSUB llvm-svn: 343321
* [ELF][HEXAGON] Add support for dynamic librariesSid Manning2018-09-284-5/+75
| | | | | | | | | Write out the PLT header and stub. Hexagon uses RELA relocations. Differential Revision: https://reviews.llvm.org/D52317 llvm-svn: 343320
* [X86][Btver2] Add zero-idiom tests for PSUBS/PSUBUS instructionsSimon Pilgrim2018-09-281-88/+172
| | | | | | Noticed during llvm-exegesis tests, the PSUBS/PSUBUS instructions have the same zero-idiom behaviour to PSUB llvm-svn: 343319
* Reapply the changes reverted by r343236Luke Cheeseman2018-09-282-3/+3
| | | | llvm-svn: 343318
* Reapply changes reverted by r343235Luke Cheeseman2018-09-2826-78/+198
| | | | | | | | - Add fix so that all code paths that create DWARFContext with an ObjectFile initialise the target architecture in the context - Add an assert that the Arch is known in the Dwarf CallFrameString method llvm-svn: 343317
* Fix and modernize StringMatcher comment; NFCSven van Haastregt2018-09-281-4/+3
| | | | llvm-svn: 343316
* [MIPS GlobalISel] Lower i64 argumentsPetar Jovanovic2018-09-283-61/+216
| | | | | | | | | | | | | Lower integer arguments larger then 32 bits for MIPS32. setMostSignificantFirst is used in order for G_UNMERGE_VALUES and G_MERGE_VALUES to always hold registers in same order, regardless of endianness. Patch by Petar Avramovic. Differential Revision: https://reviews.llvm.org/D52409 llvm-svn: 343315
* [X86][Btver2] CVTSS2I/CVTSD2I - add missing JFPU0 pipeSimon Pilgrim2018-09-284-37/+37
| | | | | | | | We issue JFPU1->JSTC then JFPU0->JFPA then -> JALU0 (integer pipe) Match AMD Fam16h SOG + llvm-exegesis tests llvm-svn: 343314
* Split invocations in CodeGen/X86/cpus.ll among multiple tests. (NFC)Jonas Devlieghere2018-09-285-137/+142
| | | | | | | | | | | | On GreenDragon `CodeGen/X86/cpus.ll` is timing out on the bot with Asan and UBSan enabled. With the same configuration on my machine, the test passes but takes more than 3 minutes to do so. I could increase the timeout, but I believe it makes more sense to split up the test because it allows for more parallelism. Differential revision: https://reviews.llvm.org/D52603 llvm-svn: 343313
* [llvm-mca] Remove redundant namespace prefixes. NFCAndrea Di Biagio2018-09-288-37/+36
| | | | | | We are already "using" namespace llvm in all the files modified by this change. llvm-svn: 343312
* [X86][Btver2] Fix BSF/BSR scheduleSimon Pilgrim2018-09-284-57/+57
| | | | | | | | Double throughput to account for 2 pipes + fix BSF's latency/uop counts Match AMD Fam16h SOG + llvm-exegesis tests llvm-svn: 343311
* Revert r343308: [LoopInterchange] Turn into a loop pass.Florian Hahn2018-09-282-16/+47
| | | | llvm-svn: 343310
* [ARM] Prevent DSP and SIM32 being set for v6mSam Parker2018-09-282-1/+8
| | | | | | | | | My previous change (rL340911) set the two features for architectures >= 6, which wrongly includes v6m. Now set to >= 6 and not Cortex-M. Differential Revision: https://reviews.llvm.org/D52644 llvm-svn: 343309
* [LoopInterchange] Turn into a loop pass.Florian Hahn2018-09-282-47/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch turns LoopInterchange into a loop pass. It now only considers top-level loops and tries to move the innermost loop to the optimal position within the loop nest. By only looking at top-level loops, we might miss a few opportunities the function pass would get (e.g. if we have a loop nest of 3 loops, in the function pass we might process loops at level 1 and 2 and move the inner most loop to level 1, and then we process loops at levels 0, 1, 2 and interchange again, because we now have a different inner loop). But I think it would be better to handle such cases by picking the best inner loop from the start and avoid re-visiting the same loops again. The biggest advantage of it being a function pass is that it interacts nicely with the other loop passes. Without this patch, there are some performance regressions on AArch64 with loop interchanging enabled, where no loops were interchanged, but we missed out on some other loop optimizations. It also removes the SimplifyCFG run. We are just changing branches, so the CFG should not be more complicated, besides the additional 'unique' preheaders this pass might create. Reviewers: chandlerc, efriedma, mcrosier, javed.absar, xbolva00 Reviewed By: xbolva00 Differential Revision: https://reviews.llvm.org/D51702 llvm-svn: 343308
* [llvm-mca] Teach how to track zero registers in class RegisterFile.Andrea Di Biagio2018-09-283-26/+78
| | | | | | | | | This change is in preparation for a future work on improving support for optimizable register moves. We already know if a write is from a zero-idiom, so we can propagate that bit of information to the PRF. We use an APInt mask to identify registers that are set to zero. llvm-svn: 343307
* [docs] Fix links in Clangd documentationKirill Bobyrev2018-09-281-3/+3
| | | | | | | Add missing `_` after each `external link <https://llvm.org>`_, as required by the reStructuredText specification. llvm-svn: 343306
* [ClangFormat] 'try' of function-try-block doesn't obey BraceWrappingOwen Pan2018-09-282-0/+12
| | | | | | | | It should respond to AfterFunction, not AfterControlStatement. Fixes PR39067 llvm-svn: 343305
* [ARM] Alter test to account for change to armv6k default CPUPeter Smith2018-09-281-2/+2
| | | | | | | | | | Review D52594 will change the default in llvm for armv6k from the non-existent cpu arm1176jf-s to mpcore. The tests in arm-cortex-cpus.c need to be updated to account for this change. Differential Revision: https://reviews.llvm.org/D52595 llvm-svn: 343304
* [ARM] Remove non-existent cpu arm1176j-s and use mpcore for v6kPeter Smith2018-09-282-7/+4
| | | | | | | | | | | | | | | The ARMTargetParser.def contains an entry for arm1176j-s which is the default for the ArmV6K architecture. This cpu does not exist, there are only arm1176jz-s and arm1176jzf-s and they are both architecture ArmV6KZ. The only CPUs that are actually ArmV6K are the mpcore, mpcore_nofpu and later revisions of the arm1136 family r1px (which we don't have a table entry for). This patch removes the arm1176j-s and makes mpcore the default for armv6k. Differential Revision: https://reviews.llvm.org/D52594 llvm-svn: 343303
* [ARM] Allow execute only code on Cortex-m23David Spickett2018-09-284-2/+8
| | | | | | | | | | | The NoMovt feature prevents the use of MOVW/MOVT instructions on Cortex-M23 for performance reasons. These instructions are required for execute only code so NoMovt should be disabled when that option is enabled. Differential Revision: https://reviews.llvm.org/D52551 llvm-svn: 343302
* Remove extra whitespace. NFC. (test commit)David Spickett2018-09-281-1/+1
| | | | llvm-svn: 343301
* [ARM][v8.5A] Add speculation barriers SSBB and PSSBBOliver Stannard2018-09-2812-23/+109
| | | | | | | | | | | This adds two new barrier instructions which can be used to restrict speculative execution of load instructions. Patch by Pablo Barrio! Differential revision: https://reviews.llvm.org/D52484 llvm-svn: 343300
* [X86][BtVer2] Fix PHMINPOS schedule resources typoSimon Pilgrim2018-09-284-11/+11
| | | | | | PHMINPOS can run on either JFPU pipe llvm-svn: 343299
* [PDB] Handle `char` as a builtin typeAleksandr Urakov2018-09-285-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: `char`, `signed char` and `unsigned char` are three different types, and they are mangled differently: ``` void __declspec(dllexport) /* ?foo@@YAXD@Z */ foo(char c) { } void __declspec(dllexport) /* ?foo@@YAXE@Z */ foo(unsigned char c) { } void __declspec(dllexport) /* ?foo@@YAXC@Z */ foo(signed char c) { } ``` This commit separates `char` from `signed char` and `unsigned char`. Reviewers: asmith, zturner, labath Reviewed By: asmith, zturner Subscribers: teemperor, lldb-commits, stella.stamenova Tags: #lldb Differential Revision: https://reviews.llvm.org/D52468 llvm-svn: 343298
* [CodeGen] fix broken successor probability in MBB dumpHiroshi Inoue2018-09-282-1/+26
| | | | | | | | | | When printing successor probabilities for a MBB, a human readable value is sometimes shown as 200.0%. The human readable output is based on getProbabilityIterator, which returns 0xFFFFFFFF for getNumerator() and 0x80000000 for getDenominator() for unknown BranchProbability. By using getSuccProbability as we do for the non-human readable part, we can avoid this problem. Differential Revision: https://reviews.llvm.org/D52605 llvm-svn: 343297
* Test commit. NFC.Owen Rodley2018-09-281-1/+1
| | | | llvm-svn: 343296
* [XRay] Fix fdr-thread-order.cc when current directory contains ↵Fangrui Song2018-09-281-11/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fdr-thread-order.cc Summary: Currently, cd test/xray/TestCases/Posix $build/bin/llvm-lit fdr-thread-order.cc fails because `rm fdr-thread-order.*` deletes the .cc file. This patch uses: * %t as temporary directory name containing log files * %t.exe as executable name It does not delete %t after the test finishes for debugging convenience. This matches the behavior of tests of various other LLVM components. Log files will not clog up because the temporary directory (unique among test files but the same among multiple invocations of a test) is cleaned at the beginning of the test. Reviewers: dberris, mboerger, eizan Reviewed By: dberris Subscribers: delcypher, llvm-commits, #sanitizers Differential Revision: https://reviews.llvm.org/D52638 llvm-svn: 343295
* [ScalarizeMaskedMemIntrin] Use MinAlign to calculate alignment for the ↵Craig Topper2018-09-282-2/+60
| | | | | | | | scalar load/stores to handle element types that are byte-sized but not powers of 2. This pass doesn't handle non-byte sized types correctly at all, but at least we can make byte sized types work. llvm-svn: 343294
* Handle dependent class template names in class template argumentRichard Smith2018-09-282-1/+11
| | | | | | deduction for new-expressions. llvm-svn: 343293
* [lldb] Remove an assertion in RichManglingContext::GetBufferRef() hit when ↵Aaron Smith2018-09-282-1/+23
| | | | | | | | | | | | | | | | debugging a native x86 Windows process Summary: A RichManglingContext constructed with an invalid demangled name or with a demangled function name without any context will have an empty context. This triggers an assertion in RichManglingContext::GetBufferRef() when debugging a native Windows process on x86 when it shouldn't. Remove the assertion. Reviewers: aleksandr.urakov, zturner, lldb-commits Reviewed By: zturner Subscribers: erik.pilkington Differential Revision: https://reviews.llvm.org/D52626 llvm-svn: 343292
* [pdb] Simplify the code by replacing a few string conversions with calls to ↵Aaron Smith2018-09-285-51/+11
| | | | | | | | | | | | invokeBstrMethod() Reviewers: aleksandr.urakov, zturner, llvm-commits Reviewed By: zturner Differential Revision: https://reviews.llvm.org/D52624 llvm-svn: 343291
* merge-request.sh: Add 7.0 metabugTom Stellard2018-09-281-0/+3
| | | | llvm-svn: 343290
* [XRay] Guard local variables with `static` and struct with unnamed namespacesFangrui Song2018-09-282-6/+11
| | | | | | | | | | | | | | | | | Summary: This is for coding standard conformance, and for fixing an ODR violation issue: __xray::ThreadLocalData is defined twice and differently in xray_fdr_logging.cc and xray_basic_logging.cc Reviewers: dberris, mboerger, eizan Reviewed By: dberris Subscribers: delcypher, jfb, llvm-commits, #sanitizers Differential Revision: https://reviews.llvm.org/D52639 llvm-svn: 343289
* [ORC] clang-format the ThreadSafeModule code.Lang Hames2018-09-283-23/+20
| | | | | | Evidently I forgot to do this before committing r343055. llvm-svn: 343288
* [ORC] Add a const version of ThreadSafeModule::getModule().Lang Hames2018-09-281-0/+3
| | | | llvm-svn: 343287
* [ORC] Lock ThreadSafeContext during module destruction in ThreadSafeModule'sLang Hames2018-09-281-0/+6
| | | | | | | | | | move constructor. This is basically the same fix as r343261, but applied to the move constructor: Failure to lock the context during module destruction can lead to data races if other threads are operating on the context. llvm-svn: 343286
* [cxx2a] P0641R2: (Some) type mismatches on defaulted functions onlyRichard Smith2018-09-2816-36/+138
| | | | | | | | | | | | | | | | render the function deleted instead of rendering the program ill-formed. This change also adds an enabled-by-default warning for the case where an explicitly-defaulted special member function of a non-template class is implicitly deleted by the type checking rules. (This fires either due to this language change or due to pre-C++20 reasons for the member being implicitly deleted). I've tested this on a large codebase and found only bugs (where the program means something that's clearly different from what the programmer intended), so this is enabled by default, but we should revisit this if there are problems with this being enabled by default. llvm-svn: 343285
* [ScalarizeMaskedMemIntrin] Fix the alignment calculation for the scalar ↵Craig Topper2018-09-282-3/+3
| | | | | | | | stores of a masked store expansion. It should be the minimum of the original alignment and the scalar size. llvm-svn: 343284
OpenPOWER on IntegriCloud