- Nov 03, 2020
-
-
Benjamin Kramer authored
Looks like we have a blind spot in the testing matrix. AsyncRegionRewriter.cpp: In member function ‘virtual void {anonymous}::GpuAsyncRegionPass::runOnFunction()’: AsyncRegionRewriter.cpp:113:16: internal compiler error: in replace_placeholders_r, at cp/tree.c:2804 if (getFunction() ~~~~~~~~~~~~~ .getRegion() ~~~~~~~~~~~~ .walk(Callback{OpBuilder{&getContext()}}) ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -
Rahul Joshi authored
- Add standard dialect operations to define global variables with memref types and to retrieve the memref for to a named global variable - Extend unit tests to test verification for these operations. Differential Revision: https://reviews.llvm.org/D90337
-
peter klausler authored
Ensure that character length is properly calculated for actual arguments to intrinsics, and that source provenance information is available when expression analysis calls folding in cases where the length is invalid. Differential revision: https://reviews.llvm.org/D90636
-
Tony authored
Separate the AMDGPU memory model description into separate sections for each architecture. Differential Revision: https://reviews.llvm.org/D90548
-
Nikita Popov authored
-
Fangrui Song authored
``` // The legacy PM CGPassManager discovers SCCs this way: for function in the source order tarjanSCC(function) // While the new PM CGSCCPassManager does: for function in the reversed source order [1] discover a reference graph SCC build call graph SCCs inside the reference graph SCC ``` In the common cases, reference graph ~= call graph, the new PM order is undesired because for `a | b | c` (3 independent functions), the new PM will process them in the reversed order: c, b, a. If `a <-> b <-> c`, we can see that `-print-after-all` will report the sole SCC as `scc: (c, b, a)`. This patch corrects the iteration order. The discovered SCC order will match the legacy PM in the common cases. For some tests (`Transforms/Inline/cgscc-*.ll` and `unittests/Analysis/CGSCCPassManagerTest.cpp`), the behaviors are dependent on the SCC discovery order and there are too many check lines for the particular order. This patch simply reverses the function order to avoid changing too many check lines. Differential Revision: https://reviews.llvm.org/D90566
-
Atmn Patel authored
This has already been done by @rjmccall in D76526 (49e5a97e), and 9514c048. We should remove this from the docs. Differential Revision: https://reviews.llvm.org/D90550
-
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
-