summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [llvm-readobj][mips] Remove non-standard --misp-xxx flagsSimon Atanasyan2019-10-031-27/+0
| | | | | | | | llvm-readobj "non-standard" flags `--mips-plt-got`, `--mips-abi-flags`, `--mips-reginfo`, and `--mips-options` are superseded by the `--arch-specific` flag and can be removed now. llvm-svn: 373590
* [mips] Use llvm-readobj `-A` flag in test cases. NFCSimon Atanasyan2019-10-0353-93/+90
| | | | llvm-svn: 373589
* [llvm-readobj][mips] Display MIPS specific info under --arch-specific flagSimon Atanasyan2019-10-036-17/+24
| | | | | | | Old options `--mips-plt-got`, `--mips-abi-flags`, '--mips-reginfo`, and `--mips-options` wiil be deleted in a separate patch. llvm-svn: 373588
* [llvm-readobj][mips] Do not show an error if GOT is missedSimon Atanasyan2019-10-032-9/+1
| | | | | | It is not an error if a file does not contain GOT. llvm-svn: 373587
* gn build: Revert 373554 "gn build: (manually) merge r373551"Nico Weber2019-10-034-23/+0
| | | | | | r373551 was reverted in r373581. llvm-svn: 373586
* [AArch64] Static (de)allocation of SVE stack objects.Sander de Smalen2019-10-0310-15/+369
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds support to AArch64FrameLowering to allocate fixed-stack SVE objects. The focus of this patch is purely to allow the stack frame to allocate/deallocate space for scalable SVE objects. More dynamic allocation (at compile-time, i.e. determining placement of SVE objects on the stack), or resolving frame-index references that include scalable-sized offsets, are left for subsequent patches. SVE objects are allocated in the stack frame as a separate region below the callee-save area, and above the alignment gap. This is done so that the SVE objects can be accessed directly from the FP at (runtime) VL-based offsets to benefit from using the VL-scaled addressing modes. The layout looks as follows: +-------------+ | stack arg | +-------------+ | Callee Saves| | X29, X30 | (if available) |-------------| <- FP (if available) | : | | SVE area | | : | +-------------+ |/////////////| alignment gap. | : | | Stack objs | | : | +-------------+ <- SP after call and frame-setup SVE and non-SVE stack objects are distinguished using different StackIDs. The offsets for objects with TargetStackID::SVEVector should be interpreted as purely scalable offsets within their respective SVE region. Reviewers: thegameg, rovka, t.p.northover, efriedma, rengolin, greened Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D61437 llvm-svn: 373585
* Silence static analyzer getAs<RecordType> null dereference warnings. NFCI.Simon Pilgrim2019-10-0332-83/+80
| | | | | | The static analyzer is warning about potential null dereferences, but in these cases we should be able to use castAs<RecordType> directly and if not assert will fire for us. llvm-svn: 373584
* Fix uninitialized variable warning. NFCISimon Pilgrim2019-10-031-1/+1
| | | | llvm-svn: 373583
* Fix uninitialized variable warning. NFCISimon Pilgrim2019-10-031-1/+1
| | | | llvm-svn: 373582
* Revert 373551 (CodeExpander.cpp CMake issue)Kristina Brooks2019-10-039-422/+1
| | | | | | | | Fix buildbots and revert the CodeExpander commit. (See http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20190930/699857.html ) llvm-svn: 373581
* [Alignment][NFC] Allow constexpr AlignGuillaume Chatelet2019-10-035-5/+61
| | | | | | | | | | | | | | | | | Summary: This is patch is part of a series to introduce an Alignment type. See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this patch for the introduction of the type: https://reviews.llvm.org/D64790 Reviewers: courbet Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68329 llvm-svn: 373580
* Revert 373555: libLLVM+modules failure with CMake 3.10.2Kristina Brooks2019-10-033-3/+4
| | | | | | | | | This reverts rL373555. I've sent an email out regarding the issue. Commit on GitHub: https://github.com/llvm/llvm-project/commit/45f682f47129c05414d4c5ae7be851772273978f llvm-svn: 373579
* [clang][NFC] Fix misspellings in ExternalASTMerger.hRaphael Isemann2019-10-031-4/+4
| | | | llvm-svn: 373577
* Update the FAQ: remove stuff related to the previous license +Sylvestre Ledru2019-10-031-9/+4
| | | | | | update info about the portability of LLVM. llvm-svn: 373576
* "Fix" TestFileHandle.py on non-darwin platformsPavel Labath2019-10-031-0/+8
| | | | | | | | | | | | | | | | | | This test exposed a very long standing issue that the python file objects returned by the FILE* typemap were unusable on non-darwin platforms. The reason they work on darwin is that they rely on a non-standard extension to fetch the "mode" of a FILE* object. On other platforms, this code was #ifdefed out, and so we were returning an empty mode. As there's no portable way to get this information, I just change the non-darwin path to return "r+", which should permit both reading and writing operations on the object. If the underlying file descriptor turns out to be incompatible with this mode, the operating system should return EBADF (or equivalent), instead of the "file not open for XXX" error from python. llvm-svn: 373573
* Fix a use-after-free in GDBRemoteCommunicationServerLLGSPavel Labath2019-10-031-1/+2
| | | | | | | | | | | | Although it's called "GetString", StreamString::GetString actually returns a StringRef. Creating a json object with a StringRef does not make a copy, which means the StringRef will be dangling as soon as the underlying stream is destroyed. Add a .str() to force the json object to hold a copy of the string. This fixes nearly every test on linux. llvm-svn: 373572
* [llvm-exegesis][NFC] Rename ExegesisTarget::decrementLoopCounterAndLoop()Clement Courbet2019-10-033-6/+10
| | | | | | | | | | | | | | Summary: To decrementLoopCounterAndJump, and explicitely take the jump target. Reviewers: gchatelet Subscribers: tschuett, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68375 llvm-svn: 373571
* Fix libc++ pretty printer test for Python 3 after D67238 (take 2)Fangrui Song2019-10-031-3/+1
| | | | | | | | In both Python 2 and Python 3, gdb.Value.string returns a 'str'. We just need to delete a `encode("utf-8")` which would return a 'bytes' in Python 3. llvm-svn: 373570
* [X86] Add test case for v8i64->v8i8 truncate with avx512 and ↵Craig Topper2019-10-031-0/+31
| | | | | | | | | prefer-vector-width/min-legal-vector-width=256. NFC With vpmovqb, we should be able to do better here until we get AVX512VBMI on Cannonlake/Icelake. llvm-svn: 373569
* AMDGPU/GlobalISel: Don't re-get subtargetMatt Arsenault2019-10-031-6/+3
| | | | | | It's already available in the class. llvm-svn: 373568
* AMDGPU/GlobalISel: Expand G_BITCAST legalityMatt Arsenault2019-10-032-4/+103
| | | | llvm-svn: 373567
* [X86] Add DAG combine to turn (bitcast (vbroadcast_load)) into just a ↵Craig Topper2019-10-039-204/+83
| | | | | | | | | | | | | | | | vbroadcast_load if the scalar size is the same. This improves broadcast load folding of i64 elements on 32-bit targets where i64 isn't legal. Previously we had to represent these as vXf64 vbroadcast_loads and a bitcast to vXi64. But we didn't have any isel patterns looking for that. This also allows us to remove or simplify some isel patterns that were looking for bitcasted vbroadcast_loads. llvm-svn: 373566
* Fix driver tests when `LLVM_ENABLE_PER_TARGET_RUNTIME_DIR` is `ON`Serge Pavlov2019-10-032-7/+35
| | | | | | | | | | | | | | | | Some Driver tests relied on the default resource direcory having per-os per-arch subdirectory layout, and when clang is built with `-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON`, those test fail, because clang by default assumes per-target subdirectories. Explicitly set `-resource-dir` flag to point to a tree with per-os per-arch layout. See also: D45604, D62469 Differential Revision: https://reviews.llvm.org/D66981 Patch by Sergej Jaskiewicz <jaskiewiczs@icloud.com>. llvm-svn: 373565
* factor out an abstract base class for FileLawrence D'Anna2019-10-0317-262/+367
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch factors out File as an abstract base class and moves most of its actual functionality into a subclass called NativeFile. In the next patch, I'm going to be adding subclasses of File that don't necessarily have any connection to actual OS files, so they will not inherit from NativeFile. This patch was split out as a prerequisite for https://reviews.llvm.org/D68188 Reviewers: JDevlieghere, jasonmolenda, labath Reviewed By: labath Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D68317 llvm-svn: 373564
* SBDebugger::SetInputFile, SetOutputFile, etc.Lawrence D'Anna2019-10-039-35/+275
| | | | | | | | | | | | | | | | | | | | | Summary: Add new methods to SBDebugger to set IO files as SBFiles instead of as FILE* streams. In future commits, the FILE* methods will be deprecated and these will become the primary way to set the debugger I/O streams. Reviewers: JDevlieghere, jasonmolenda, labath Reviewed By: labath Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D68181 llvm-svn: 373563
* new api class: SBFileLawrence D'Anna2019-10-0316-25/+428
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: SBFile is a scripting API wrapper for lldb_private::File This is the first step in a project to enable arbitrary python io.IOBase file objects -- including those that override the read() and write() methods -- to be used as the main debugger IOStreams. Currently this is impossible because python file objects must first be converted into FILE* streams by SWIG in order to be passed into the debugger. full prototype: https://github.com/smoofra/llvm-project/tree/files Reviewers: JDevlieghere, jasonmolenda, zturner, jingham, labath Reviewed By: labath Subscribers: labath, mgorny, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D67793 llvm-svn: 373562
* [HIP] Support -emit-llvm for device compilationYaxun Liu2019-10-032-2/+80
| | | | | | | | | | | Sometimes it is useful to compile HIP device code to LLVM BC. It is not convenient to use clang -cc1 since there are lots of options needed. This patch allows clang driver to compile HIP device code to LLVM BC with -emit-llvm -c. Differential Revision: https://reviews.llvm.org/D68284 llvm-svn: 373561
* [X86] Add broadcast load folding patterns to NoVLX ↵Craig Topper2019-10-036-55/+149
| | | | | | | | VPMULLQ/VPMAXSQ/VPMAXUQ/VPMINSQ/VPMINUQ patterns. More fixes for PR36191. llvm-svn: 373560
* [X86] Remove a couple redundant isel patterns that look to have been ↵Craig Topper2019-10-031-17/+0
| | | | | | copy/pasted from right above them. NFC llvm-svn: 373559
* gn build: Merge r373556GN Sync Bot2019-10-031-1/+0
| | | | llvm-svn: 373558
* Revert 373538 and follow-ups 373549 and 373552.Nico Weber2019-10-0332-340/+111
| | | | | | They break tests on (at least) macOS. llvm-svn: 373556
* [gicombiner] Make rL373551 compatible with older cmakesDaniel Sanders2019-10-033-4/+3
| | | | | | | Newer cmakes appear to be more flexible w.r.t object libraries. Convert to a static library so that it works with older cmakes too llvm-svn: 373555
* gn build: (manually) merge r373551Nico Weber2019-10-034-0/+23
| | | | llvm-svn: 373554
* PR43519: don't inject a diagnostic when constant-evaulation of aRichard Smith2019-10-032-2/+10
| | | | | | | | | | pointer-to-member call can't determine a callee. We will have produced a diagnostic already if the callee is known to be unevaluatable, and diagnosing here rejects valid code during potential constant expression checking. llvm-svn: 373553
* Fixing broken builds due to r373538, issues with filepath and hexagon toolchain.Puyan Lotfi2019-10-031-9/+16
| | | | | | | | It appears there are some issues with the hexagon toolchain, and also the file path for the library file. If this doesn't fix the remaining breakages I will attempt a revert. llvm-svn: 373552
* [gicombiner] Add a CodeExpander to handle C++ fragments with variable expansionDaniel Sanders2019-10-039-1/+422
| | | | | | | | | | | | | | | | | Summary: This will handle expansion of C++ fragments in the declarative combiner including custom predicates, and escapes into C++ to aid the migration effort. Reviewers: bogner, volkan Subscribers: mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68288 llvm-svn: 373551
* gn build: Merge r373538GN Sync Bot2019-10-031-0/+1
| | | | llvm-svn: 373550
* Fixing broken builds due to r373538 due to test that should have been deleted.Puyan Lotfi2019-10-031-14/+0
| | | | | | test/InterfaceStubs/object.cpp should have been deleted. llvm-svn: 373549
* Mark P0784R7 as complete and start defining its feature-test macro.Richard Smith2019-10-033-2/+6
| | | | | | | Note that this only covers the language side of this feature. (The library side has its own feature test macro.) llvm-svn: 373548
* For P0784R7: support placement new-expressions in constant evaluation.Richard Smith2019-10-034-34/+201
| | | | | | | | | For now, we restrict this support to use from within the standard library implementation, since we're required to make parts of the standard library that use placement new work, but not permitted to make uses of placement new from user code work. llvm-svn: 373547
* For P0784R7: allow direct calls to operator new / operator delete fromRichard Smith2019-10-033-81/+374
| | | | | | std::allocator::{allocate,deallocate} in constant evaluation. llvm-svn: 373546
* [gicombiner] Fix windows issue where single quotes in the command are passed ↵Daniel Sanders2019-10-021-1/+1
| | | | | | through to tablegen llvm-svn: 373545
* [AMDGPU] Fix illegal agpr use by VALUStanislav Mekhanoshin2019-10-023-4/+31
| | | | | | | | | | | | | | | | | | | When SIFixSGPRCopies attempts to fix an illegal copy from vector to scalar register it calls moveToVALU(). A copy from an agpr to sgpr becomes a copy from agpr to agpr, which may result in the illegal register class at a use of this copy. Solution is to copy it always into a vgpr. This may result in a subsequent copy into an agpr if that is what really needed, however should not happen too often and likely will be folded later. The opposite situation may not happen because an sgpr is always illegal where agpr is legal, so such user instructions may not exist. Differential Revision: https://reviews.llvm.org/D68358 llvm-svn: 373544
* [gicombiner] Fix a nullptr dereference when -combiners is given a name that ↵Daniel Sanders2019-10-021-5/+11
| | | | | | | | | isn't defined This is unlikely to be the root cause for the windows bot failures but it would explain the stack trace seen. llvm-svn: 373543
* [InstCombine] Bypass high bit extract before variable sign-extension (PR43523)Roman Lebedev2019-10-023-26/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | https://rise4fun.com/Alive/8BY - valid for lshr+trunc+variable sext https://rise4fun.com/Alive/7jk - the variable sext can be redundant https://rise4fun.com/Alive/Qslu - 'exact'-ness of first shift can be preserver https://rise4fun.com/Alive/IF63 - without trunc we could view this as more general "drop redundant mask before right-shift", but let's handle it here for now https://rise4fun.com/Alive/iip - likewise, without trunc, variable sext can be redundant. There's more patterns for sure - e.g. we can have 'lshr' as the final shift, but that might be best handled by some more generic transform, e.g. "drop redundant masking before right-shift" (PR42456) I'm singling-out this sext patch because you can only extract high bits with `*shr` (unlike abstract bit masking), and i *know* this fold is wanted by existing code. I don't believe there is much to review here, so i'm gonna opt into post-review mode here. https://bugs.llvm.org/show_bug.cgi?id=43523 llvm-svn: 373542
* [NFC][InstCombine] Add tests for 'variable sext of variable high bit ↵Roman Lebedev2019-10-021-0/+584
| | | | | | | | extract' pattern (PR43523) https://bugs.llvm.org/show_bug.cgi?id=43523 llvm-svn: 373541
* DebugInfo: Rename DebugLocStream::Entry::Begin/EndSym to just Begin/EndDavid Blaikie2019-10-022-17/+13
| | | | | | | | Brings this struct in line with the RangeSpan class so they might eventually be used by common template code for generating range/loc lists with less duplicate code. llvm-svn: 373540
* Move SanitizerInitializeUnwinder outside anonymous namespace.Matt Morehouse2019-10-021-32/+32
| | | | | | Fixes the Android build breakage introduced in r373528. llvm-svn: 373539
* [clang][ifs] Clang Interface Stubs ToolChain plumbing.Puyan Lotfi2019-10-0231-97/+333
| | | | | | | | | | | | | | | | | | | | | This patch enables end to end support for generating ELF interface stubs directly from clang. Now the following: clang -emit-interface-stubs -o libfoo.so a.cpp b.cpp c.cpp will product an ELF binary with visible symbols populated. Visibility attributes and -fvisibility can be used to control what gets populated. * Adding ToolChain support for clang Driver IFS Merge Phase * Implementing a default InterfaceStubs Merge clang Tool, used by ToolChain * Adds support for the clang Driver to involve llvm-ifs on ifs files. * Adds -emit-merged-ifs flag, to tell llvm-ifs to emit a merged ifs text file instead of the final object format (normally ELF) Differential Revision: https://reviews.llvm.org/D63978 llvm-svn: 373538
* [InstCombine] Transform bcopy to memmoveDavid Bolvansky2019-10-023-0/+34
| | | | | | | bcopy is still widely used mainly for network apps. Sadly, LLVM has no optimizations for bcopy, but there are some for memmove. Since bcopy == memmove, it is profitable to transform bcopy to memmove and use current optimizations for memmove for free here. llvm-svn: 373537
OpenPOWER on IntegriCloud