Commit
a24d46318f669b3882f6c87f58633098e2a157bf
by sguelton[NFC] Corrected a minor typo in a comment
|
 | llvm/lib/Target/ARM/README-Thumb.txt |
 | llvm/lib/Support/YAMLTraits.cpp |
Commit
99b03c1c18de3e4228e31ef04d38f2d530d335be
by sgueltonDetect and disable openmp tests that require multiple hardware processor to run
Team tests seem to require at least two physical cores, and using the same trick as in https://reviews.llvm.org/D55598 doesn't work (why?) . Using lit configuration instead.
Differential Revision: https://reviews.llvm.org/D74921
|
 | openmp/runtime/test/ompt/teams/parallel_team.c |
 | openmp/runtime/test/lit.cfg |
 | openmp/runtime/test/ompt/teams/serial_teams.c |
Commit
d799190851fdd94800428ba335f864ce5fd8135b
by spatel[ConstantFold] fold fsub -0.0, undef to undef rather than NaN
A question about this behavior came up on llvm-dev: http://lists.llvm.org/pipermail/llvm-dev/2020-February/139003.html ...and as part of backend improvements in D73978, but this is an IR change first because we already have fairly thorough tests in place here.
We decided not to implement a more general change that would have folded any FP binop with nearly arbitrary constant + undef operand to undef because that is not theoretically correct (even if it is practically correct).
Differential Revision: https://reviews.llvm.org/D74713
|
 | llvm/lib/IR/ConstantFold.cpp |
 | llvm/test/Analysis/ConstantFolding/fp-undef.ll |
Commit
b0761bbc7639d0901d623e1fbf53ccf6ce066b16
by evgueni.brevnov[DependenceAnalysis] Memory dependence analysis internal caching mechanism is broken in presence of TBAA (PR42733).
Summary: There is a flaw in memory dependence analysis caching mechanism when memory accesses with TBAA are involved. Assume we first analysed and cached results for access with TBAA. Later we request dependence for the same memory but without TBAA (or different TBAA). By design these two queries should share one entry in the internal cache which corresponds to a general access (without TBAA). Thus upon second request internal cached is cleared and we continue analysis for access as if there is no TBAA.
The problem is that even though internal cache is cleared the set of visited nodes is not. That means we won't traverse visited nodes again and populate internal cache with the corresponding dependence results. So we end up with internal cache in an incomplete state. Current implementation tries to signal that situation by resetting CacheInfo->Pair at line 1104. But that doesn't actually help since later code ignores this invalidation and relies on 'Cache->empty()' property to decide on cache completeness.
Reviewers: reames, hfinkel, chandlerc, fedor.sergeev, asbirlea, fhahn, john.brawn, Prazek, sunfish
Reviewed By: john.brawn
Subscribers: DaniilSuchkov, kosarev, jfb, dantrushin, hiraditya, bmahjour, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73032
|
 | llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h |
 | llvm/lib/Analysis/MemoryDependenceAnalysis.cpp |
 | llvm/test/Analysis/MemoryDependenceAnalysis/memdep_with_tbaa.ll |
Commit
c51b0bede82b9eeddce78151dfc257cf738bf367
by kparzysz[Hexagon] Introduce noop intrinsic to cast between vector predicate types
The (overloaded) intrinsic is llvm.hexagon.V6.pred.typecast[.128B]. The types of the operand and the return value are HVX boolean vector types. For each cast, there needs to be a corresponding intrinsic declared, with different suffixes appended to the name, e.g. ; cast <128 x i1> to <32 x i1> declare <32 x i1> @llvm.hexagon.V6.pred.typecast.128B.s1(<128 x i1>) ; cast <32 x i1> to <64 x i1> declare <64 x i1> @llvm.hexagon.V6.pred.typecast.128B.s2(<32 x i1>) etc.
|
 | llvm/lib/Target/Hexagon/HexagonISelLowering.cpp |
 | llvm/test/CodeGen/Hexagon/autohvx/vector-predicate-typecast.ll |
 | llvm/lib/Target/Hexagon/HexagonISelLowering.h |
 | llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp |
 | llvm/include/llvm/IR/IntrinsicsHexagon.td |
Commit
35b685270b410f6a1351c2a527021f22330c25b9
by antiagainst[mlir] Add a signedness semantics bit to IntegerType
Thus far IntegerType has been signless: a value of IntegerType does not have a sign intrinsically and it's up to the specific operation to decide how to interpret those bits. For example, std.addi does two's complement arithmetic, and std.divis/std.diviu treats the first bit as a sign.
This design choice was made some time ago when we did't have lots of dialects and dialects were more rigid. Today we have much more extensible infrastructure and different dialect may want different modelling over integer signedness. So while we can say we want signless integers in the standard dialect, we cannot dictate for others. Requiring each dialect to model the signedness semantics with another set of custom types is duplicating the functionality everywhere, considering the fundamental role integer types play.
This CL extends the IntegerType with a signedness semantics bit. This gives each dialect an option to opt in signedness semantics if that's what they want and helps code sharing. The parser is modified to recognize `si[1-9][0-9]*` and `ui[1-9][0-9]*` as signed and unsigned integer types, respectively, leaving the original `i[1-9][0-9]*` to continue to mean no indication over signedness semantics. All existing dialects are not affected (yet) as this is a feature to opt in.
More discussions can be found at:
https://groups.google.com/a/tensorflow.org/d/msg/mlir/XmkV8HOPWpo/7O4X0Nb_AQAJ
Differential Revision: https://reviews.llvm.org/D72533
|
 | mlir/lib/Dialect/Linalg/Transforms/Promotion.cpp |
 | mlir/test/lib/TestDialect/TestPatterns.cpp |
 | mlir/lib/Dialect/VectorOps/VectorOps.cpp |
 | mlir/include/mlir/IR/Builders.h |
 | mlir/lib/IR/StandardTypes.cpp |
 | mlir/lib/Parser/Lexer.cpp |
 | mlir/test/IR/parser.mlir |
 | mlir/include/mlir/IR/Types.h |
 | mlir/lib/Analysis/Utils.cpp |
 | mlir/lib/Dialect/SPIRV/Serialization/Deserializer.cpp |
 | mlir/test/IR/invalid.mlir |
 | mlir/docs/LangRef.md |
 | mlir/lib/Dialect/GPU/IR/GPUDialect.cpp |
 | mlir/lib/Parser/Token.cpp |
 | mlir/include/mlir/Dialect/FxpMathOps/FxpMathOps.td |
 | mlir/lib/Dialect/Linalg/Utils/Utils.cpp |
 | mlir/lib/IR/Operation.cpp |
 | mlir/include/mlir/IR/OpBase.td |
 | mlir/lib/IR/TypeDetail.h |
 | mlir/lib/Parser/Token.h |
 | mlir/test/lib/TestDialect/TestDialect.cpp |
 | mlir/lib/Dialect/FxpMathOps/Transforms/UniformKernelUtils.h |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td |
 | mlir/lib/IR/Attributes.cpp |
 | mlir/lib/IR/Builders.cpp |
 | mlir/lib/Dialect/SPIRV/TargetAndABI.cpp |
 | mlir/lib/IR/MLIRContext.cpp |
 | mlir/lib/Dialect/AffineOps/EDSC/Builders.cpp |
 | mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp |
 | mlir/include/mlir/IR/StandardTypes.h |
 | mlir/include/mlir/IR/OpDefinition.h |
 | mlir/include/mlir/Dialect/VectorOps/VectorOps.td |
 | mlir/lib/IR/AsmPrinter.cpp |
 | mlir/lib/Parser/Parser.cpp |
 | mlir/test/mlir-tblgen/predicate.td |
 | mlir/include/mlir/Dialect/GPU/GPUOps.td |
 | mlir/lib/Transforms/LoopFusion.cpp |
 | mlir/include/mlir/Dialect/QuantOps/QuantPredicates.td |
 | mlir/include/mlir/IR/Matchers.h |
 | mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp |
 | mlir/lib/Dialect/StandardOps/Ops.cpp |
 | mlir/include/mlir/IR/Operation.h |
 | mlir/lib/Dialect/SPIRV/SPIRVOps.cpp |
 | mlir/lib/Parser/TokenKinds.def |
 | mlir/test/mlir-tblgen/op-attribute.td |
 | mlir/include/mlir/IR/Attributes.h |
 | mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp |
 | mlir/include/mlir/Dialect/QuantOps/UniformSupport.h |
 | mlir/docs/Rationale.md |
 | mlir/include/mlir/Dialect/StandardOps/Ops.td |
Commit
86c52af05a64c4aa9d61984eeda8fb7849a4b0fa
by llvm-dev[TargetLowering] SimplifyDemandedBits - use getValidShiftAmountConstant helper.
Use the SelectionDAG::getValidShiftAmountConstant helper to get const/constsplat shift amounts, which allows us to drop the out of range shift amount early-out.
First step towards better non-uniform shift amount support in SimplifyDemandedBits.
|
 | llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp |
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
Commit
d33e96b68c6f6424dc81145b1301f4cd478e84a2
by llvm-dev[X86] Regenerate hi reg tests
|
 | llvm/test/CodeGen/X86/h-register-addressing-64.ll |
 | llvm/test/CodeGen/X86/h-register-addressing-32.ll |
Commit
b55c58a2d569f2d92333b05c1a7a00114d75e0a6
by pavel[Error/unittests] Add a FailedWithMessage gtest matcher
Summary: We already have a "Failed" matcher, which can be used to check any property of the Error object. However, most frequently one just wants to check the error message, and while this is possible with the "Failed" matcher, it is also very convoluted (Failed<ErrorInfoBase>(testing::Property(&ErrorInfoBase::message, "the message"))).
Now, one can just write: FailedWithMessage("the message"). I expect that most of the usages will remain this simple, but the argument of the matcher is not limited to simple strings -- the argument of the matcher can be any other matcher, so one can write more complicated assertions if needed (FailedWithMessage(ContainsRegex("foo|bar"))). If one wants to match multiple error messages, he can pass multiple arguments to the matcher.
If one wants to match the message list as a whole (perhaps to check the message count), I've also included a FailedWithMessageArray matcher, which takes a single matcher receiving a vector of error message strings.
Reviewers: sammccall, dblaikie, jhenderson
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D74898
|
 | llvm/include/llvm/Testing/Support/Error.h |
 | llvm/unittests/Support/ErrorTest.cpp |
Commit
4fdaac0e1eb8e75fe59de0bd01cf72329dacbdb4
by sd.fertile[PowerPC][NFC] Remove Darwin specific logic in frame finalization.
Remove some cumbersome Darwin specific logic for updating the frame offsets of the condition-register spill slots. The containing function has an early return if the subtarget is not ELF based which makes the Darwin logic dead.
|
 | llvm/lib/Target/PowerPC/PPCFrameLowering.cpp |
Commit
a49a41e7855fad426abf6ee9b8b88a535e8d33cc
by gabor.marton[AST][NFC] Update outdated comments in ASTStructuralEquivalence.cpp
|
 | clang/lib/AST/ASTStructuralEquivalence.cpp |
Commit
175f6e309ab911d43ab21707587615341112f3b5
by sd.fertile[PowerPC][NFC] Add a test for vrsave usage iinline asm.
Add a lit test that that uses vrsave register in the clobber list, and tests the extended mnemonics mtvrsave and mfvrsave.
|
 | llvm/test/CodeGen/PowerPC/vrsave-inline-asm.ll |
Commit
de8793b9184ece0d24f46bc2d86711092848f938
by pavel[lldb/DWARF] Add support for type units in dwp files
all that was needed was to teach lldb's DWARF context about the debug_tu_index section.
|
 | lldb/source/Plugins/SymbolFile/DWARF/DWARFContext.h |
 | lldb/source/Plugins/SymbolFile/DWARF/DWARFContext.cpp |
 | lldb/test/Shell/SymbolFile/DWARF/dwp-debug-types.s |
Commit
f0c642e82274158f692d184de177be65eba814c1
by epastorRemove unused functions in llvm-ml
On review, these functions will likely not be needed even in the final MasmParser.
|
 | llvm/lib/MC/MCParser/MasmParser.cpp |
Commit
5125803d344b848cdfc9441edfcc36dc8e488407
by alexandre.ganea[mlir] Silence error: call to constructor of 'llvm::APInt' is ambiguous
I was getting this error when using Clang 9.0.1 for compiling.
F:\llvm-project\mlir\lib\IR\Builders.cpp(119,27): error: call to constructor of 'llvm::APInt' is ambiguous APInt(32, value, /*isSigned=*/false)); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ F:\llvm-project\llvm\include\llvm/ADT/APInt.h(277,3): note: candidate constructor APInt(unsigned numBits, uint64_t val, bool isSigned = false) ^ F:\llvm-project\llvm\include\llvm/ADT/APInt.h(304,3): note: candidate constructor APInt(unsigned numBits, unsigned numWords, const uint64_t bigVal[]); ^ 1 error generated.
|
 | mlir/lib/IR/Builders.cpp |