summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [WebAssembly] Fixed disassembler not knowing about new brlist operandWouter van Oortmerssen2019-01-035-1/+26
| | | | | | | | | | | | | | Summary: The previously introduced new operand type for br_table didn't have a disassembler implementation, causing an assert. Reviewers: dschuff, aheejin Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D56227 llvm-svn: 350366
* [WebAssembly] Made InstPrinter more robustWouter van Oortmerssen2019-01-034-59/+77
| | | | | | | | | | | | | | | | | | | Summary: Instead of asserting on certain kinds of malformed instructions, it now still print, but instead adds an annotation indicating the problem, and/or indicates invalid_type etc. We're using the InstPrinter from many contexts that can't always guarantee values are within range (e.g. the disassembler), where having output is more valueable than asserting. Reviewers: dschuff, aheejin Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D56223 llvm-svn: 350365
* [x86] add 512-bit vector tests for horizontal ops; NFCSanjay Patel2019-01-032-2/+128
| | | | llvm-svn: 350364
* Fix check-hwasan with LLVM_BUILD_EXTERNAL_COMPILER_RT=ONEvgeniy Stepanov2019-01-031-1/+1
| | | | | | Add a forwarding target for check-hwasan in clang. llvm-svn: 350363
* [x86] add AVX512 runs for horizontal ops; NFCSanjay Patel2019-01-032-15/+55
| | | | llvm-svn: 350362
* [cmake] Fix monorepo + LLVM_BUILD_EXTERNAL_COMPILER_RT=ON.Evgeniy Stepanov2019-01-031-1/+1
| | | | | | | | | In cmake 3.10.2, if (${VARIABLE_NAME}) seems to always be false no matter what documentation says (or maybe I just failed at reading). Anyway, if (VARIABLE_NAME) seems to do what this code intended. llvm-svn: 350361
* TestQueues: Move the synchronisation code into the binary itself.Adrian Prantl2019-01-032-43/+14
| | | | | | Thanks to Pavel Labath for the suggestion! llvm-svn: 350360
* [X86] Add test case for D56283.Craig Topper2019-01-031-0/+66
| | | | | | This tests a case where we need to be able to compute sign bits for two insert_subvectors that is a liveout of a basic block. The result is then used as a boolean vector in another basic block. llvm-svn: 350359
* [x86] remove dead CHECK lines from test file; NFCSanjay Patel2019-01-031-26/+0
| | | | llvm-svn: 350358
* [x86] split tests for FP and integer horizontal mathSanjay Patel2019-01-032-154/+173
| | | | | | | | | | | | These are similar patterns, but when you throw AVX512 onto the pile, the number of variations explodes. For FP, we really don't care about AVX1 vs. AVX2 for FP ops. There may be some superficial shuffle diffs, but that's not what we're testing for here, so I removed those RUNs. Separating by type also lets us specify 'sse3' for the FP file vs. 'ssse3' for the integer file...because x86. llvm-svn: 350357
* [x86] add common FileCheck prefix to reduce assert duplication; NFCSanjay Patel2019-01-031-186/+90
| | | | llvm-svn: 350356
* [X86] Remove terrible DX Register parsing hack in parse operand. NFCI.Nirav Dave2019-01-032-18/+5
| | | | | | | Fold hack special casing of (%dx) operand parsing into the related hack for out*/in* instruction parsing. llvm-svn: 350355
* [DAGCombiner][x86] scalarize binop followed by extractelementSanjay Patel2019-01-0331-1462/+1269
| | | | | | | | | | | | | | | | | | | | As noted in PR39973 and D55558: https://bugs.llvm.org/show_bug.cgi?id=39973 ...this is a partial implementation of a fold that we do as an IR canonicalization in instcombine: // extelt (binop X, Y), Index --> binop (extelt X, Index), (extelt Y, Index) We want to have this in the DAG too because as we can see in some of the test diffs (reductions), the pattern may not be visible in IR. Given that this is already an IR canonicalization, any backend that would prefer a vector op over a scalar op is expected to already have the reverse transform in DAG lowering (not sure if that's a realistic expectation though). The transform is limited with a TLI hook because there's an existing transform in CodeGenPrepare that tries to do the opposite transform. Differential Revision: https://reviews.llvm.org/D55722 llvm-svn: 350354
* [AVR] Update integration/blink.ll as we now generate sbi/cbi instructions.Nirav Dave2019-01-031-26/+6
| | | | | | Silence long standing test failure. llvm-svn: 350353
* [OpenMP] Add omp_get_device_num() and update several other device API functionsJonathan Peyton2019-01-0313-48/+172
| | | | | | | | | | | | | | | | | | | | Add omp_get_device_num() function for 5.0 which returns the number of the device the current thread is running on. Currently, we are leaving it to the compiler to handle this properly if it is called inside target. Also, did some cleanup and updating of duplicate device API functions (in both libomp and libomptarget) to make them into weak functions that check for the symbol from libomptarget, and will call the version in libomptarget if it is present. If any additional device API functions are implemented also in libomptarget in the future, we should add the dlsym calls to the host functions. Also, if the omp_target_* functions are to be implemented for the host (this has been requested), they should attempt to call the libomptarget versions as well. Patch by Terry Wilmarth Differential Revision: https://reviews.llvm.org/D55578 llvm-svn: 350352
* [CaptureTracking] Add a unit test for MaxUsesToExploreArtur Pilipenko2019-01-032-0/+79
| | | | llvm-svn: 350351
* [AMDGPU] Fix scalar operand folding bug that causes SHOC performance regression.Alexander Timofeev2019-01-032-13/+17
| | | | | | | | | | | | | | | | | | | | | | Detailed description: SIFoldOperands::foldInstOperand iterates over the operand uses calling the function that changes def-use iteratorson the way. As a result loop exits immediately when def-use iterator is changed. Hence, the operand is folded to the very first use instruction only. This makes VGPR live along the whole basic block and increases register pressure significantly. The performance drop observed in SHOC DeviceMemory test is caused by this bug. Proposed fix: collect uses to separate container for further processing in another loop. Testing: make check-llvm SHOC performance test. Reviewers: rampitec, ronlieb Differential Revision: https://reviews.llvm.org/D56161 llvm-svn: 350350
* [UnrollRuntime] Move the DomTree verification under expensive checksAnna Thomas2019-01-031-1/+1
| | | | | | Suggested by Hal as done in r349871. llvm-svn: 350349
* Remove unused %host_cc lit patternNico Weber2019-01-031-1/+0
| | | | | | | | | It was added in r257236 but then the one use was removed in r309517. Since no test should call %host_cc, remove the pattern. Differential Revision: https://reviews.llvm.org/D56200 llvm-svn: 350348
* Reflow module.modulemap for readabilityAdrian Prantl2019-01-031-7/+37
| | | | llvm-svn: 350347
* Unbreak the modules build by splitting Target out into its own top-level moduleAdrian Prantl2019-01-031-4/+6
| | | | llvm-svn: 350346
* Revert "Resubmit rL345008 "Split MachinePipeliner code into header and cpp ↵Stefan Granitz2019-01-032-619/+595
| | | | | | | | files"" This reverts commit r350290. llvm-svn: 350345
* Revert "[MachinePipeliner] Add missing header file to MachinePipeliner.h"Stefan Granitz2019-01-031-1/+0
| | | | | | This reverts commit r350296. llvm-svn: 350344
* [llvm-objcopy] Fix buildbots on older compilersJordan Rupprecht2019-01-032-3/+4
| | | | llvm-svn: 350343
* [MCStreamer] Use report_fatal_error in EmitRawTextImplKristina Brooks2019-01-031-7/+8
| | | | | | | | | | Use report_fatal_error in MCStreamer::EmitRawTextImpl instead of using errs() and explain the rationale behind it not being llvm_unreachable() to save confusion for any future maintainers. Differential Revision: https://reviews.llvm.org/D56245 llvm-svn: 350342
* [elfabi] Introduce tool for ELF TextAPIArmando Montanez2019-01-0315-0/+482
| | | | | | | | | | | | | | | | | | | | | | | | Follow up for D53051 This patch introduces the tool associated with the ELF implementation of TextAPI (previously llvm-tapi, renamed for better distinction). This tool will house a number of features related to enalysis and manipulation of shared object's exposed interfaces. The first major feature for this tool is support for producing binary stubs that are useful for compile-time linking of shared objects. This patch introduces beginnings of support for reading binary ELF objects to work towards that goal. Added: - elfabi tool. - support for reading architecture from a binary ELF file into an ELFStub. - Support for writing .tbe files. Differential Revision: https://reviews.llvm.org/D55352 llvm-svn: 350341
* Validate -add-plugin arguments.Nico Weber2019-01-032-1/+20
| | | | | | | | | -plugin already prints an error if the name of an unknown plugin is passed. -add-plugin used to silently ignore that, now it errors too. Differential Revision: https://reviews.llvm.org/D56273 llvm-svn: 350340
* Rename TapiTests to TextAPITestsNico Weber2019-01-031-2/+2
| | | | | | | | | This makes the target name consistent with how all the other unit tests are named. Differential Revision: https://reviews.llvm.org/D56216 llvm-svn: 350339
* [x86] add tests for buildvector with extracted element; NFCSanjay Patel2019-01-031-0/+703
| | | | llvm-svn: 350338
* Fix typos in commentsJordan Rupprecht2019-01-031-2/+2
| | | | llvm-svn: 350337
* [llvm-objcopy][ELF] Implement a mutable section visitor that updates ↵Jordan Rupprecht2019-01-033-35/+152
| | | | | | | | | | | | | | | | | | | | | size-related fields (Size, EntrySize, Align) before layout. Summary: Fix EntrySize, Size, and Align before doing layout calculation. As a side cleanup, this removes a dependence on sizeof(Elf_Sym) within BinaryReader, so we can untemplatize that. This unblocks a cleaner implementation of handling the -O<format> flag. See D53667 for a previous attempt. Actual implementation of the -O<format> flag will come in an upcoming commit, this is largely a NFC (although not _totally_ one, because alignment on binary input was actually wrong before). Reviewers: jakehehrlich, jhenderson, alexshap, espindola Reviewed By: jhenderson Subscribers: emaste, arichardson, llvm-commits Differential Revision: https://reviews.llvm.org/D56211 llvm-svn: 350336
* Make -Wstring-plus-int warns even if when the result is not out of boundsArnaud Bienner2019-01-033-24/+13
| | | | | | | | | | | | | | Summary: Patch by Arnaud Bienner Reviewers: sylvestre.ledru, thakis, serge-sans-paille Reviewed By: thakis Subscribers: arphaman, dyung, anemet, llvm-commits, cfe-commits Differential Revision: https://reviews.llvm.org/D55382 llvm-svn: 350335
* [UnrollRuntime] Add DomTree verification under debug modeAnna Thomas2019-01-031-0/+6
| | | | | | | | | | | | NFC: This adds the dom tree verification under debug mode at a point just before we start unrolling the loop. This allows us to verify dom tree at a state where it is much smaller and before the unrolling actually happens. This also implies we do not need to run -verify-dom-info everytime to see if the DT is in a valid state when we transform the loop for runtime unrolling. llvm-svn: 350334
* [OPENMP][NVPTX]Fix incompatibility of __syncthreads with LLVM, NFC.Alexey Bataev2019-01-034-6/+15
| | | | | | | | | | | | | | | | | | Summary: One of the LLVM optimizations, split critical edges, also clones tail instructions. This is a dangerous operation for __syncthreads() functions and this transformation leads to undefined behavior or incorrect results. Patch fixes this problem by replacing __syncthreads() function with the assembler instruction, which cost is too high and wich cannot be copied. Reviewers: grokos, gtbercea, kkwli0 Subscribers: guansong, openmp-commits, caomhin Differential Revision: https://reviews.llvm.org/D56274 llvm-svn: 350333
* [AArch64] Add new scheduling predicatesEvandro Menezes2019-01-031-31/+86
| | | | | | Add new scheduling predicates to identify the ASIMD loads and stores using the post indexed addressing mode. llvm-svn: 350332
* Re-disable the sanitizer_common/TestCases/Posix/getfsent.cc test. Recent ↵Kuba Mracek2019-01-031-1/+1
| | | | | | macOS versions don't have the /etc/fstab file any more so we cannot test getfsent/setfsent APIs on Darwin. llvm-svn: 350331
* De-tab a couple tests. NFCMarshall Clow2019-01-033-6/+6
| | | | llvm-svn: 350330
* [clangd] Fix detecting atomics in stand-alone buildsMichal Gorny2019-01-031-0/+5
| | | | | | | | | | | | | Include CheckAtomic CMake module from LLVM in order to detect support for atomics when building stand-alone. Otherwise, the HAVE_CXX_ATOMICS64_WITHOUT_LIB variable is undefined and clangd wrongly attempts to link -latomic on systems not using the library. Original bug report: https://bugs.gentoo.org/667016 Differential Revision: https://reviews.llvm.org/D56061 llvm-svn: 350329
* [OPENMP][NVPTX]Use __kmpc_barrier_simple_spmd(nullptr, 0) instead ofAlexey Bataev2019-01-038-63/+83
| | | | | | | | | | nvvm_barrier0. Use runtime functions instead of the direct call to the nvvm intrinsics. It allows to prevent some dangerous LLVM optimizations, that breaks the code for the NVPTX target. llvm-svn: 350328
* Python compat - no explicit reference to Python versionSerge Guelton2019-01-039-9/+9
| | | | | | | | Update documentation and shebang. Differential Revision: https://reviews.llvm.org/D56252 llvm-svn: 350327
* Python compat - iterator protocolSerge Guelton2019-01-032-14/+26
| | | | | | | | In Python2 next() is used wile it's __next__ in Python3. Differential Revision: https://reviews.llvm.org/D56250 llvm-svn: 350326
* [clangd] Move helpers from global namespace into anonymous namespace, NFC.Haojian Wu2019-01-031-22/+22
| | | | llvm-svn: 350325
* [clangd] Bump vscode-clangd v0.0.9Haojian Wu2019-01-031-1/+1
| | | | llvm-svn: 350324
* [CostModel][X86] Add truncate cost tests to cover all legal destination typesSimon Pilgrim2019-01-031-9/+137
| | | | | | We were only testing costs for legal source vector element counts llvm-svn: 350323
* [MCA] Improve code comment and reuse an helper function in ResourceManager. NFCIAndrea Di Biagio2019-01-032-15/+18
| | | | llvm-svn: 350322
* [RISCV][MC] Accept %lo and %pcrel_lo on operands to liAlex Bradbury2019-01-034-10/+50
| | | | | | This matches GNU assembler behaviour. llvm-svn: 350321
* Python compat - decode/encode stringSerge Guelton2019-01-031-1/+4
| | | | | | Differential Revision: https://reviews.llvm.org/D56258 llvm-svn: 350320
* Portable Python script across Python versionSerge Guelton2019-01-033-3/+3
| | | | | | | | Get rid of Python version specific shebang. Differential Revision: https://reviews.llvm.org/D55207 llvm-svn: 350319
* Portable Python script across Python versionSerge Guelton2019-01-033-12/+20
| | | | | | | | StringIO is obsoleted in Python3, replaced by io.BytesIO or io.StringIO depending on the use. Differential Revision: https://reviews.llvm.org/D55196 llvm-svn: 350318
* Diagnose an unused result from a call through a function pointer whose ↵Aaron Ballman2019-01-036-33/+57
| | | | | | | | | | return type is marked [[nodiscard]]. When a function returns a type and that type was declared [[nodiscard]], we diagnose any unused results from that call as though the function were marked nodiscard. The same behavior should apply to calls through a function pointer. This addresses PR31526. llvm-svn: 350317
OpenPOWER on IntegriCloud