- Sep 24, 2020
-
-
Fangrui Song authored
This reverts commit ab1b4810. It caused an issue in llvm::lto::thinBackend for a -fsanitize=cfi build. ``` AbbrevNo is 0 => "Invalid abbrev number" 0 llvm::BitstreamCursor::getAbbrev (this=0x9db4c8, AbbrevID=4) at llvm/include/llvm/Bitstream/BitstreamReader.h:528 1 0x00007f5f777a6eb4 in llvm::BitstreamCursor::readRecord (this=0x9db4c8, AbbrevID=4, Vals=llvm::SmallVector of Size 0, Capacity 64, Blob=0x7ffcd0e26558) at usr/local/google/home/maskray/llvm/llvm/lib/Bitstream/Reader/BitstreamReader.cpp:228 2 0x00007f5f796bf633 in llvm::MetadataLoader::MetadataLoaderImpl::lazyLoadOneMetadata (this=0x9db3a0, ID=188, Placeholders=...) at /usr/local/google/home/mas ray/llvm/llvm/lib/Bitcode/Reader/MetadataLoader.cpp:1091 3 0x00007f5f796c2527 in llvm::MetadataLoader::MetadataLoaderImpl::getMetadataFwdRefOrLoad (this=0x9db3a0, ID=188) at llvm lib/Bitcode/Reader/MetadataLoader.cpp:668 4 0x00007f5f796bfff3 in llvm::MetadataLoader::getMetadataFwdRefOrLoad (this=0xd31580, Idx=188) at llvm/lib/Bitcode/Reader MetadataLoader.cpp:2290 5 0x00007f5f79638265 in (anonymous namespace)::BitcodeReader::parseFunctionBody (this=0xd312e0, F=0x9de758) at llvm/lib/B tcode/Reader/BitcodeReader.cpp:3938 6 0x00007f5f79635d32 in (anonymous namespace)::BitcodeReader::materialize (this=0xd312e0, GV=0x9de758) at llvm/lib/Bitcod /Reader/BitcodeReader.cpp:5408 7 0x00007f5f7f8dbe3e in llvm::Module::materialize (this=0x9b92c0, GV=0x9de758) at llvm/lib/IR/Module.cpp:442 8 0x00007f5f7f7f8fbe in llvm::GlobalValue::materialize (this=0x9de758) at llvm/lib/IR/Globals.cpp:50 9 0x00007f5f83b9b5f5 in llvm::FunctionImporter::importFunctions (this=0x7ffcd0e2a730, DestModule=..., ImportList=...) at llvm/lib/Transforms/IPO/FunctionImport.cpp:1182 ```
-
Krzysztof Parzyszek authored
D87691 reordered some checks, which turned out to be unsafe. More specifically, when examining a store instruction, the check against getOrCreateResult should be done before attempting to call isSameMemGeneration. Otherwise a crash in MSSA walker can occur. This patch restores the order of these calls to what it was originally.
-
Mircea Trofin authored
-
Vinicius Tinti authored
Implements IS_ABSOLUTE_PATH from GNU tools. C++17 is_absolute behavior is different the from the behavior defined by GNU tools. According to cppreference.com, C++17 states: "An absolute path is a path that unambiguously identifies the location of a file without reference to an additional starting location." In other words, the rules are: 1. POSIX style paths with nonempty root directory are absolute. 2. Windows style paths with nonempty root name and root directory are absolute. 3. No other paths are absolute. GNU rules are: 1. Paths starting with a path separator are absolute. 2. Windows style paths are also absolute if they start with a character followed by ':'. 3. No other paths are absolute. On Windows style the path "C:\Users\Default" has "C:" as root name and "\" as root directory. Hence "C:" on Windows is absolute under GNU rules and not absolute under C++17 because it has no root directory. Likewise "/" and "\" on Windows are absolute under GNU and are not absolute under C++17 due to empty root name. Related to PR46368. Differential Revision: https://reviews.llvm.org/D87667 -
Dmitry Antipov authored
Add an optimal thread strategy to execute specified amount of tasks. This strategy should prevent us from creating too many threads if we occasionaly have an unexpectedly small amount of tasks. Differential Revision: https://reviews.llvm.org/D87765
-
Mircea Trofin authored
This is important to not regress because it allows us to capture pre-optimization bitcode and options, and replay the full optimization pipeline. Differential Revision: https://reviews.llvm.org/D88114
-
Guozhi Wei authored
MBFIWrapper keeps track of block frequencies of newly created blocks and modified blocks, modified block frequencies should also impact block profile count. This class doesn't provide interface getBlockProfileCount, users can only use the underlying MBFI to query profile count, the underlying MBFI doesn't know the modifications made in MBFIWrapper, so it either provides stale profile count for modified block or simply crashes on new blocks. So this patch add function getBlockProfileCount to class MBFIWrapper to handle new blocks or modified blocks. Differential Revision: https://reviews.llvm.org/D87802
-
Stella Laurenzo authored
Was inadvertently left out of D88155.
-
David Greene authored
Remove RISCV codegen tests for --include-generated-funcs because apparently MachineOutliner has a bug on that target that is exposed by expensive-checks.
-
Stella Laurenzo authored
* Added mlirRegisterAllDialects() to the python API until a more complete registration design emerges for it. Differential Revision: https://reviews.llvm.org/D88155
-
Rahul Joshi authored
- Use BlockRange in ODS generated builders as well as other places throughout the code Differential Revision: https://reviews.llvm.org/D87955
-
Mehdi Amini authored
-
Aaron Ballman authored
Currently, when marshaling a dynamic AST matchers, we check for the type and value validity of matcher arguments at the same time for some matchers. For instance, when marshaling hasAttr("foo"), the argument is first type checked to ensure it's a string and then checked to see if that string can locate an attribute with that name. Similar happens for other enumeration conversions like cast kinds or unary operator kinds. If the type is correct but the value cannot be looked up, we make a best-effort attempt to find a nearby name that the user might have meant, but if one cannot be found, we throw our hands up and claim the types don't match. This has an unfortunate behavior that when the user enters something of the correct type but a best guess cannot be located, you get confusing error messages like: Incorrect type for arg 1. (Expected = string) != (Actual = String). This patch splits the argument check into two parts: if the types don't match, give a type diagnostic. If the type matches but the value cannot be converted, give a best guess diagnostic or a value could not be located diagnostic. This addresses PR47057. -
Rahul Joshi authored
- Use TypeRange instead of ArrayRef<Type> where possible. - Change some of the custom builders to also use TypeRange Differential Revision: https://reviews.llvm.org/D87944
-
Rahul Joshi authored
- Change the default builders to use TypeRange instead of ArrayRef<Type> - Custom builders defined in LinalgStructuredOps now conflict with the default separate param ones, but the default collective params one is still needed. Resolve this by replicating the collective param builder as a custom builder and skipping the generation of default builders for these ops. Differential Revision: https://reviews.llvm.org/D87926
-
- Sep 23, 2020
-
-
Yaxun (Sam) Liu authored
-
Alex Zinenko authored
Blocks in a region and operations in a block are organized in a linked list. The C API only provides functions to append or to insert elements at the specified numeric position in the list. The latter is expensive since it requires to traverse the list. Add insert before/after functionality with low cost that relies on the iplist elements being convertible to iterators. Reviewed By: stellaraccident Differential Revision: https://reviews.llvm.org/D88148
-
Dave Lee authored
Delete a file remaining from the deletion of lldb-perf in D64362. Differential Revision: https://reviews.llvm.org/D88119
-
Yaxun (Sam) Liu authored
recommit e50465ec with fix for regression in lldb tests. Two issues: 1. the directory part of original .dwo file was dropped 2. if the stem of the .dwo file contains '.', the last dot and strings after that were removed This recommit fixes those two issues.
-
Andrew Wei authored
When matching store instruction for ldst opt, we should make sure store instr is in 'reg+imm' form as load instr, otherwise, it will have assertion in isLdOffsetInRangeOfSt since it will use getImm() directly. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D87905
-
Simon Pilgrim authored
Fixes some clang-tidy llvm-namespace-comment warnings.
-
Simon Pilgrim authored
Fixes clang-tidy llvm-namespace-comment warning.
-
Sebastian Neubauer authored
This reverts commit ca907bfb. According to michel.daenzer, > This completely broke the Mesa radeonsi driver on Navi 14. Xorg + > xterm come up with major corruption & psychedelic colours.
-
Jacques Pienaar authored
These are now automatically prepended.
-
Jacques Pienaar authored
Incorrect generation of custom build method without any params.
-
Stella Laurenzo authored
-
Stella Laurenzo authored
* The API is a bit more verbose than I feel like it needs to be. In a follow-up I'd like to abbreviate some things and look in to creating aliases for common accessors. * There is a lingering lifetime hazard between the module and newly added operations. We have the facilities now to solve for this but I will do that in a follow-up. * We may need to craft a more limited API for safely referencing successors when creating operations. We need more facilities to really prove that out and should defer for now. Differential Revision: https://reviews.llvm.org/D87996
-
Stella Laurenzo authored
* Removes the half-completed prior attempt at region/block mutation in favor of new approach to ownership. * Will re-add mutation more correctly in a follow-on. * Eliminates the detached state on blocks and regions, simplifying the ownership hierarchy. * Adds both iterator and index based access at each level. Differential Revision: https://reviews.llvm.org/D87982
-
Stella Laurenzo authored
* Fixes a rather egregious bug with respect to the inability to return arbitrary objects from py::init (was causing aliasing of multiple py::object -> native instance). * Makes Modules and Operations referencable types so that they can be reliably depended on. * Uniques python operation instances within a context. Opens the door for further accounting. * Next I will retrofit region and block to be dependent on the operation, and I will attempt to model the API to avoid detached regions/blocks, which will simplify things a lot (in that world, only operations can be detached). * Added quite a bit of test coverage to check for leaks and reference issues. * Supercedes: https://reviews.llvm.org/D87213 Differential Revision: https://reviews.llvm.org/D87958
-
Valentin Clement authored
This patch switch from using bool variables to OptionalParseResult for the parsing inside loop operation. This is already done for parallel operation and this patch unify this in the dialect. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D88111
-
SuJunda (Junda Su) authored
I don't have commit access. Please help me commit it. Thanks : ) Reviewed By: Paul-C-Anagnostopoulos Differential Revision: https://reviews.llvm.org/D88139
-
Utkarsh Saxena authored
Current implementation of heuristic-based scoring function also contains computation of derived signals (e.g. whether name contains a word from context, computing file distances, scope distances.) This is an attempt to separate out the logic for computation of derived signals from the scoring function. This will allow us to have a clean API for scoring functions that will take only concrete code completion signals as input. Differential Revision: https://reviews.llvm.org/D88146
-
Cameron McInally authored
Differential Revision: https://reviews.llvm.org/D87796
-
Florian Hahn authored
This refactors VPuser to not inherit from VPValue to facilitate introducing operations that introduce multiple VPValues (e.g. VPInterleaveRecipe). Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D84679
-
Alex Zinenko authored
-
Jonas Paulsson authored
Better use isZero() and isIntN() in SystemZTargetTransformInfo rather than calling getZExtValue() since the immediate operand may be wider than 64 bits, which is not allowed with getZExtValue(). Fixes https://bugs.llvm.org/show_bug.cgi?id=47600 Review: Simon Pilgrim
-
Sam Parker authored
-
YangZhihui authored
-
Matt Arsenault authored
The shift amount type does not necessarily match the result type. This was inserting a trunc from s32 to s32, which asserted. Just preserve the original shift amount type which can be legalized later.
-
Matt Arsenault authored
We would always select global FP atomics from atomicrmw fadd, although they have a hardcoded FP mode.
-