- Nov 03, 2020
-
-
Duncan P. N. Exon Smith authored
Attempt to fix build error on bots not seen locally.
-
Sean Silva authored
BufferPlacement is no longer part of bufferization. However, this test is an important test of "finalizing" bufferize passes. A "finalizing" bufferize conversion is one that performs a "full" conversion and expects all tensors to be gone from the program. This in particular involves rewriting funcs (including block arguments of the contained region), calls, and returns. The unique property of finalizing bufferization passes is that they cannot be done via a local transformation with suitable materializations to ensure composability (as other bufferization passes do). For example, if a call is rewritten, the callee needs to be rewritten otherwise the IR will end up invalid. Thus, finalizing bufferization passes require an atomic change to the entire program (e.g. the whole module). This new designation makes it clear also that it shouldn't be testing bufferization of linalg ops, so the tests have been updated to not use linalg.generic ops. (linalg.copy is still used as the "copy" op for copying into out-params) Differential Revision: https://reviews.llvm.org/D89979
-
Sean Silva authored
This is the most basic possible finalizing bufferization pass, which I also think is sufficient for most new use cases. The more concentrated nature of this pass also greatly clarifies the invariants that it requires on its input to safely transform the program (see the pass description in Passes.td). With this pass, I have now upstreamed practically all of the bufferizations from npcomp (the exception being std.constant, which can be upstreamed when std.global_memref lands: https://llvm.discourse.group/t/rfc-global-variables-in-mlir/2076/16 ) Differential Revision: https://reviews.llvm.org/D90205
-
Fangrui Song authored
A SMLoc allows MCStreamer to report location-aware diagnostics, which were previously done by adding SMLoc to various methods (e.g. emit*) in an ad-hoc way. Since the file:line is most important, the column is less important and the start token location suffices in many cases, this patch reverts b7e7131a ``` // old symbol-binding-changed.s:6:8: error: local changed binding to STB_GLOBAL .globl local ^ // new symbol-binding-changed.s:6:1: error: local changed binding to STB_GLOBAL .globl local ^ ``` Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D90511
-
Sam McCall authored
The index server has access to potentially-sensitive information, e.g. a sequence of fuzzyFind requests reveals details about code completions in the editor which in turn reveals details about the code being edited. This information is necessary to provide the service, and our intention[1] is it should never be retained beyond the scope of the request (e.g. not logged). At the same time, some log messages should be exposed: - server startup/index reloads etc that don't pertain to a user request - basic request logs (method, latency, #results, error code) for monitoring - errors while handling requests, without request-specific data The -log=public design accommodates these by allowing three types of logs: - those not associated with any user RPC request (via context-propagation) - those explicitly tagged as [public] in the log line - logging of format strings only, with no interpolated data (error level only) [1] Specifically: Google is likely to run public instances of this server for LLVM and potentially other projects, they will run in this configuration. The details agreed in a Google-internal privacy review. As clangd developers, we'd encourage others to use this configuration for public instances too. Differential Revision: https://reviews.llvm.org/D90526
-
Stephen Kelly authored
Summary: IgnoreUnlessSpelledInSource mode should ignore these because they are not written in the source. This matters for example when trying to replace types or values which are templated. The new test in TransformerTest.cpp in this commit demonstrates the problem. In existing matcher code, users can write `unless(isInTemplateInstantiation())` or `unless(isInstantiated())` (the user must know which to use). The point of the TK_IgnoreUnlessSpelledInSource mode is to allow the novice to avoid such details. This patch changes the IgnoreUnlessSpelledInSource mode to skip over implicit template instantiations. This patch does not change the TK_AsIs mode. Note: An obvious attempt at an alternative implementation would simply change the shouldVisitTemplateInstantiations() in ASTMatchFinder.cpp to return something conditional on the operational TraversalKind. That does not work because shouldVisitTemplateInstantiations() is called before a possible top-level traverse() matcher changes the operational TraversalKind. Reviewers: sammccall, aaron.ballman, gribozavr2, ymandel, klimek Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80961
-
Stephen Kelly authored
Make it possible to use argumentCountIs and hasArgument with CXXUnresolvedConstructExpr. Differential Revision: https://reviews.llvm.org/D90553
-
Mircea Trofin authored
Differential Revision: https://reviews.llvm.org/D90621
-
Duncan P. N. Exon Smith authored
Change `Module::ASTFile` and `ModuleFile::File` to use `Optional<FileEntryRef>` instead of `const FileEntry *`. One of many steps toward removing `FileEntry::getName`. Differential Revision: https://reviews.llvm.org/D89836
-
Sam McCall authored
- pass required=False to use_clang(), as we don't need it - fix required=False (which was unused and rotted): - make derived substitutions conditional on it - add a feature so we can disable tests that need it - conditionally disable our one test that depends on %resource_dir. This doesn't seem right from first principles, but isn't a big deal. Differential Revision: https://reviews.llvm.org/D90528
-
Krzysztof Parzyszek authored
It's useful outside of Hexagon TTI, and with how TTI is implemented, it is not accessible outside of TTI.
-
Mircea Trofin authored
Differential Revision: https://reviews.llvm.org/D90506
-
Stanislav Mekhanoshin authored
We were useing too broad check for isFLATScratch() which also includes FLAT global. Differential Revision: https://reviews.llvm.org/D90505
-
Ettore Tiotto authored
This patch enhances computeOutliningColdRegionsInfo() to allow it to consider regions containing a single basic block and a single predecessor as candidate for partial inlining. Reviewed By: fhann Differential Revision: https://reviews.llvm.org/D89911
-
Mehdi Amini authored
Leaking macros isn't a good practice when defining headers. This requires to duplicate the macro definition in every header though, but that seems like a better tradeoff right now. Differential Revision: https://reviews.llvm.org/D90633
-
Christopher Di Bella authored
Checks to make sure that stdlib's (std::)free is being appropriately used for member variables. Differential Revision: https://reviews.llvm.org/D90269
-
peter klausler authored
When the bounds of an implied DO loop in an array constructor are constant, the index variable of that loop is considered a constant expression and can be used as such in the items in the value list of the implied DO loop. Since the KIND type parameter values of items in the value list can depend on the various values taken by such an index, it is not possible to represent those values with a single typed expression. So implement such loops by taking multiple passes over the parse tree of the implied DO loop instead. Differential revision: https://reviews.llvm.org/D90494
-
Thomas Raoux authored
Differential Revision: https://reviews.llvm.org/D90183
-
Stella Laurenzo authored
Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D90583
-
Peter Penzin authored
Match MSVC linker output - align all debug directories on four bytes, while removing debug directory alignment. This would have the same effect on CETCOMPAT support as D89919. Chromium bug: https://crbug.com/1136664 Differential Revision: https://reviews.llvm.org/D89921
-
LLVM GN Syncbot authored
-
Duncan P. N. Exon Smith authored
Running `-fsyntax-only` on UniqueID.h is 2x faster with this patch (which avoids calling `std::tie` for `operator<`). Since the transitive includers of this file will go up as `FileEntryRef` gets used in more places, avoid that compile-time hit. This is a follow-up to 23ed570a (suggested by Reid Kleckner). Also drop the `<tuple>` include from FileSystem.h (which was vestigal from before UniqueID.h was split out). Differential Revision: https://reviews.llvm.org/D90471
-
Alex Richardson authored
TokenAnnotator::splitPenalty() was always returning 0 for opening parens if AlignAfterOpenBracket was set to BAS_DontAlign, so the preferred point for line breaking was always after the open paren (and was ignoring PenaltyBreakBeforeFirstCallParameter). This change restricts the zero penalty to the AllowAllArgumentsOnNextLine case. This results in improved formatting for FreeBSD where we set AllowAllArgumentsOnNextLine: false and a high value for PenaltyBreakBeforeFirstCallParameter to avoid breaking after the open paren. Before: ``` functionCall( paramA, paramB, paramC); void functionDecl( int A, int B, int C) ``` After: ``` functionCall(paramA, paramB, paramC); void functionDecl(int A, int B, int C) ``` Reviewed By: MyDeveloperDay Differential Revision: https://reviews.llvm.org/D90246 -
Alex Richardson authored
I recently modified this pass to better support CHERI-RISC-V and while doing so I noticed that this pass was calling M->getOrInsertFunction() with the result of TLI->getLibcallName(RTLibType). However, AMDGPU fills the libcalls array with nullptr, so this creates an anonymous function instead. This patch changes expandAtomicOpToLibcall to return false in case the libcall does not exist and changes the assert() in the callees to a report_fatal_error() instead. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D88800
-
Aaron Ballman authored
The nomerge attribute is a statement attribute not a function attribute.
-
David Green authored
-
Ben Dunbobbin authored
This reverts commit 415f7ee8. The added tests were failing on the build bots!
-
Craig Topper authored
The SHL and SRL could be in opposite order so account for that. Differential Revision: https://reviews.llvm.org/D90586
-
Simon Pilgrim authored
Based off existing rotate test coverage
-
Simon Pilgrim authored
-
Louis Dionne authored
This makes us closer to running the test suite on platforms where the legacy test suite configuration doesn't work. One notable change after this commit is that the tests will be run with warnings enabled on GCC too, which wasn't the case before. However, previous commits should have tweaked the test suite to make sure it passes with warnings enabled on GCC. Note that warnings can still be disabled with `--param enable_warnings=False`, as before. Differential Revision: https://reviews.llvm.org/D90432
-
peter klausler authored
Differential revision: https://reviews.llvm.org/D90500
-
Paul C. Anagnostopoulos authored
Update the documentation to fully describe it. Differential Revision: https://reviews.llvm.org/D90617
-
Sanjay Patel authored
As noticed in D90554 , the AVX2 costs for 256-bit vectors did not include FMAXNUM entries, so we fell back to AVX1 which assumes those ops will be split into 128-bit halves or something close to that. Differential Revision: https://reviews.llvm.org/D90613
-
Sanjay Patel authored
PR47997
-
Craig Topper authored
The code is looking for (sext_inreg (or (shl X, C2), (shr (and Y, C3), C1))). We need to ensure X and Y are the same. Differential Revision: https://reviews.llvm.org/D90580
-
Simon Pilgrim authored
[AggressiveInstCombine] foldGuardedRotateToFunnelShift - generalize rotation to funnel shift matcher. Replace matchRotate with a more general matchFunnelShift - at the moment this is still just used for rotation patterns.
-
Ben Dunbobbin authored
For PlayStation we offer source code compatibility with Microsoft's dllimport/export annotations; however, our file format is based on ELF. To support this we translate from DLL storage class to ELF visibility at the end of codegen in Clang. Other toolchains have used similar strategies (e.g. see the documentation for this ARM toolchain: https://developer.arm.com/documentation/dui0530/i/migrating-from-rvct-v3-1-to-rvct-v4-0/changes-to-symbol-visibility-between-rvct-v3-1-and-rvct-v4-0) This patch adds the ability to perform this translation. Options are provided to support customizing the mapping behaviour. Differential Revision: https://reviews.llvm.org/D89970
-
Teresa Johnson authored
Add intended and missing prefix check.
-
Shoaib Meenai authored
The vendor will be prefixed to the "clangd" and can be an arbitrary string, so account for it in the test. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D90517
-