- Mar 27, 2020
-
-
Louis Dionne authored
lit is not very clever when it performs substitution on RUN lines. It simply looks for a match anywhere in the line (without tokenization) and replaces it by the expansion. This means that a RUN line containing e.g. `-verify-ignore-unexpected=note` wouod be expanded to `-verify-ignore-unexpected=<substitution for not>e`, which is surprising and nonsensical. It also means that something like `%compile_module` could be expanded to `<substitution-for-%compile>_module` or to the correct substitution, depending on the order in which substitutions are evaluated by lit. To avoid such problems, it is a good habit to delimit custom substitutions with some token. This commit does that for all substitutions used in the libc++ and libc++abi test suites.
-
Yannic Bonenberger authored
-
Alexandre Ganea authored
Before this patch, it wasn't possible to extend the ThinLTO threads to all SMT/CMT threads in the system. Only one thread per core was allowed, instructed by usage of llvm::heavyweight_hardware_concurrency() in the ThinLTO code. Any number passed to the LLD flag /opt:lldltojobs=..., or any other ThinLTO-specific flag, was previously interpreted in the context of llvm::heavyweight_hardware_concurrency(), which means SMT disabled. One can now say in LLD: /opt:lldltojobs=0 -- Use one std::thread / hardware core in the system (no SMT). Default value if flag not specified. /opt:lldltojobs=N -- Limit usage to N threads, regardless of usage of heavyweight_hardware_concurrency(). /opt:lldltojobs=all -- Use all hardware threads in the system. Equivalent to /opt:lldltojobs=$(nproc) on Linux and /opt:lldltojobs=%NUMBER_OF_PROCESSORS% on Windows. When an affinity mask is set for the process, threads will be created only for the cores selected by the mask. When N > number-of-hardware-threads-in-the-system, the threads in the thread pool will be dispatched equally on all CPU sockets (tested only on Windows). When N <= number-of-hardware-threads-on-a-CPU-socket, the threads will remain on the CPU socket where the process started (only on Windows). Differential Revision: https://reviews.llvm.org/D75153
-
Louis Dionne authored
-
Marcel Koester authored
[mlir] Extended Dominance analysis with a function to find the nearest common dominator of two given blocks. The Dominance analysis currently misses a utility function to find the nearest common dominator of two given blocks. This is required for a huge variety of different control-flow analyses and transformations. This commit adds this function and moves the getNode function from DominanceInfo to DominanceInfoBase, as it also works for post dominators. Differential Revision: https://reviews.llvm.org/D75507
-
Sam Parker authored
Add a flag for those instructions which read from the top/bottom halves of their inputs and produce a vector of results with double width elements. Differential Revision: https://reviews.llvm.org/D76762
-
Kirstóf Umann authored
Some checkers may not only depend on language options but also analyzer options. To make this possible this patch changes the parameter of the shouldRegister* function to CheckerManager to be able to query the analyzer options when deciding whether the checker should be registered. Differential Revision: https://reviews.llvm.org/D75271
-
Louis Dionne authored
This minor refactoring allows reducing the amount of processing that is duplicated when we re-run a flaky test. It also has the nice side effect that libc++'s current test format supports flaky .sh.cpp tests, because those are built on top of _runShTest, not executeShTest.
-
Louis Dionne authored
This allows defining substitutions in terms of other substitutions. For example, a %build substitution could be defined in terms of a %cxx substitution as '%cxx %s -o %t.exe' and the script would be properly expanded. Differential Revision: https://reviews.llvm.org/D76178
-
Sjoerd Meijer authored
This untangles the logic in widenIntOrFpInduction in order to make more explicit and visible how exactly the induction variable is lowered. Differential Revision: https://reviews.llvm.org/D76686
-
Guillaume Chatelet authored
Summary: This was discovered while converting to Align 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/D76914
-
Kirstóf Umann authored
Exactly what it says on the tin! https://www.kernel.org/doc/htmldocs/kernel-api/API-kfree.html Differential Revision: https://reviews.llvm.org/D76917
-
Simon Pilgrim authored
Revert rGa3c715e9 "Twine - fix uninitialized variable warnings. NFCI." @dblaikie noticed that this may interfere with msan analysis
-
Simon Pilgrim authored
Revert rG6ff1ea32 "Fix "use of uninitialized variable" static analyzer warning. NFCI." @dblaikie noticed that this may interfere with msan analysis
-
Stephan Herhut authored
This change adds a new option to the StandardToLLVM lowering to configure the bitwidth of the index type independently of the target architecture's pointer size. Differential revision: https://reviews.llvm.org/D76353
-
Jonas Paulsson authored
-
David Green authored
This patterns seemed to be using the f32 instruction, not f16. Fix it to use the correct one. Differential Revision: https://reviews.llvm.org/D76841
-
Denis Khalikov authored
Summary: This patch adds support for 2D memref in mlir-vulkan-runner. Differential Revision: https://reviews.llvm.org/D76737
-
Georgii Rymar authored
We might have a crash scenario when we have an invalid DT_STRTAB value that is larger than the file size. I've added a test case to demonstrate. Differential revision: https://reviews.llvm.org/D76706
-
Alex Zinenko authored
Multiple operation conversions from the Standard dialect to the LLVM dialect are trivial one-to-one conversions that use only the pattern defined in base utility classes such as OneToOneConvertToLLVMPattern and VectorConvertToLLVMPattern. Use template aliases ("using" declarations) instead of creating derived classes without new functionality. -
Hans Wennborg authored
This fixes a regression from D69573 which broke the following example: $ echo 'operator C<T>*();' | bin/clang-format --style=Chromium operator C<T> *(); (There should be no space before the asterisk.) It seems the problem is in TokenAnnotator::spaceRequiredBetween(), which only looked at the token to the left of the * to see if it was a type or not. That code only handled simple types or identifiers, not templates or qualified types. This patch addresses that. Differential revision: https://reviews.llvm.org/D76850
-
Mikael Holmen authored
Summary: Unsigned types can alias the corresponding signed types. I don't see that this is explicitly mentioned in the Embedded-C specification, but I think it should work the same as for the integer types. Patch by: materi Reviewers: ebevhan, leonardchan Reviewed By: leonardchan Subscribers: kosarev, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D76856
-
Guillaume Chatelet authored
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 Reviewed By: courbet Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D76625
-
Fangrui Song authored
Follow-up of D72172 and llvmorg-11-init-6896-gb3cc5dce.
-
Johannes Doerfert authored
This is the second part loosely extracted from D71179 and cleaned up. This patch provides semantic analysis support for `omp begin/end declare variant`, mostly as defined in OpenMP technical report 8 (TR8) [0]. The sema handling makes code generation obsolete as we generate "the right" calls that can just be handled as usual. This handling also applies to the existing, albeit problematic, `omp declare variant support`. As a consequence a lot of unneeded code generation and complexity is removed. A major purpose of this patch is to provide proper `math.h`/`cmath` support for OpenMP target offloading. See PR42061, PR42798, PR42799. The current code was developed with this feature in mind, see [1]. The logic is as follows: If we have seen a `#pragma omp begin declare variant match(<SELECTOR>)` but not the corresponding `end declare variant`, and we find a function definition we will: 1) Create a function declaration for the definition we were about to generate. 2) Create a function definition but with a mangled name (according to `<SELECTOR>`). 3) Annotate the declaration with the `OMPDeclareVariantAttr`, the same one used already for `omp declare variant`, using and the mangled function definition as specialization for the context defined by `<SELECTOR>`. When a call is created we inspect it. If the target has an `OMPDeclareVariantAttr` attribute we try to specialize the call. To this end, all variants are checked, the best applicable one is picked and a new call to the specialization is created. The new call is used instead of the original one to the base function. To keep the AST printing and tooling possible we utilize the PseudoObjectExpr. The original call is the syntactic expression, the specialized call is the semantic expression. [0] https://www.openmp.org/wp-content/uploads/openmp-TR8.pdf [1] https://reviews.llvm.org/D61399#change-496lQkg0mhRN Reviewers: kiranchandramohan, ABataev, RaviNarayanaswamy, gtbercea, grokos, sdmitriev, JonChesterfield, hfinkel, fghanim, aaron.ballman Subscribers: bollu, guansong, openmp-commits, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75779 -
Johannes Doerfert authored
This is the first part extracted from D71179 and cleaned up. This patch provides parsing support for `omp begin/end declare variant`, as defined in OpenMP technical report 8 (TR8) [0]. A major purpose of this patch is to provide proper math.h/cmath support for OpenMP target offloading. See PR42061, PR42798, PR42799. The current code was developed with this feature in mind, see [1]. [0] https://www.openmp.org/wp-content/uploads/openmp-TR8.pdf [1] https://reviews.llvm.org/D61399#change-496lQkg0mhRN Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D74941
-
Johannes Doerfert authored
-
Johannes Doerfert authored
The same code was repeated multiple times, we put it in a function now.
-
Fangrui Song authored
Follow-up of D72172.
-
Shengchen Kan authored
Summary: There is a tiny logic error of D75300, making branch is not correctly aligned with option -x86-pad-max-prefix-size Reviewers: reames, MaskRay, craig.topper, LuoYuanke, jyknight Reviewed By: reames Subscribers: hiraditya, llvm-commits, annita.zhang Tags: #llvm Differential Revision: https://reviews.llvm.org/D76285
-
Kai Luo authored
-
Kai Luo authored
-
Uday Bondhugula authored
Drop unnecessary includes Differential Revision: https://reviews.llvm.org/D76898
-
Juneyoung Lee authored
Summary: This patch is the first effort to adding basic optimizations for FREEZE in SelDag. Reviewers: spatel, lebedev.ri Reviewed By: spatel Subscribers: xbolva00, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D76707
-
David Blaikie authored
-
David Blaikie authored
This can avoid all sorts of mistakes with implicit conversion (indirectly) to int, etc. I'm quite surprise there aren't any things to fixup with this - but I guess most uses of function_ref aren't optional/nullable.
-
Zakk Chen authored
this fixing also enable llc -mattr=+cpuhelp Reviewers: ziangwan, kongyi Reviewed By: kongyi Tags: #llvm Differential Revision: https://reviews.llvm.org/D76757
-
Kai Wang authored
Differential Revision: https://reviews.llvm.org/D76819
-
Leonard Chan authored
Fixes a build break with LLVM_ENABLE_BACKTRACES=OFF. Differential Revision: https://reviews.llvm.org/D76893
-
Cyndy Ishida authored
* applies only to tests
-