- Jan 08, 2020
-
-
Matt Arsenault authored
This was only applying the deeper nested zext pattern, and missing the special case code size fold.
-
Mitchell Balan authored
[clang-tidy] modernize-use-using uses AST and now supports struct defintions and multiple types in a typedef Summary: It now handles `typedef`s that include comma-separated multiple types, and handles embedded struct definitions, which previously could not be automatically converted. For example, with this patch `modernize-use-using` now can convert: typedef struct { int a; } R_t, *R_p; to: using R_t = struct { int a; }; using R_p = R_t*; `-ast-dump` showed that the `CXXRecordDecl` definitions and multiple `TypedefDecl`s come consecutively in the tree, so `check()` stores information between calls to determine when it is receiving a second or additional `TypedefDecl` within a single `typedef`, or when the current `TypedefDecl` refers to an embedded `CXXRecordDecl` like a `struct`. Reviewers: alexfh, aaron.ballman Patch by: poelmanc Subscribers: riccibruno, sammccall, cfe-commits, aaron.ballman Tags: clang-tools-extra, clang Differential Revision: https://reviews.llvm.org/D70270 -
Eric Fiselier authored
This change adds the following benchmarks: - StringAssignStr Assign a const basic::string& value - StringAssignAsciiz Assign a const char* asciiz value StringAssignAsciizMix Assign mixed long/short const char* asciiz values - StringResizeDefaultInit Resize default init benchmark Patch by Martijn Vels (mvels@google.com) Reviewed as D72343
-
Craig Topper authored
Now that we generate decent code for (v2i64 (setlt zero, X)) on pre-sse4.2 targets I think we can use this now. Differential Revision: https://reviews.llvm.org/D72354
-
Jonas Devlieghere authored
On a dirty build directory the new mkdir fails because the file already exists and is not a directory.
-
Jonas Devlieghere authored
This test was passing even when the output of lldb.target was empty. I've made the test more strict by checking explicitly for the target name and by using CHECK-NEXT lines.
-
Daniel Sanders authored
-
Bill Wendling authored
-
Sanjay Patel authored
-
Jonas Devlieghere authored
This reverts commit 640d0ba8.
-
Christopher Tetreault authored
Configure CMake to setup source-groups for Polly. Source groups describe how source files should be organized in IDEs. By default, all headers are dumped into one folder under PollyCore and all source files into another. On disk, these files are organized into folders, but this isn't reflected in the IDE. This change uses CMake source groups to have the IDE reflect the on disk layout. This will make it easier to visualize the project structure for users of Visual Studio and XCode Patch by Christopher Tetreault <ctetreau@quicinc.com> Reviewed By: Meinersbur, grosser Differential Revision: https://reviews.llvm.org/D72117
-
Matt Arsenault authored
The optimization to turn an add into a sub isn't triggering when the pattern to use the zeroed high bits is used.
-
Matt Arsenault authored
Now that overridable default operands work, there's no reason to use complex patterns to just produce 0s.
-
Matt Arsenault authored
-
Matt Arsenault authored
-
Matt Arsenault authored
We weren't treating i16->f16 casts as legal on targets with these instructions, and always using a pair of casts through i32.
-
Jonas Devlieghere authored
Extend the SBTarget class with a string conversion operator and reuse the same code between Python and Lua. This should happen for all the SB classes, but I'm doing just this one as an example and for use in a test case.
-
Michael Kruse authored
https://reviews.llvm.org/D61446 introduced a new function to process pass plugins that used CMAKE_BINARY_DIR. This is problematic when LLVM is a subproject. Instead use LLVM_BINARY_DIR to get the right relative directory for cmake. Patch by Alan Baker <alanbaker@google.com> Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D72109
-
Fangrui Song authored
Summary: Every powerpc64le platform uses elfv2. For powerpc64, the environments "elfv1" and "elfv2" were added for FreeBSD ELFv1->ELFv2 migration in D61950. FreeBSD developers have decided to use OS versions to select ABI, and no one is relying on the environments. Also use elfv2 on powerpc64-linux-musl. Users can always use -mabi=elfv1 and -mabi=elfv2 to override the default ABI. Reviewed By: adalava Differential Revision: https://reviews.llvm.org/D72352
-
Fangrui Song authored
-
Alexey Bataev authored
Use canonical decls instead of mangled names in the set of already emitted decls. This allows to reduce the number of function calls for getting declarations mangled names and speedup the compilation.
-
Jessica Paquette authored
Conservatively always save + restore LR in noreturn functions. These functions do not end in a RET, and so they aren't guaranteed to have an instruction which uses LR in any way. So, as a result, you can end up in unfortunate situations where you can't backtrace out of these functions in a debugger. Remove the old noreturn test, and add a new one which is more descriptive. Remove the restriction that we can't outline from noreturn functions as well since we now do the right thing.
-
Craig Topper authored
[X86] Improve lowering of (v2i64 (setgt X, -1)) on pre-SSE2 targets. Enable v2i64 in foldVectorXorShiftIntoCmp. Similar to D72302 but for the canonical form for the opposite case. I've changed foldVectorXorShiftIntoCmp to form a target independent setcc node instead of PCMPGT now and enabled its for v2i64 on pre-SSE4.2 targets. The setcc should eventually get lowered to PCMPGT or the new v2i64 sequence. Differential Revision: https://reviews.llvm.org/D72318
-
Craig Topper authored
Without sse4.2 a v2i64 setlt needs to expand into a pcmpgtd, pcmpeqd, 3 shuffles, and 2 logic ops. But if we're only interested in the sign bit of the i64 elements, we can just use one pcmpgtd and shuffle the odd elements to the even elements. Differential Revision: https://reviews.llvm.org/D72302
-
LLVM GN Syncbot authored
-
Daniel Sanders authored
Summary: GIMatchTree's job is to build a decision tree by zipping all the GIMatchDag's together. Each DAG is added to the tree builder as a leaf and partitioners are used to subdivide each node until there are no more partitioners to apply. At this point, the code generator is responsible for testing any untested predicates and following any unvisited traversals (there shouldn't be any of the latter as the getVRegDef partitioner handles them all). Note that the leaves don't always fit into partitions cleanly and the partitions may overlap as a result. This is resolved by cloning the leaf into every partition it belongs to. One example of this is a rule that can match one of N opcodes. The leaf for this rule would end up in N partitions when processed by the opcode partitioner. A similar example is the getVRegDef partitioner where having rules (add $a, $b), and (add ($a, $b), $c) will result in the former being in the partition for successfully following the vreg-def and failing to do so as it doesn't care which happens. Depends on D69151 Fixed the issues with the windows bots which were caused by stdout/stderr interleaving. Reviewers: bogner, volkan Reviewed By: volkan Subscribers: lkail, mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69152
-
Alexandre Ganea authored
Fixes warning: loop variable 'E' of type 'const llvm::StringRef' creates a copy from type 'const llvm::StringRef' [-Wrange-loop-analysis]
-
Alexey Bataev authored
If standalone OpenMP declaration pragma, like declare mapper or declare reduction, is declared in the class context, it may reference a member (data or function) in its internal expressions/statements. So, the parsing of such pragmas must be dalayed just like the parsing of the member initializers/definitions before the completion of the class declaration.
-
Nathan Ridge authored
Summary: Fixes https://github.com/clangd/clangd/issues/227 Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D71644
-
Nathan Ridge authored
Summary: Also fix some bugs in the testcases which this exposed. Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D72066
-
Pavel Labath authored
This got flagged by msan.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Gabor Horvath authored
Differential Revision: https://reviews.llvm.org/D72289
-
Gabor Horvath authored
It turns out it is useful to be able to define the deref type as void. In case we have a type erased owner, we want to express that the pointee can be basically any type. It should not be unnatural to have a void deref type as we already familiar with "pointers to void". Differential Revision: https://reviews.llvm.org/D72097
-
diggerlin authored
SUMMARY: In this patch, we map mergeable const objects to the read-only section in the same manner as const objects that are not mergeable. Reviewers: hubert.reinterpretcast,jasonliu Subscribers: wuzish, nemanjai, hiraditya Differential Revision: https://reviews.llvm.org/D71551
-
Yaxun (Sam) Liu authored
Add this option to change the default launch bounds. Differential Revision: https://reviews.llvm.org/D71221
-
Sjoerd Meijer authored
-
Matt Arsenault authored
The imm folding optimization pattern failed to import. The instruction pattern was already working, but failing to fail on SGPR inputs.
-
- Jan 07, 2020
-
-
Med Ismail Bennani authored
Signed-off-by:Med Ismail Bennani <medismail.bennani@gmail.com>
-