- Nov 18, 2020
-
-
Simon Pilgrim authored
We typically use X32 for gnux32 triples
-
Simon Pilgrim authored
We typically use X32 for gnux32 triples
-
Alexey Bataev authored
If the variable is implicitly firstprivatized in the inner task-based region, it also must be firstprivatized in outer task-based regions. Previously firstprivates were captured in tasks but later it was optimized to reduce the memory usage. But still need to mark such variables as implicit firstprivate in outer tasks. Differential Revision: https://reviews.llvm.org/D91627
-
Louis Dionne authored
Erroring out prevents the library from working with other file formats (e.g. in embedded). Since that error does not guard us from doing something incorrect, it seems fine to just remove it.
-
Stephen Kelly authored
It is apparently not possible to have two rewrites in one gtest function because atomic changes in the test harness accumulate.
-
Louis Dionne authored
This allows building on platforms that don't provide that header.
-
Joe Ellis authored
These were previously missing from the SVE lax conversions tests introduced in this commit: 23a96b84 (https://reviews.llvm.org/D91067) Differential Revision: https://reviews.llvm.org/D91642 -
Simon Pilgrim authored
Only use X32 for the gnux32 triples in the tests
-
Simon Pilgrim authored
We typically use X32 for gnux32 triples
-
Simon Pilgrim authored
Fixes a number of Wshadow warnings.
-
Nico Weber authored
This adds `--[no-]color-diagnostics[=auto,never,always]` to the MachO port and harmonizes the flag in the other ports: - Consistently use MetaVarName - Consistently document the non-eq version as alias of the eq version - Use B<> in the ports that have it (no-op, shorter) - Fix oversight in COFF port that made the --no flag have the wrong prefix Differential Revision: https://reviews.llvm.org/D91640
-
Christian Sigg authored
std.alloc only supports memrefs with identity layout, which means we can simplify the lowering to LLVM and compute strides only from (static and dynamic) sizes. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D91549
-
Stephen Kelly authored
-
Simon Pilgrim authored
m_SpecificInt has the same 'no undef element' behaviour as m_APInt so no change there, and anyway we have test coverage for undef elements in the fold. Noticed while fixing a Wshadow warning about shadow Value *X, *Y variables.
-
Simon Pilgrim authored
We typically use X32 for gnux32 triples
-
Simon Pilgrim authored
We typically use X32 for gnux32 triples
-
Wei Wang authored
Constant hoisting may hide the constant value behind bitcast for And's operand. Track down the constant to make the BFI result consistent regardless of hoisting. Differential Revision: https://reviews.llvm.org/D91450
-
Alessandro Arzilli authored
Adds a command line option that makes debugserver propagate the SIGSEGV signal to the target process. Motivation: I'm one of the maintainers of Delve [1] a debugger for Go. We use debugserver as our backend on macOS and one of the most often reported bugs is that, on macOS, we don't propagate SIGSEGV back to the target process [2]. Sometimes some programs will actually cause a SIGSEGV, by design, and then handle it. Those programs can not be debugged at all. Since catching signals isn't very important for a Go debugger I'd much rather have a command line option in debugserver that causes it to let SIGSEGV go directly to the target process. [1] https://github.com/go-delve/delve/ [2] https://github.com/go-delve/delve/issues/852 Differential revision: https://reviews.llvm.org/D89315
-
Rahul Joshi authored
Differential Revision: https://reviews.llvm.org/D91557
-
Sanjay Patel authored
https://rise4fun.com/Alive/V6fP Name: add with low mask Pre: (C1 & (-1 u>> countLeadingZeros(C2))) == 0 %a = add i8 %x, C1 %r = and i8 %a, C2 => %r = and i8 %x, C2
-
Sanjay Patel authored
-
Sanjay Patel authored
There are 2 changes: 1. Remove the unnecessary one-use check. 2. Remove the unnecessary power-of-2 check. https://rise4fun.com/Alive/V6fP Name: add with low mask Pre: (C1 & (-1 u>> countLeadingZeros(C2))) == 0 %a = add i8 %x, C1 %r = and i8 %a, C2 => %r = and i8 %x, C2
-
Sanjay Patel authored
-
ergawy authored
This commit does the renaming mentioned in the title in order to bring `spv` dialect closer to the MLIR naming conventions. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D91609
-
Fangrui Song authored
[ELF] --gc-sections: collect unused .gcc_except_table in section groups and associated text sections `try ... catch` in an inline function produces `.gcc_except_table.*` in a COMDAT group with GCC or newer Clang (since D83655). For --gc-sections, currently we scan `.eh_frame` pieces and mark liveness of such a `.gcc_except_table.*` and then the associated `.text.*` (if a member in a section group is retained, the others should be retained as well). Essentially all `.text.*` and `.gcc_except_table.*` compiled from inline functions with `try ... catch` cannot be discarded by the imprecise --gc-sections. Compared with the state before D83655, the output `.gcc_except_table` is smaller (non-prevailing copies in COMDAT groups can now be discarded) but `.text` may be larger, i.e. size regression. This patch teaches the .eh_frame piece scanning code to not mark `.gcc_except_table` in a section group, thus allow unused `.text.*` and `.gcc_except_table.*` in a section group to be discarded. Note, non-group `.gcc_except_table` can still not be discarded. That is the status quo. Reviewed By: grimar, echristo Differential Revision: https://reviews.llvm.org/D91579
-
Fangrui Song authored
-
Nikita Popov authored
aliasGEP() currently implements some special handling for the case where all variable offsets are positive, in which case the constant offset can be taken as the minimal offset. However, it does not perform the same handling for the all-negative case. This means that the alias-analysis result between two GEPs is asymmetric: If GEP1 - GEP2 is all-positive, then GEP2 - GEP1 is all-negative, and the first will result in NoAlias, while the second will result in MayAlias. Apart from producing sub-optimal results for one order, this also violates our caching assumption. In particular, if BatchAA is used, the cached result depends on the order of the GEPs in the first query. This results in an inconsistency in BatchAA and AA results, which is how I noticed this issue in the first place. Differential Revision: https://reviews.llvm.org/D91383
-
Alex Zinenko authored
This utility function is helpful for dialect-specific builders that need to access the context through location, and the location itself may be either provided as an argument or expected to be recovered from the implicit location stack. Reviewed By: stellaraccident Differential Revision: https://reviews.llvm.org/D91623
-
Stephen Kelly authored
Don't match Stmt or Decl nodes not spelled in the source when using TK_IgnoreUnlessSpelledInSource. This prevents accidental modification of source code at incorrect locations. Differential Revision: https://reviews.llvm.org/D90984
-
Stephen Kelly authored
Update the ASTNodeTraverser to dump only nodes spelled in source. There are only a few which need to be handled, but Decl nodes for which isImplicit() is true are handled together. Update the RAV instances used in ASTMatchFinder to ignore the nodes too. As with handling of template instantiations, it is necessary to allow the RAV to process the implicit nodes because they need to be visitable before the first traverse() matcher is encountered. An exception to this is in the MatchChildASTVisitor, because we sometimes wish to make a node matchable but make its children not-matchable. This is the case for defaulted CXXMethodDecls for example. Extend TransformerTests to illustrate the kinds of problems that can arise when performing source code rewriting due to matching implicit nodes. This change accounts for handling nodes not spelled in source when using direct matching of nodes, and when using the has() and hasDescendant() matchers. Other matchers such as cxxRecordDecl(hasMethod(cxxMethodDecl())) still succeed for compiler-generated methods for example after this change. Updating the implementations of hasMethod() and other matchers is for a follow-up patch. Differential Revision: https://reviews.llvm.org/D90982
-
Stephen Kelly authored
-
Stephen Kelly authored
A follow-up commit will use this method to ignore implcit AST nodes.
-
Stephen Kelly authored
For now, there is a traversal mode which ignores implicit casts and parenthesis. Invert the check in order to not obviously break that.
-
Simon Pilgrim authored
Simplify the SplatBits 2-byte -> 4-byte 'splat'.
-
Christian Sigg authored
Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D91594
-
Florian Hahn authored
This patch introduces a new VPDef class, which can be used to manage VPValues defined by recipes/VPInstructions. The idea here is to mirror VPUser for values defined by a recipe. A VPDef can produce either zero (e.g. a store recipe), one (most recipes) or multiple (VPInterleaveRecipe) result VPValues. To traverse the def-use chain from a VPDef to its users, one has to traverse the users of all values defined by a VPDef. VPValues now contain a pointer to their corresponding VPDef, if one exists. To traverse the def-use chain upwards from a VPValue, we first need to check if the VPValue is defined by a VPDef. If it does not have a VPDef, this means we have a VPValue that is not directly defined iniside the plan and we are done. If we have a VPDef, it is defined inside the region by a recipe, which is a VPUser, and the upwards def-use chain traversal continues by traversing all its operands. Note that we need to add an additional field to to VPVAlue to link them to their defs. The space increase is going to be offset by being able to remove the SubclassID field in future patches. Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D90558
-
-
Simon Pilgrim authored
We typically use X32 for gnux32 triples
-
Simon Pilgrim authored
We typically use X32 for gnux32 triples
-
Peyton, Jonathan L authored
-