- Dec 12, 2020
-
-
Fangrui Song authored
-
River Riddle authored
The doc has grown stale and is missing some recent changes to the infrastructure. Differential Revision: https://reviews.llvm.org/D93081
-
Duncan P. N. Exon Smith authored
-
Duncan P. N. Exon Smith authored
Pass on the filesystem error string `FileManager::getFileRef` in `clang-import-test`'s `ParseSource` function. Also include "error:" and a newline in the output. As a side effect, migrate to the `FileEntryRef` overload of `SourceManager::createFileID`. No real functionality change here, just slightly better output on error. Differential Revision: https://reviews.llvm.org/D92971
-
Duncan P. N. Exon Smith authored
Migrate over to the `FileEntryRef` overloads of `SourceManager::createFileID` and `overrideFileContents` (using `getVirtualFileRef`) in `TextDiagnostic`'s `ShowLine` test. No functionality change. Differential Revision: https://reviews.llvm.org/D92968
-
Jonas Paulsson authored
Fixed to properly compute the live-in lists of new blocks. Review: Ulrich Weigand Differential Revision: https://reviews.llvm.org/D92803
-
Jonas Paulsson authored
The performance improvement on LBM previously achieved with improved software prefetching (36d4421f) have gone lost recently with e00f189d. There now is one memory access in the loop that LoopDataPrefetch cannot handle (while before there was none) which the heuristic rejects. This patch adds a small margin by allowing 1 non-prefetched memory access for every 32 prefetched ones, so that the heuristic doesn't bail in this type of case. Review: Ulrich Weigand Differential Revision: https://reviews.llvm.org/D92985
-
diggerlin authored
Summary: "Speculative fix for link failure on bots" with a mention of "the clang-ppc64le-rhel bot fails on link: http://lab.llvm.org:8011/#/builders/57/builds/2307/steps/6/logs/stdio". PPCAsmPrinter.cpp:(.text._ZN12_GLOBAL__N_116PPCAIXAsmPrinter19emitFunctionBodyEndEv+0x2f8): undefined reference to `llvm::XCOFF::getNameForTracebackTableLanguageId(llvm::XCOFF::TracebackTable::LanguageID)' PPCAsmPrinter.cpp:(.text._ZN12_GLOBAL__N_116PPCAIXAsmPrinter19emitFunctionBodyEndEv+0x2170): undefined reference to `llvm::XCOFF::parseParmsType(unsigned int, unsigned int)'
-
Craig Topper authored
Preparation for D92745 which will add more tests to these files.
-
Nikita Popov authored
Revert "Consider reference, pointer, and pointer-to-member TemplateArguments to be different if they have different types." This reverts commit 7b3470ba. Causes a crash while building tramp3d-v4 from test-suite.
-
diggerlin authored
SUMMARY: 1. added a new option -xcoff-traceback-table to control whether generate traceback table for function. 2. implement the functionality of emit traceback table of a function. Reviewers: hubert.reinterpretcast, Jason Liu Differential Revision: https://reviews.llvm.org/D92398
-
Mehdi Amini authored
This mirror the C++ API for NamedAttribute, and has the advantage or internalizing earlier in the Context and not requiring the caller to keep the StringRef alive beyong this call. Differential Revision: https://reviews.llvm.org/D93133
-
Siva Chandra Reddy authored
Along the way, made a change to run tool unittests when the target "check-libc" is run by introducing a libc testsuite for tool unittests. Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D93142
-
Sean Silva authored
This reverts commit 0d48d265. This reapplies the following commit, with a fix for CAPI/ir.c: [mlir] Start splitting the `tensor` dialect out of `std`. This starts by moving `std.extract_element` to `tensor.extract` (this mirrors the naming of `vector.extract`). Curiously, `std.extract_element` supposedly works on vectors as well, and this patch removes that functionality. I would tend to do that in separate patch, but I couldn't find any downstream users relying on this, and the fact that we have `vector.extract` made it seem safe enough to lump in here. This also sets up the `tensor` dialect as a dependency of the `std` dialect, as some ops that currently live in `std` depend on `tensor.extract` via their canonicalization patterns. Part of RFC: https://llvm.discourse.group/t/rfc-split-the-tensor-dialect-from-std/2347/2 Differential Revision: https://reviews.llvm.org/D92991
-
Sanjay Patel authored
This transform was added at: c63799fc From what I see, it's the first demanded elements transform that adds a new instruction using the IRBuilder. There are similar folds in the generic demanded bits chunk of instcombine that also use the InsertPointGuard code pattern. The tests here would assert/crash because the new instruction was being added at the start of the demanded elements analysis rather than at the instruction that is being replaced.
-
Sean Silva authored
This reverts commit cab8dda9. I mistakenly thought that CAPI/ir.c failure was unrelated to this change. Need to debug it.
-
Peter Steinfeld authored
The "flang" script that gets put into "install/bin" had an absolute path in it. This precuded moving the install directory to a new location. Differential Revision: https://reviews.llvm.org/D93131
-
Sean Silva authored
This starts by moving `std.extract_element` to `tensor.extract` (this mirrors the naming of `vector.extract`). Curiously, `std.extract_element` supposedly works on vectors as well, and this patch removes that functionality. I would tend to do that in separate patch, but I couldn't find any downstream users relying on this, and the fact that we have `vector.extract` made it seem safe enough to lump in here. This also sets up the `tensor` dialect as a dependency of the `std` dialect, as some ops that currently live in `std` depend on `tensor.extract` via their canonicalization patterns. Part of RFC: https://llvm.discourse.group/t/rfc-split-the-tensor-dialect-from-std/2347/2 Differential Revision: https://reviews.llvm.org/D92991
-
Richard Smith authored
Consider reference, pointer, and pointer-to-member TemplateArguments to be different if they have different types. For the Itanium ABI, this implements the mangling rule suggested in https://github.com/itanium-cxx-abi/cxx-abi/issues/47, namely mangling such template arguments as being cast to the parameter type in the case where the template name is overloadable. This can cause a mangling change for rare cases, where * the template argument declaration is converted from its declared type to the type of the template parameter, and * the template parameter either has a deduced type or is a parameter of a function template. However, such changes are necessary to avoid mangling collisions. The ABI changes can be reversed with -fclang-abi-compat=11 or earlier. Differential Revision: https://reviews.llvm.org/D91488
-
Krzysztof Parzyszek authored
-
Fangrui Song authored
This migrates all LLVM (except Kaleidoscope and CodeGen/StackProtector.cpp) DebugLoc::get to DILocation::get. The CodeGen/StackProtector.cpp usage may have a nullptr Scope and can trigger an assertion failure, so I don't migrate it. Reviewed By: #debug-info, dblaikie Differential Revision: https://reviews.llvm.org/D93087
-
Nikita Popov authored
The (scevgep, scevgep5) relation regressed with a patch I was trying, but wasn't tested.
-
Florian Hahn authored
This reverts commit a87fccb3. A test appears to fail with expensive checks. Reverting while I investigate.
-
Florian Hahn authored
-
Jinsong Ji authored
This test may fail if there is a new changes to this tests. The archives are not deleted so the contents from the previous test run may affect the contents for the current run, so this will require cleaning up the Output dir or force build of buildbot. The fix is to put all the objects in the temporary dir that we cleanup every run, to avoid run-2-run flaky failures. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D93128
-
Florian Hahn authored
This patch adds support for lowering function calls with the rv_marker attribute. The goal is to expand such calls to the following sequence of instructions: BL @fn mov x29, x29 This sequence of instructions triggers Objective-C runtime optimizations, hence we want to ensure no instructions get moved in between them. This patch achieves that by adding a new CALL_RVMARKER ISD node, which gets turned into the BLR_RVMARKER pseudo, which eventually gets expanded into the sequence mentioned above. The sequence is then marked as instruction bundle, to avoid anything being moved in between. @ahatanak is working on using this attribute in the front- & middle-end. Together with the front- & middle-end changes, this should address PR31925 for AArch64. Reviewed By: t.p.northover Differential Revision: https://reviews.llvm.org/D92569 -
Scott Linder authored
Add a "see also" link from the condensed doxygen description of `SmallVector` to the more complete description in the ProgrammersManual.
-
Louis Dionne authored
-
Siva Chandra Reddy authored
A new function to MPFRWrapper has been added, which is used to set up the unit tests. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D93007
-
Fangrui Song authored
ExceptionHandling:: is a bit misleading - we actually use the term for both exceptions and non-exception .eh_frame usage.
-
Louis Dionne authored
-
LLVM GN Syncbot authored
-
Craig Topper authored
Add simple pass for removing redundant vsetvli instructions within a basic block. This handles the case where the AVL register and VTYPE immediate are the same and no other instructions that change VTYPE or VL are between them. There are going to be more opportunities for improvement in this space as we development more complex tests. Differential Revision: https://reviews.llvm.org/D92679
-
Zinovy Nis authored
Inspired by discussion in https://reviews.llvm.org/D91037 Differential Revision: https://reviews.llvm.org/D91495
-
Michael Kruse authored
Test execution can continue even if previous cases failed.
-
Nikita Popov authored
If we have two unknown sizes and one GEP operand and one non-GEP operand, then we currently simply return MayAlias. The comment says we can't do anything useful ... but we can! We can still check that the underlying objects are different (and do so for the GEP-GEP case). To reduce the compile-time impact, this a) checks this early, before doing the relatively expensive GEP decomposition that will not be used and b) doesn't do the check if the other operand is a phi or select. In that case, the phi/select will already recurse, so this would just do two slightly different recursive walks that arrive at the same roots. Compile-time is still a bit of a mixed bag: https://llvm-compile-time-tracker.com/compare.php?from=624af932a808b363a888139beca49f57313d9a3b&to=845356e14adbe651a553ed11318ddb5e79a24bcd&stat=instructions On average this is a small improvement, but sqlite with ThinLTO has a 0.5% regression (lencod has a 1% improvement). The BasicAA test case checks this by using two memsets with unknown size. However, the more interesting case where this is useful is the LoopVectorize test case, as analysis of accesses in loops tends to always us unknown sizes. Differential Revision: https://reviews.llvm.org/D92401
-
Hiroshi Yamauchi authored
Addressing clang bootstrap under the dynamic linking mode running out of static allocation of value profile nodes, reported in D81682. Differential Revision: https://reviews.llvm.org/D92669
-
Michael Kruse authored
Extract some changes not directly related to tileLoops out of D92974: * Refactor `createLoopSkeleton` out of `createCanonicalLoop`. * Introduce `ComputeIP` parameter to the `createCanonicalLoop` overload inserts instructions to compute the trip count. Specifying the location is necessary to make these instructions appear before the outermost loop of a loop nest that is tiled. * Introduce `Name` parameter to `createCanonicalLoop`. This can help better understanding the origin of values of basic blocks with many loops. The default value is "loop" instead of "for" which could be confused with the "for directive" (aka worksharing-loop) and does not apply to Fortran. * Remove `CanonicalLoopInfo::eraseFromParent` which is currently unused and untested and was added in anticipation to be used by `tileLoops`. `eraseFromParent` has shown to be insufficient when more than a single loop is involved and is replaced by `removeUnusedBlocksFromParent` in D92974. Reviewed By: SouraVX Differential Revision: https://reviews.llvm.org/D93088
-
Louis Dionne authored
TARGET_SONAME_FILE isn't valid on Windows, and TARGET_FILE should achieve the same results. Differential Revision: https://reviews.llvm.org/D92856
-
Louis Dionne authored
This simplifies the implementation, and it appears to be equivalent since make_shared was allocating memory with std::allocator anyway. Differential Revision: https://reviews.llvm.org/D93071
-