Commit
20c71e55aad5bf6008c7f5ed63c90ed98907fa99
by spatel[InstSimplify] reduce code for min/max analysis; NFC
This should probably be moved up to some common area eventually when there's another user.
|
 | llvm/lib/Analysis/InstructionSimplify.cpp |
Commit
011e15bea3456cf429a801e309c65bef14fa22ad
by spatel[InstSimplify] add tests for min/max with constants; NFC
|
 | llvm/test/Transforms/InstSimplify/maxmin_intrinsics.ll |
Commit
ec1f4e7c3b17656658c9cf49c33bc06c4bc747c2
by zinenko[mlir] switch the modeling of LLVM types to use the new mechanism
A new first-party modeling for LLVM IR types in the LLVM dialect has been developed in parallel to the existing modeling based on wrapping LLVM `Type *` instances. It resolves the long-standing problem of modeling identified structure types, including recursive structures, and enables future removal of LLVMContext and related locking mechanisms from LLVMDialect.
This commit only switches the modeling by (a) renaming LLVMTypeNew to LLVMType, (b) removing the old implementaiton of LLVMType, and (c) updating the tests. It is intentionally minimal. Separate commits will remove the infrastructure built for the transition and update API uses where appropriate.
Depends On D85020
Reviewed By: rriddle
Differential Revision: https://reviews.llvm.org/D85021
|
 | mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt |
 | mlir/test/Conversion/StandardToLLVM/convert-static-memref-ops.mlir |
 | mlir/test/Target/avx512.mlir |
 | mlir/include/mlir/Target/LLVMIR/TypeTranslation.h |
 | mlir/test/Dialect/LLVMIR/func.mlir |
 | mlir/test/Conversion/SPIRVToLLVM/func-to-llvm.mlir |
 | mlir/test/Conversion/StandardToLLVM/calling-convention.mlir |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h |
 | mlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir |
 | mlir/test/Conversion/SPIRVToLLVM/spirv-types-to-llvm.mlir |
 | mlir/test/Conversion/SPIRVToLLVM/bitwise-ops-to-llvm.mlir |
 | mlir/test/Target/llvmir.mlir |
 | mlir/test/Dialect/LLVMIR/nvvm.mlir |
 | mlir/test/Conversion/StandardToLLVM/convert-dynamic-memref-ops.mlir |
 | mlir/test/Target/nvvmir.mlir |
 | mlir/test/Conversion/SPIRVToLLVM/logical-ops-to-llvm.mlir |
 | mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp |
 | mlir/test/Conversion/SPIRVToLLVM/comparison-ops-to-llvm.mlir |
 | mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td |
 | mlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp |
 | mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp |
 | mlir/test/Conversion/VectorToROCDL/vector-to-rocdl.mlir |
 | mlir/test/lib/Target/TestLLVMTypeTranslation.cpp |
 | mlir/test/Conversion/StandardToLLVM/standard-to-llvm.mlir |
 | mlir/test/Target/llvmir-intrinsics.mlir |
 | mlir/lib/Target/LLVMIR/ModuleTranslation.cpp |
 | mlir/test/Conversion/StandardToLLVM/invalid.mlir |
 | mlir/test/lib/Dialect/LLVMIR/LLVMTypeTestDialect.cpp |
 | mlir/test/Conversion/SPIRVToLLVM/memory-ops-to-llvm.mlir |
 | mlir/test/Conversion/SPIRVToLLVM/shifts-to-llvm.mlir |
 | mlir/test/Conversion/SPIRVToLLVM/cast-ops-to-llvm.mlir |
 | mlir/test/Conversion/SPIRVToLLVM/constant-op-to-llvm.mlir |
 | mlir/test/Conversion/GPUCommon/lower-launch-func-to-gpu-runtime-calls.mlir |
 | mlir/lib/Dialect/LLVMIR/IR/TypeDetail.h |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMTypes.h |
 | mlir/test/Dialect/LLVMIR/global.mlir |
 | mlir/test/Target/llvmir-invalid.mlir |
 | mlir/test/Conversion/VectorToLLVM/vector-reduction-to-llvm.mlir |
 | mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir |
 | mlir/test/Dialect/GPU/outlining.mlir |
 | mlir/integration_test/Dialect/LLVMIR/CPU/test-vector-reductions-int.mlir |
 | mlir/test/Dialect/LLVMIR/types.mlir |
 | mlir/test/Dialect/GPU/invalid.mlir |
 | mlir/test/Conversion/SPIRVToLLVM/misc-ops-to-llvm.mlir |
 | mlir/test/Conversion/GPUToNVVM/gpu-to-nvvm.mlir |
 | mlir/test/Conversion/SPIRVToLLVM/glsl-ops-to-llvm.mlir |
 | mlir/test/Conversion/SPIRVToLLVM/arithmetic-ops-to-llvm.mlir |
 | mlir/test/Dialect/GPU/multiple-all-reduce.mlir |
 | mlir/integration_test/Dialect/LLVMIR/CPU/test-vector-reductions-fp.mlir |
 | mlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp |
 | mlir/test/Target/rocdl.mlir |
 | mlir/test/Conversion/GPUCommon/memory-attrbution.mlir |
 | mlir/test/Dialect/Linalg/llvm.mlir |
 | mlir/test/Dialect/LLVMIR/roundtrip.mlir |
 | mlir/test/Conversion/GPUToCUDA/lower-nvvm-kernel-to-cubin.mlir |
 | mlir/test/Conversion/GPUToVulkan/invoke-vulkan.mlir |
 | mlir/test/Conversion/StandardToLLVM/convert-funcs.mlir |
 | mlir/lib/Target/LLVMIR/TypeTranslation.cpp |
 | mlir/test/mlir-cpu-runner/bare_ptr_call_conv.mlir |
 | mlir/test/Dialect/LLVMIR/invalid.mlir |
 | mlir/test/Target/import.ll |
 | mlir/test/Dialect/LLVMIR/rocdl.mlir |
 | mlir/test/Conversion/GPUToROCm/lower-rocdl-kernel-to-hsaco.mlir |
 | mlir/test/mlir-cpu-runner/simple.mlir |
Commit
cb9f9df5f8239e291a62934b0f64eb795b26d84a
by zinenko[mlir] Fix GCC5 compilation problem in MLIR->LLVM type translation
GCC5 seems to dislike generic lambdas calling a method of the class containing the lambda without explicit `this`.
|
 | mlir/lib/Target/LLVMIR/TypeTranslation.cpp |
Commit
04e45ae1c6d2fdbf3fd4242df69d1511df757d48
by spatel[InstSimplify] fold nested min/max intrinsics with constant operands
This is based on the existing code for the non-intrinsic idioms in InstCombine.
The vector constant constraint is non-obvious: undefs should be ok in the outer call, but they can't propagate safely from the inner call in all cases. Example:
https://alive2.llvm.org/ce/z/-2bVbM define <2 x i8> @src(<2 x i8> %x) { %0: %m = umin <2 x i8> %x, { 7, undef } %m2 = umin <2 x i8> { 9, 9 }, %m ret <2 x i8> %m2 } => define <2 x i8> @tgt(<2 x i8> %x) { %0: %m = umin <2 x i8> %x, { 7, undef } ret <2 x i8> %m } Transformation doesn't verify! ERROR: Value mismatch
Example: <2 x i8> %x = < undef, undef >
Source: <2 x i8> %m = < #x00 (0) [based on undef value], #x00 (0) > <2 x i8> %m2 = < #x00 (0), #x00 (0) >
Target: <2 x i8> %m = < #x07 (7), #x10 (16) > Source value: < #x00 (0), #x00 (0) > Target value: < #x07 (7), #x10 (16) >
|
 | llvm/test/Transforms/InstSimplify/maxmin_intrinsics.ll |
 | llvm/lib/Analysis/InstructionSimplify.cpp |
Commit
1a4263d394c1a93757613bde4b1c2cf8d6a7bbb9
by ntv[mlir][Vector] Add linalg.copy-based pattern for splitting vector.transfer_read into full and partial copies.
This revision adds a transformation and a pattern that rewrites a "maybe masked" `vector.transfer_read %view[...], %pad `into a pattern resembling:
``` %1:3 = scf.if (%inBounds) { scf.yield %view : memref<A...>, index, index } else { %2 = linalg.fill(%extra_alloc, %pad) %3 = subview %view [...][...][...] linalg.copy(%3, %alloc) memref_cast %extra_alloc: memref<B...> to memref<A...> scf.yield %4 : memref<A...>, index, index } %res= vector.transfer_read %1#0[%1#1, %1#2] {masked = [false ... false]} ``` where `extra_alloc` is a top of the function alloca'ed buffer of one vector.
This rewrite makes it possible to realize the "always full tile" abstraction where vector.transfer_read operations are guaranteed to read from a padded full buffer. The extra work only occurs on the boundary tiles.
|
 | mlir/test/Dialect/Vector/vector-transfer-full-partial-split.mlir |
 | mlir/lib/Dialect/Vector/CMakeLists.txt |
 | mlir/include/mlir/Dialect/Vector/VectorOps.h |
 | mlir/test/lib/Transforms/TestVectorTransforms.cpp |
 | mlir/lib/Dialect/Vector/VectorTransforms.cpp |
 | mlir/include/mlir/Dialect/Vector/VectorTransforms.h |
Commit
98827feddb90b8d8bfeb3c85f7801ee411bab2cd
by russell.gallop[lit] Add --time-trace-output to lit
This produces a chrome://tracing compatible trace file in the same way as -ftime-trace.
This can be useful in optimising test time where one long test is causing long overall test time on a wide machine.
This also helped in finding tests which have side effects on others (e.g. https://reviews.llvm.org/D84885).
Differential Revision: https://reviews.llvm.org/D84931
|
 | llvm/utils/lit/lit/cl_arguments.py |
 | llvm/utils/lit/lit/worker.py |
 | llvm/utils/lit/lit/Test.py |
 | llvm/utils/lit/lit/reports.py |
Commit
36750ba5bd0e9e72120dbfaab4166baafd89e98a
by llvm-dev[X86][AVX] isHorizontalBinOp - relax lane-crossing limits for AVX1-only targets.
Permit lane-crossing post shuffles on AVX1 targets as long as every element comes from the same source lane, which for v8f32/v4f64 cases can be efficiently lowered with the LowerShuffleAsLanePermuteAnd* style methods.
|
 | llvm/test/CodeGen/X86/haddsub-4.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
051f293b7881116c0d4aae6e2ee0470b3ca58886
by llvm-dev[X86] Remove unused canScaleShuffleElements helper
The only use was removed at rG36750ba5bd0e9e72
Thanks to @nemanjai for the heads up
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
1c0a0dfa0236514fd1fbb1bccd8ad29f9d64e915
by hokein.wu[Concepts] Include the found concept decl when dumping the ConceptSpecializationExpr
Differential Revision: https://reviews.llvm.org/D85124
|
 | clang/test/AST/ast-dump-concepts.cpp |
 | clang/lib/AST/TextNodeDumper.cpp |
 | clang/include/clang/AST/TextNodeDumper.h |
Commit
62a933b72c5b060bcb2c7332d05082f002d6c65a
by nemanja.i.ibm[Support][PPC] Fix bot failures due to cd53ded557c3
Commit https://reviews.llvm.org/rGcd53ded557c3 attempts to fix the computation in computeHostNumPhysicalCores() to respect Affinity. However, the GLIBC wrapper of the affinity system call fails with a default size of cpu_set_t on systems that have more than 1024 CPUs. This just fixes the computation on such large machines.
|
 | llvm/lib/Support/Host.cpp |
Commit
860cbbdd6b84017e6d37e1752b0358a05da6b115
by ecaldas[SyntaxTree] Add support for `LiteralExpression`
We use inheritance to model the grammar's disjunction rule: literal: integer-literal character-literal floating-point-literal string-literal boolean-literal pointer-literal user-defined-literal
Differential Revision: https://reviews.llvm.org/D85186
|
 | clang/include/clang/Tooling/Syntax/Nodes.h |
 | clang/lib/Tooling/Syntax/Nodes.cpp |
Commit
2d0b05969bc01a2fda14b8dc3e8c26c81efe9c6f
by ntv[mlir][Vector] Relax condition for `splitFullAndPartialTransferPrecondition`
The `splitFullAndPartialTransferPrecondition` has a restrictive condition to prevent the pattern to be applied recursively if it is nested under an scf.IfOp. Relaxing the condition to the immediate parent op must not be an scf.IfOp lets the pattern be applied more generally while still preventing recursion.
Differential Revision: https://reviews.llvm.org/D85209
|
 | mlir/lib/Dialect/Vector/VectorTransforms.cpp |
Commit
8ce15f7eeb122c0bba4b676d797217359dd57c30
by ecaldas[SyntaxTree] Fix crash on pointer to member function
Differential Revision: https://reviews.llvm.org/D85146
|
 | clang/unittests/Tooling/Syntax/TreeTest.cpp |
 | clang/lib/Tooling/Syntax/BuildTree.cpp |
Commit
961da69d7eafe44411d5ac9719209653d196f9e2
by erich.keaneImprove diagnostics for disallowed attributes used with multiversioning
Since we permit using SOME attributes (at the moment, just 1) with multiversioning, we should improve the message as it still implies that no attributes should be combined with multiversioning.
|
 | clang/test/Sema/attr-cpuspecific.c |
 | clang/test/Sema/attr-target-mv.c |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/lib/Sema/SemaDecl.cpp |
Commit
0a8ac91a084504929b1ef4ec1fee693455bd796d
by erich.keanePermit nowthrow and nonnull with multiversioning.
Some shipped versions of stdlib.h use nonnull and nothrow with function multiversioning. Support these, as they are generally harmless.
|
 | clang/lib/Sema/SemaDecl.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/test/Sema/attr-target-mv.c |
 | clang/test/Sema/attr-cpuspecific.c |
Commit
feb9d8bd8e60100b29f8a065995e14a16c871914
by llvm-devFix sphinx indentation warning.
Don't double indent and make it clear we're referting to the latency mode.
|
 | llvm/docs/CommandGuide/llvm-exegesis.rst |
Commit
6f0da46d538ec3003584cc6ea4419f4403f19771
by llvm-dev[X86] getFauxShuffleMask - drop unnecessary computeKnownBits OR(X,Y) shuffle decoding.
Now that rG47cea9e82dda941e lets us aggressively decode multi-use shuffles for the OR(SHUFFLE(),SHUFFLE()) case we don't need the computeKnownBits variant any more.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
6e727551b9db76dd209a34e312dd44faae3843b6
by llvm-devFix sphinx indentation warning to stop newline in byref section html output.
|
 | llvm/docs/LangRef.rst |
Commit
ee75cf36bb1790a51cd1fd7c022b0ece101eb248
by jay.foad[AMDGPU] Generate frem test checks
Differential Revision: https://reviews.llvm.org/D84515
|
 | llvm/test/CodeGen/AMDGPU/frem.ll |
Commit
8ec8ad868d9b970245e827b14306fbd11d11a9b2
by jay.foad[AMDGPU] Use fma for lowering frem
This gives shorter f64 code and perhaps better accuracy.
Differential Revision: https://reviews.llvm.org/D84516
|
 | llvm/test/CodeGen/AMDGPU/frem.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp |
Commit
817b3a6fe3a4452eb61a2503c8beaa7267ca0351
by rupprecht[test] Use abspath instead of realpath sometimes
In these two cases, use of `os.path.realpath` is problematic:
- The name of the compiler is significant [1] . For testing purposes, we might provide a compiler called "clang" which is actually a symlink to some build script (which does some flag processing before invoking the real clang). The destination the symlink may not be called "clang", but we still want it to be treated as such. - When using a build system that puts build artifacts in an arbitrary build location, and later creates a symlink for it (e.g. creates a "<lldb root>/lldbsuite/test/dotest.py" symlinks that points to "/build/artifact/<hash>/dotest.py"), looking at the realpath will not match the "test" convention required here.
[1] See `Makefile.rules` in the lldb tree, e.g. we use different flags if the compiler is named "clang"
Reviewed By: JDevlieghere
Differential Revision: https://reviews.llvm.org/D85175
|
 | lldb/packages/Python/lldbsuite/test/dotest.py |
Commit
28e322ea9393e6b3841886006dd170ddd810fd9b
by jay.foad[PowerPC] Custom lowering for funnel shifts
The custom lowering saves an instruction over the generic expansion, by taking advantage of the fact that PowerPC shift instructions are well defined in the shift-by-bitwidth case.
Differential Revision: https://reviews.llvm.org/D83948
|
 | llvm/lib/Target/PowerPC/PPCISelLowering.cpp |
 | llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp |
 | llvm/test/CodeGen/PowerPC/pr44183.ll |
 | llvm/lib/Target/PowerPC/PPCISelLowering.h |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp |
 | llvm/test/CodeGen/PowerPC/funnel-shift.ll |
Commit
cc0b670abf93c9c826885ab67125857469a1b8a6
by llvm-devFix sphinx "Title underline too short" warning
|
 | llvm/docs/Passes.rst |
Commit
5e0a9dc0ad7704b7c49995101629010f5ff98cd2
by llvm-devSeparate code-block tag with a newline to fix code snippet html output
|
 | clang/include/clang/Basic/AttrDocs.td |
Commit
14d726acd6041ee8fc595e48ec871b50b40ccc1d
by nemanja.i.ibm[PowerPC] Don't remove single swap between the load and store
The swap removal pass looks to remove swaps when a loaded value is swapped, some number of lane-insensitive operations are performed and then the value is swapped again and stored.
However, in a situation where we load the value, swap it and then store it without swapping again, the pass erroneously removes the single swap. The reason is that both checks in the same equivalence class:
- load feeds a swap - swap feeds a store
pass. However, there is no check that the two swaps are actually a single swap. This patch just fixes that.
Differential revision: https://reviews.llvm.org/D84785
|
 | llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp |
 | llvm/test/CodeGen/PowerPC/swaps-le-8.ll |
Commit
6d6750696400e7ce988d66a1a00e1d0cb32815f8
by yhs[clang][BPF] support type exist/size and enum exist/value relocations
This patch added the following additional compile-once run-everywhere (CO-RE) relocations: - existence/size of typedef, struct/union or enum type - enum value and enum value existence
These additional relocations will make CO-RE bpf programs more adaptive for potential kernel internal data structure changes.
For existence/size relocations, the following two code patterns are supported: 1. uint32_t __builtin_preserve_type_info(*(<type> *)0, flag); 2. <type> var; uint32_t __builtin_preserve_field_info(var, flag); flag = 0 for existence relocation and flag = 1 for size relocation.
For enum value existence and enum value relocations, the following code pattern is supported: uint64_t __builtin_preserve_enum_value(*(<enum_type> *)<enum_value>, flag); flag = 0 means existence relocation and flag = 1 for enum value. relocation. In the above <enum_type> can be an enum type or a typedef to enum type. The <enum_value> needs to be an enumerator value from the same enum type. The return type is uint64_t to permit potential 64bit enumerator values.
Differential Revision: https://reviews.llvm.org/D83242
|
 | clang/lib/Sema/SemaChecking.cpp |
 | clang/lib/CodeGen/CGBuiltin.cpp |
 | clang/test/CodeGen/builtins-bpf-preserve-field-info-4.c |
 | clang/test/Sema/builtins-bpf.c |
 | clang/test/CodeGen/builtins-bpf-preserve-field-info-3.c |
 | clang/include/clang/Basic/BuiltinsBPF.def |
 | llvm/include/llvm/IR/IntrinsicsBPF.td |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
Commit
4a04bc8995639e1d333790518e4d42e0961f740e
by Andrey.Churbanov[OpenMP] Don't use MSVC workaround with MinGW
Patch by mati865@gmail.com
Differential Revision: https://reviews.llvm.org/D85210
|
 | openmp/runtime/cmake/LibompExports.cmake |
 | openmp/runtime/src/CMakeLists.txt |
 | openmp/runtime/cmake/LibompMicroTests.cmake |
Commit
593e19629744d6c8ba45fe4bb78910cf653cd6a7
by i[llvm-symbolizer] Switch command line parsing from llvm::cl to OptTable
for the advantage outlined by D83639 ([OptTable] Support grouped short options)
Some behavior changes:
* -i={0,false} is removed. Use --no-inlines instead. * --demangle={0,false} is removed. Use --no-demangle instead * -untag-addresses={0,false} is removed. Use --no-untag-addresses instead
Added a higher level API OptTable::parseArgs which handles optional initial options populated from an environment variable, expands response files recursively, and parses options.
Reviewed By: jhenderson
Differential Revision: https://reviews.llvm.org/D83530
|
 | llvm/docs/CommandGuide/llvm-symbolizer.rst |
 | llvm/lib/Support/CommandLine.cpp |
 | llvm/test/tools/llvm-symbolizer/help.test |
 | llvm/test/tools/llvm-symbolizer/basic.s |
 | llvm/include/llvm/Support/CommandLine.h |
 | llvm/test/tools/llvm-symbolizer/unknown-argument.test |
 | llvm/include/llvm/Option/OptTable.h |
 | llvm/test/DebugInfo/debuglineinfo-path.ll |
 | llvm/test/tools/llvm-symbolizer/untag-addresses.test |
 | llvm/test/tools/llvm-symbolizer/split-dwarf.test |
 | llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp |
 | llvm/tools/llvm-symbolizer/Opts.td |
 | llvm/lib/Option/OptTable.cpp |
 | llvm/test/tools/llvm-symbolizer/output-style-inlined.test |
 | llvm/tools/llvm-symbolizer/CMakeLists.txt |
Commit
444401c31f9f1218aed46348eda23a75766002b2
by Matthew.ArsenaultGlobalISel: Hack a test to avoid a bug introducing a verifier error
There seems to be an unrelated CSEMIRBuilder bug that was causing expensive checks failures in this case. Hack the test to avoid this problem for now until that's fixed.
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-phi.mir |
Commit
05aa29efd7ecaea9631a3ac5c471a4a4749463a2
by flo[docs] Mention LLVM_ENABLE_MODULES.
|
 | llvm/docs/CMake.rst |
Commit
a16882047a3f7c37f2c7747a1b2ee0d7619d5645
by spatel[InstSimplify] refactor min/max folds with shared operand; NFC
|
 | llvm/lib/Analysis/InstructionSimplify.cpp |
Commit
041c7b84a4b925476d1e21ed302786033bb6035f
by Jonas Devlieghere[lldb/Host] Upstream macOS TCC code
Upstream the code for dealing with TCC introduced in macOS Mojave. This will make the debuggee instead of the debugger responsible for the privileges it needs.
Differential revision: https://reviews.llvm.org/D85217
|
 | lldb/source/Host/macosx/objcxx/Host.mm |
 | lldb/source/Host/macosx/objcxx/PosixSpawnResponsible.h |
Commit
23adbac9ee23c10976e40c80999abf02ecb389b7
by mcinally[GlobalISel] Don't transform FSUB(-0, X) -> FNEG(X) in GlobalISel.
This patch stops unconditionally transforming FSUB(-0, X) into an FNEG(X) while building the MIR.
This corresponds with the SelectionDAGISel change in D84056.
Differential Revision: https://reviews.llvm.org/D85139
|
 | llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp |
 | llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll |
 | llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h |
Commit
0de547ed4ada068ea618bdb8ce58ddc89de9a42f
by Matthew.ArsenaultAMDGPU/GlobalISel: Ensure subreg is valid when selecting G_UNMERGE_VALUES
Fixes verifier error with SGPR unmerges with 96-bit result types.
|
 | llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-unmerge-values.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-unmerge-values.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.s.buffer.load.ll |
Commit
12605bfd1ff5c6316e74587be1b41d24abd893fc
by Xing[DWARFYAML] Fix unintialized value Is64BitAddrSize. NFC.
This patch fixes the undefined behavior that reported by ubsan.
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/44524/
|
 | llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp |
 | llvm/lib/ObjectYAML/DWARFEmitter.cpp |
 | llvm/include/llvm/ObjectYAML/DWARFEmitter.h |
Commit
724b035fe4df89e807f85ee202da8b0bc227895b
by mcinally[GlobalISel] Remove redundant FNEG tests.
These tests were made redundant by D85139.
|
 | llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll |
Commit
56593fa370124a4d77703e7ddfa4dfca81e0c8f2
by uday[MLIR] Simplify semi-affine expressions
Simplify semi-affine expression for the operations like ceildiv, floordiv and modulo by any given symbol by checking divisibilty by that symbol.
Some properties used in simplification are:
1) Commutative property of the floordiv and ceildiv: ((expr1 floordiv expr2) floordiv expr3 ) = ((expr1 floordiv expr3) floordiv expr2) ((expr1 ceildiv expr2) ceildiv expr3 ) = ((expr1 ceildiv expr3) ceildiv expr2)
While simplification if operations are different no simplification is possible as there is no property that simplify expressions like these: ((expr1 ceildiv expr2) floordiv expr3) or ((expr1 floordiv expr2) ceildiv expr3).
2) If both expr1 and expr2 are divisible by the expr3 then: (expr1 % expr2) / expr3 = ((expr1 / expr3) % (expr2 / expr3)) where / is divide symbol.
3) If expr1 is divisible by expr2 then expr1 % expr2 = 0.
Signed-off-by: Yash Jain <yash.jain@polymagelabs.com>
Differential Revision: https://reviews.llvm.org/D84920
|
 | mlir/lib/IR/AffineExpr.cpp |
 | mlir/test/Dialect/Affine/simplify-affine-structures.mlir |
Commit
83cb98f9e7a57360e137b32b26500fca630df617
by llvm-devFix sphinx indentation warnings by adding explicit line breaks to address space hierarchy
|
 | clang/include/clang/Basic/AttrDocs.td |
Commit
6a4fd03698e1aab09c47215b7eace942a23de074
by thakis[gn build] (manually) merge 593e1962
|
 | llvm/utils/gn/secondary/llvm/tools/llvm-symbolizer/BUILD.gn |
Commit
e4441fc653912ec4efc5611a8dd926f8bdd0306c
by isanitizer_symbolizer_libcdep.cpp: Change --inlining=true to --inlines and --inlining=false to --no-inlines
|
 | compiler-rt/lib/asan/scripts/asan_symbolize.py |
 | compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cpp |
Commit
e31cfc4cd3e393300002e9c519787c96e3b67bab
by dblaikieFix -Wconstant-conversion warning with explicit cast
Introduced by fd6584a22043b254a323635c142b28ce80ae5b5b
Following similar use of casts in AsmParser.cpp, for instance - ideally this type would use unsigned chars as they're more representative of raw data and don't get confused around implementation defined choices of char's signedness, but this is what it is & the signed/unsigned conversions are (so far as I understand) safe/bit preserving in this usage and what's intended, given the API design here.
|
 | llvm/lib/Target/AArch64/AArch64FrameLowering.cpp |
Commit
b9266f81bc0a2b53406a84e6ef0c4989d5f7e296
by georgemitenk0v[MLIR][SPIRVToLLVM] Indentation and style fix in tests
Second patch with test fixes. Redundant `%{{.*}} = ` removed, label checks added, tabs converted to spaces and some namings are changed to match the convention.
Fixed tests: - constant-op-to-llvm - func-ops-to-llvm (renamed) - memory-ops-to-llvm - misc-ops-to-llvm - module-ops-to-llvm - shift-ops-to-llvm (renamed) - spirv-types-to-llvm-invalid (renamed)
Reviewed By: ftynse, rriddle
Differential Revision: https://reviews.llvm.org/D85206
|
 | mlir/test/Conversion/SPIRVToLLVM/shifts-to-llvm.mlir |
 | mlir/test/Conversion/SPIRVToLLVM/memory-ops-to-llvm.mlir |
 | mlir/test/Conversion/SPIRVToLLVM/func-to-llvm.mlir |
 | mlir/test/Conversion/SPIRVToLLVM/shift-ops-to-llvm.mlir |
 | mlir/test/Conversion/SPIRVToLLVM/misc-ops-to-llvm.mlir |
 | mlir/test/Conversion/SPIRVToLLVM/spirv-types-to-llvm.invalid.mlir |
 | mlir/test/Conversion/SPIRVToLLVM/spirv-types-to-llvm-invalid.mlir |
 | mlir/test/Conversion/SPIRVToLLVM/constant-op-to-llvm.mlir |
 | mlir/test/Conversion/SPIRVToLLVM/func-ops-to-llvm.mlir |
Commit
960cef75f4d289e01b338c2f98c5dca2520ee8ff
by spatel[InstSimplify] add tests for compare of min/max; NFC
The test are adapted from the existing tests for cmp/select idioms.
|
 | llvm/test/Transforms/InstSimplify/maxmin_intrinsics.ll |
Commit
31ec6e969d601eb4fbee7bd4be3d03d23b5b3c11
by rupprecht[test] Fix another realpath->abspath.
This is a followup to 817b3a6fe3a4452eb61a2503c8beaa7267ca0351: in `builder_base` we should use abspath, not realpath, because the name is significant. This is used by test cases that use `@skipIf(compiler="clang", compiler_version=['<', <version>])`
|
 | lldb/packages/Python/lldbsuite/test/plugins/builder_base.py |
Commit
e18c6ef6b41a59af73bf5c3d7d52a8c53a471e5d
by JF Bastien[clang] improve diagnostics for misaligned and large atomics
"Listing the alignment and access size (== expected alignment) in the warning seems like a good idea."
solves PR 46947
struct Foo { struct Bar { void * a; void * b; }; Bar bar; };
struct ThirtyTwo { struct Large { void * a; void * b; void * c; void * d; }; Large bar; };
void braz(Foo *foo, ThirtyTwo *braz) { Foo::Bar bar; __atomic_load(&foo->bar, &bar, __ATOMIC_RELAXED);
ThirtyTwo::Large foobar; __atomic_load(&braz->bar, &foobar, __ATOMIC_RELAXED); }
repro.cpp:21:3: warning: misaligned atomic operation may incur significant performance penalty; the expected (16 bytes) exceeds the actual alignment (8 bytes) [-Watomic-alignment] __atomic_load(&foo->bar, &bar, __ATOMIC_RELAXED); ^ repro.cpp:24:3: warning: misaligned atomic operation may incur significant performance penalty; the expected (32 bytes) exceeds the actual alignment (8 bytes) [-Watomic-alignment] __atomic_load(&braz->bar, &foobar, __ATOMIC_RELAXED); ^ repro.cpp:24:3: warning: large atomic operation may incur significant performance penalty; the access size (32 bytes) exceeds the max lock-free size (16 bytes) [-Watomic-alignment] 3 warnings generated.
Differential Revision: https://reviews.llvm.org/D85102
|
 | clang/include/clang/Basic/DiagnosticGroups.td |
 | clang/lib/CodeGen/CGAtomic.cpp |
 | clang/include/clang/Basic/DiagnosticFrontendKinds.td |
 | clang/test/CodeGen/atomics-sema-alignment.c |
Commit
f8cc94a61afe48a4b77f111a8ad313fc3b9417de
by 1894981+hiradityaRevert "[HotColdSplit] Add test case for unlikely attribute in outlined function"
This reverts commit aa1f905890fbbfedf396530f1e14409875ece13c.
The flag -codegenprepare maybe causing failures. Reverting this to investigate the root cause.
|
 | llvm/test/Transforms/HotColdSplit/coldentrycount.ll |
Commit
456497450482153afe86838ac2e2be395206d377
by nikita.ppv[SCCP] Propagate inequalities
Teach SCCP to create notconstant lattice values from inequality assumes and nonnull metadata, and update getConstant() to make use of them. Additionally isOverdefined() needs to be changed to consider notconstant an overdefined value.
Handling inequality branches is delayed until our branch on undef story in other passes has been improved.
Differential Revision: https://reviews.llvm.org/D83643
|
 | llvm/test/Transforms/SCCP/metadata.ll |
 | llvm/lib/Transforms/Scalar/SCCP.cpp |
 | llvm/test/Transforms/SCCP/assume.ll |
 | llvm/include/llvm/Analysis/ValueLattice.h |
Commit
12cb400fd25863154c6d4d26427642cac0e52da1
by i[llvm-symbolizer] Add compatibility aliases for --inlining={true,false}
D83530 removed --inlining={true,false} which were used by old asan_symbolize.py script. Add compatibility aliases so that old asan_symbolize.py and sanitizer binaries can work with new llvm-symbolizer.
Reviewed By: thakis
Differential Revision: https://reviews.llvm.org/D85228
|
 | llvm/test/tools/llvm-symbolizer/output-style-inlined.test |
 | llvm/test/tools/llvm-symbolizer/sym.test |
 | llvm/tools/llvm-symbolizer/Opts.td |
Commit
b778b04b69d02a2fa18b22a1858f3eb26c2f7f24
by nikita.ppv[InstSimplify] Add tests for icmp with urem divisor (NFC)
|
 | llvm/test/Transforms/InstSimplify/compare.ll |
Commit
29fe3fe6155fd79ce731a119ce8065a8a0d26b56
by nikita.ppv[InstSimplify] Peephole optimization for icmp (urem X, Y), X
This revision adds the following peephole optimization and it's negation:
%a = urem i64 %x, %y %b = icmp ule i64 %a, %x ====> %b = true
With John Regehr's help this optimization was checked with Alive2 which suggests it should be valid.
This pattern occurs in the bound checks of Rust code, the program
const N: usize = 3; const T = u8;
pub fn split_mutiple(slice: &[T]) -> (&[T], &[T]) { let len = slice.len() / N; slice.split_at(len * N) }
the method call slice.split_at will check that len * N is within the bounds of slice, this bounds check is after some transformations turned into the urem seen above and then LLVM fails to optimize it any further. Adding this optimization would cause this bounds check to be fully optimized away.
ref: https://github.com/rust-lang/rust/issues/74938
Differential Revision: https://reviews.llvm.org/D85092
|
 | llvm/lib/Analysis/InstructionSimplify.cpp |
 | llvm/test/Transforms/InstSimplify/compare.ll |
Commit
3c0f34700230fc4fd23ef408adb75387dcfeff41
by bmahjour[NFC][LV] Vectorized Loop Skeleton Refactoring
This patch tries to improve readability and maintenance of createVectorizedLoopSkeleton by reorganizing some lines, updating some of the comments and breaking it up into smaller logical units.
Reviewed By: pjeeva01
Differential Revision: https://reviews.llvm.org/D83824
|
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
Commit
e8dcf5f87dc20b3f08005ac767ff934e36bf2a5b
by ajcbik[mlir] [VectorOps] Add expand/compress operations to Vector dialect
Introduces the expand and compress operations to the Vector dialect (important memory operations for sparse computations), together with a first reference implementation that lowers to the LLVM IR dialect to enable running on CPU (and other targets that support the corresponding LLVM IR intrinsics).
Reviewed By: reidtatge
Differential Revision: https://reviews.llvm.org/D84888
|
 | mlir/integration_test/Dialect/Vector/CPU/test-scatter.mlir |
 | mlir/integration_test/Dialect/Vector/CPU/test-expand.mlir |
 | mlir/test/Dialect/Vector/ops.mlir |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td |
 | mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp |
 | mlir/lib/Dialect/Vector/VectorOps.cpp |
 | mlir/integration_test/Dialect/Vector/CPU/test-compress.mlir |
 | mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir |
 | mlir/include/mlir/Dialect/Vector/VectorOps.td |
 | mlir/test/Dialect/Vector/invalid.mlir |
 | mlir/test/Target/llvmir-intrinsics.mlir |
Commit
d0ad9e93ce546eb3d372f1b815b164ba137fd701
by Louis Dionne[libc++abi] Make sure we use a 32 bit guard on 32 bit Aarch64
|
 | libcxxabi/include/__cxxabi_config.h |
Commit
14ed5cf5c461cf34faf5729424b4221d30e24dcc
by arsenm2AMDGPU/GlobalISel: Add baseline tests for andn2/orn2 matching
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/andn2.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/orn2.ll |
Commit
f2942f9c26a39340f8604857c7c90e6ade02a381
by arsenm2GlobalISel: Add node mappings for frameindex/blockaddress
|
 | llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td |
Commit
6cd50e7b75ed39ba1218c724401117cb6e12748d
by gyurgyikcp[libc] Add implementations for isblank, iscntrl, isgraph, ispunct.
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D85059
|
 | libc/src/ctype/isgraph.cpp |
 | libc/src/ctype/isblank.h |
 | libc/config/linux/aarch64/entrypoints.txt |
 | libc/test/src/ctype/CMakeLists.txt |
 | libc/test/src/ctype/iscntrl_test.cpp |
 | libc/test/src/ctype/isgraph_test.cpp |
 | libc/src/ctype/isgraph.h |
 | libc/src/ctype/ispunct.h |
 | libc/test/src/ctype/isblank_test.cpp |
 | libc/src/ctype/CMakeLists.txt |
 | libc/src/ctype/isblank.cpp |
 | libc/test/src/ctype/ispunct_test.cpp |
 | libc/config/linux/api.td |
 | libc/src/ctype/iscntrl.cpp |
 | libc/src/ctype/ctype_utils.h |
 | libc/spec/stdc.td |
 | libc/src/ctype/isalnum.cpp |
 | libc/config/linux/x86_64/entrypoints.txt |
 | libc/src/ctype/iscntrl.h |
 | libc/src/ctype/ispunct.cpp |
Commit
3e16e2152cd1fb3914d4da47d83d5e023dd3f2cb
by Matthew.ArsenaultGlobalISel: Handle llvm.localescape
This one is pretty easy and shrinks the list of unhandled intrinsics. I'm not sure how relevant the insert point is. Using the insert position of EntryBuilder will place this after constants. SelectionDAG seems to end up emitting these after argument copies and before anything else, but I don't think it really matters. This also ends up emitting these in the opposite order from SelectionDAG, but I don't think that matters either.
This also needs a fix to stop the later passes dropping this as a dead instruction. DeadMachineInstructionElim's version of isDead special cases LOCAL_ESCAPE for some reason, and I'm not sure why it's excluded from MachineInstr::isLabel (or why isDead doesn't check it).
I also noticed DeadMachineInstructionElim never considers inline asm as dead, but GlobalISel will drop asm with no constraints.
|
 | llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp |
 | llvm/lib/CodeGen/GlobalISel/Utils.cpp |
 | llvm/test/CodeGen/AArch64/GlobalISel/labels-are-not-dead.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-localescape.ll |
Commit
0729a772806e5ae38603c164c2f60e5e9f9e65e5
by i[llvm-symbolizer][test] Fix pdb/pdb.test after D83530
This is a Windows only test which requires HAVE_DIA_SDK, so I failed to notice it.
|
 | llvm/test/tools/llvm-symbolizer/pdb/pdb.test |
Commit
3bfbc5df87cb0e736fe917e4a8d5166bc0b4ea79
by diego.caballero[MLIR][Affine] Fix createPrivateMemRef in affine fusion
Always define a remapping for the memref replacement (`indexRemap`) with the proper number of inputs, including all the `outerIVs`, so that the number of inputs and the operands provided for the map don't mismatch.
Reviewed By: bondhugula, andydavis1
Differential Revision: https://reviews.llvm.org/D85177
|
 | mlir/test/Transforms/loop-fusion.mlir |
 | mlir/lib/Transforms/LoopFusion.cpp |
Commit
6d218b4adb093ff2e9764febbbc89f429412006c
by yhsBPF: support type exist/size and enum exist/value relocations
Four new CO-RE relocations are introduced: - TYPE_EXISTENCE: whether a typedef/record/enum type exists - TYPE_SIZE: the size of a typedef/record/enum type - ENUM_VALUE_EXISTENCE: whether an enum value of an enum type exists - ENUM_VALUE: the enum value of an enum type
These additional relocations will make CO-RE bpf programs more adaptive for potential kernel internal data structure changes.
Differential Revision: https://reviews.llvm.org/D83878
|
 | llvm/lib/Target/BPF/BPFCORE.h |
 | llvm/test/CodeGen/BPF/CORE/intrinsic-typeinfo-type-size-1.ll |
 | llvm/test/CodeGen/BPF/CORE/intrinsic-typeinfo-type-size-2.ll |
 | llvm/lib/Target/BPF/BTFDebug.cpp |
 | llvm/lib/Target/BPF/BTFDebug.h |
 | llvm/test/CodeGen/BPF/CORE/intrinsic-typeinfo-type-exist.ll |
 | llvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp |
 | llvm/test/CodeGen/BPF/CORE/intrinsic-typeinfo-enum-value.ll |
Commit
0f2b47b6da0be5e5a597a274bd5c2ae18cc406bd
by mcinally[FastISel] Don't transform FSUB(-0, X) -> FNEG(X) in FastISel
This corresponds with the SelectionDAGISel change in D84056.
Also, rename some poorly named tests in CodeGen/X86/fast-isel-fneg.ll with NFC.
Differential Revision: https://reviews.llvm.org/D85149
|
 | llvm/lib/CodeGen/SelectionDAG/FastISel.cpp |
 | llvm/test/CodeGen/X86/fast-isel-fneg.ll |
 | llvm/test/CodeGen/X86/fast-isel-fneg-kill.ll |
Commit
1d6a724aa1c11a37ff083cf637f91852e96ce11f
by jurahul[MLIR] Change FunctionType::get() and TupleType::get() to use TypeRange
- Moved TypeRange into its own header/cpp file, and add hashing support. - Change FunctionType::get() and TupleType::get() to use TypeRange
Differential Revision: https://reviews.llvm.org/D85075
|
 | mlir/lib/IR/StandardTypes.cpp |
 | flang/lib/Lower/RTBuilder.h |
 | mlir/lib/IR/CMakeLists.txt |
 | mlir/lib/IR/TypeDetail.h |
 | mlir/lib/IR/TypeRange.cpp |
 | mlir/lib/Dialect/StandardOps/IR/Ops.cpp |
 | mlir/include/mlir/IR/Builders.h |
 | mlir/include/mlir/IR/TypeRange.h |
 | mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp |
 | mlir/lib/IR/Builders.cpp |
 | mlir/include/mlir/IR/Types.h |
 | mlir/include/mlir/IR/OperationSupport.h |
 | mlir/lib/IR/Types.cpp |
 | mlir/include/mlir/IR/StandardTypes.h |
 | mlir/lib/IR/OperationSupport.cpp |
Commit
47f7174ffa71d339c1a65d1dd9a2ac5ff2abc95d
by sunfish[WebAssembly] Use "signed char" instead of "char" in SIMD intrinsics.
This allows people to use `int8_t` instead of `char`, -funsigned-char, and generally decouples SIMD from the specialness of `char`.
And it makes intrinsics like `__builtin_wasm_add_saturate_s_i8x16` and `__builtin_wasm_add_saturate_u_i8x16` use signed and unsigned element types, respectively.
Differential Revision: https://reviews.llvm.org/D85074
|
 | clang/lib/Headers/wasm_simd128.h |
 | clang/test/CodeGen/builtins-wasm.c |
 | clang/include/clang/Basic/BuiltinsWebAssembly.def |
Commit
a4e537d9c47aa378a24636e2d90d208389ad93ab
by iii[libFuzzer] Fix endianness issue in ForEachNonZeroByte()
The usage pattern of Bundle variable assumes the machine is little endian, which is not the case on SystemZ. Fix by converting Bundle to little-endian when necessary.
|
 | compiler-rt/lib/fuzzer/FuzzerTracePC.h |
 | compiler-rt/lib/fuzzer/FuzzerUtil.h |
Commit
153df1373e5d3e0f16464233a3c17feb8a9eb3e9
by iii[SanitizerCoverage] Fix types of __stop* and __start* symbols
If a section is supposed to hold elements of type T, then the corresponding CreateSecStartEnd()'s Ty parameter represents T*. Forwarding it to GlobalVariable constructor causes the resulting GlobalVariable's type to be T*, and its SSA value type to be T**, which is one indirection too many. This issue is mostly masked by pointer casts, however, the global variable still gets an incorrect alignment, which causes SystemZ to choose wrong instructions to access the section.
|
 | llvm/test/Instrumentation/SanitizerCoverage/inline-bool-flag.ll |
 | llvm/test/Instrumentation/SanitizerCoverage/tracing.ll |
 | llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp |
 | llvm/test/Instrumentation/SanitizerCoverage/inline-8bit-counters.ll |
Commit
ea9b82da4180550c3ddc5e883c589474af9462b7
by iii[libFuzzer] Enable for SystemZ
* Add SystemZ to the list of supported architectures.
* XFAIL a few tests.
Coverage reporting is broken, and is not easy to fix (see comment in coverage.test). Interaction with sanitizers needs to be investigated more thoroughly, since they appear to reduce coverage in certain cases.
|
 | compiler-rt/test/fuzzer/msan.test |
 | compiler-rt/test/fuzzer/swap-cmp.test |
 | compiler-rt/cmake/config-ix.cmake |
 | compiler-rt/test/fuzzer/coverage.test |
Commit
bb33f925a673f3bb9793d2157c9d3d46d9ad7f25
by Jonas Devlieghere[lldb/Test] Add missing stdio.h includes
Fixes error: implicit declaration of function 'printf' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
|
 | lldb/test/API/lang/c/global_variables/main.c |
 | lldb/test/API/commands/target/basic/a.c |
Commit
bf2aa74e51997ee190f3b34dd26a1b564e59e267
by martin[OpenMP] support build on msys2/mingw with clang or gcc
RTM Adaptive Locks are supported on msys2/mingw for clang and gcc.
Differential Revision: https://reviews.llvm.org/D81776
|
 | openmp/runtime/src/kmp_lock.cpp |
Commit
f0f68c6e6c5e0064c0196e4f1528e910a47766e0
by 1894981+hiraditya[HotColdSplit] Add test case for unlikely attribute in outlined function
Differential Revision: https://reviews.llvm.org/D85232
|
 | llvm/test/Transforms/HotColdSplit/coldentrycount.ll |
Commit
95efea4b9310bb204a42fbf29abd4efa65647000
by efriedma[AArch64][SVE] Widen narrow sdiv/udiv operations.
The SVE instruction set only supports sdiv/udiv for 32-bit and 64-bit integers. If we see an 8-bit or 16-bit divide, widen the operands to 32 bits, and narrow the result.
Differential Revision: https://reviews.llvm.org/D85170
|
 | llvm/lib/Target/AArch64/AArch64ISelLowering.h |
 | llvm/test/CodeGen/AArch64/llvm-ir-to-intrinsic.ll |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
Commit
e7af98680ad52ffc6d308ef63667ac6fb4bb16a7
by waltermelon[lldb-vscode ]Add Syntax Highlighting to Disassembly View
When lldb cannot find source file thus IDE renders a disassembly view, add syntax highlighting for constants, registers and final line comments for better debugging experience. The original plain disassembly view looks like: {F12401687} An ideal view is like the screenshot attached. {F12401515}
In this diff, the mimeType is a kind of media type for formatting the content in the response to a source request. Elements in the disassembly view, like constants, registers and final line comments are colored for highlighting. A built-in support in the VSCode IDE for syntax highlighting will identify the which mimeType to apply and render the disassembly view as expected.
Reviewed By: wallace, clayborg
Differential Revision: https://reviews.llvm.org/D84555
|
 | lldb/tools/lldb-vscode/syntaxes/arm64.disasm |
 | lldb/tools/lldb-vscode/syntaxes/arm.disasm |
 | lldb/tools/lldb-vscode/syntaxes/disassembly.json |
 | lldb/tools/lldb-vscode/package.json |
 | lldb/tools/lldb-vscode/syntaxes/x86.disasm |
 | lldb/tools/lldb-vscode/lldb-vscode.cpp |
Commit
f8fb7835d6a5e2a75d412e1482fc1c039efef1f0
by arsenm2GlobalISel: Add utilty for getting function argument live ins
Get the argument register and ensure there's a copy to the virtual register. AMDGPU and AArch64 have similarish code to get the livein value, and I also want to use this in multiple places.
This is a bit more aggressive about setting the register class than the original function, but that's probably OK.
I think we're missing a few verifier checks for function live ins. I noticed AArch64's calling convention code is not actually adding liveins to functions, only the entry block (which apparently might not matter that much?). There should probably be a verifier check that entry block live ins are also live into the function. We also might need a verifier check that the copy to the livein virtual register is in the entry block.
|
 | llvm/test/CodeGen/AArch64/GlobalISel/select-returnaddress-liveins.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-call.ll |
 | llvm/include/llvm/CodeGen/GlobalISel/Utils.h |
 | llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h |
 | llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-call-implicit-args.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-addrspacecast.mir |
 | llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp |
 | llvm/lib/CodeGen/GlobalISel/Utils.cpp |
Commit
ba3d84d82b750296c11e843365aa85962a561ad4
by Jonas Devlieghere[lldb/Test] Skip tests that try to get the remote environment
We don't support getting the remote environment. The gdb remote protocol has no packet for that.
|
 | lldb/test/API/python_api/sbenvironment/TestSBEnvironment.py |
 | lldb/test/API/python_api/sbplatform/TestSBPlatform.py |
Commit
89011fc3c965811bbc3b6a0770c9d94bb264ad3f
by arsenm2AMDGPU/GlobalISel: Select llvm.returnaddress
|
 | llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-returnaddress.mir |
 | llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp |
 | llvm/test/CodeGen/AMDGPU/returnaddress.ll |
Commit
65b6dbf9395f8c0b2560f7ffe8dac4b0b32dc2d4
by mtrofin[llvm][NFC] Moved implementation of TrainingLogger outside of its decl
Also renamed a method - printTensor - to print; and added comments.
|
 | llvm/lib/Analysis/DevelopmentModeInlineAdvisor.cpp |
Commit
486e84dfa4923ba506e715098699fc17aa7f9e40
by arsenm2AMDGPU/GlobalISel: Use live in helper function for returnaddress
|
 | llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp |
Commit
e8b7edafc3dd0ab85903eebdfdb3bb7cc2d66743
by Jonas Devlieghere[lldb/Test] Add @skipIfRemote decorator to TestProcessList.py
lldb-platform contains a very minimal support for the qfProcessInfo packet, only allowing the simplest query to get most of the testsuite running, and returning very little information about the matched processes.
|
 | lldb/test/API/commands/platform/process/list/TestProcessList.py |
Commit
09897b146a8a7cb934279e630c0027d5d4de7399
by kparzysz[RDF] Remove uses of RDFRegisters::normalize (deprecate)
This function has been reduced to an identity function for some time.
|
 | llvm/include/llvm/CodeGen/RDFRegisters.h |
 | llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp |
 | llvm/lib/CodeGen/RDFRegisters.cpp |
 | llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp |
Commit
4a47f1c4cedb497915bba14f5288708cedb62767
by efriedma[SelectionDAG][SVE] Support scalable vectors in getConstantFP()
Differential Revision: https://reviews.llvm.org/D85249
|
 | llvm/test/CodeGen/AArch64/sve-vector-splat.ll |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp |
Commit
f50b3ff02e3245b44b5452b409ca1df22e91be45
by aeubanks[Hexagon] Use InstSimplify instead of ConstantProp
This is the last remaining use of ConstantProp, migrate it to InstSimplify in the goal of removing ConstantProp.
Add -hexagon-instsimplify option to enable skipping of instsimplify in tests that can't handle the extra optimization.
Differential Revision: https://reviews.llvm.org/D85047
|
 | llvm/test/CodeGen/Hexagon/hvx-bitcast-v64i1.ll |
 | llvm/test/CodeGen/Hexagon/packetize-impdef-1.ll |
 | llvm/test/CodeGen/Hexagon/bit-bitsplit-regclass.ll |
 | llvm/test/CodeGen/Hexagon/autohvx/isel-setcc-pair.ll |
 | llvm/test/CodeGen/Hexagon/isel-simplify-crash.ll |
 | llvm/test/CodeGen/Hexagon/newvaluejump-kill.ll |
 | llvm/test/CodeGen/Hexagon/loop_correctness.ll |
 | llvm/test/CodeGen/Hexagon/store-vector-pred.ll |
 | llvm/test/CodeGen/Hexagon/vect/zext-v4i1.ll |
 | llvm/include/llvm/Transforms/Scalar.h |
 | llvm/test/CodeGen/Hexagon/autohvx/isel-qfalse.ll |
 | llvm/include/llvm/Transforms/Scalar/InstSimplifyPass.h |
 | llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp |
 | llvm/lib/Transforms/Scalar/InstSimplifyPass.cpp |
Commit
bf82ff61a6dbfec5295d9f24e6b66dcb9a038c6c
by Adrian PrantlTeach SROA to handle allocas with more than one dbg.declare.
It is technically legal for optimizations to create an alloca that is used by more than one dbg.declare, if one or both of them are inlined instances of aliasing variables.
Differential Revision: https://reviews.llvm.org/D85172
|
 | llvm/test/Transforms/SROA/dbg-inline.ll |
 | llvm/lib/Transforms/Scalar/SROA.cpp |
Commit
47fe1b63f449827e1171f944b07d0cbebad1de63
by kparzysz[RDF] Lower the sorting complexity in RDFLiveness::getAllReachingDefs
The sorting is needed, because reaching defs are (logically) ordered, but are not collected in that order. This change will break up the single call to std::sort into a series of smaller sorts, each of which should use a cheaper comparison function than the original.
|
 | llvm/lib/CodeGen/RDFLiveness.cpp |
Commit
f0f467aeecfc615a5055d8f2edd903996c11727e
by kparzysz[RDF] Cache register aliases in PhysicalRegisterInfo
This improves performance of PhysicalRegisterInfo::makeRegRef.
|
 | llvm/include/llvm/CodeGen/RDFRegisters.h |
 | llvm/lib/CodeGen/RDFRegisters.cpp |
Commit
4b25f672998fde5cc5bb02411e9268b2bb35655f
by kparzysz[RDF] Really remove remaining uses of PhysicalRegisterInfo::normalize
|
 | llvm/lib/CodeGen/RDFLiveness.cpp |
 | llvm/lib/CodeGen/RDFGraph.cpp |
Commit
00602ee7ef0bf6c68d690a2bd729c12b95c95c99
by yhsBPF: simplify IR generation for __builtin_btf_type_id()
This patch simplified IR generation for __builtin_btf_type_id(). For __builtin_btf_type_id(obj, flag), previously IR builtin looks like if (obj is a lvalue) llvm.bpf.btf.type.id(obj.ptr, 1, flag) !type else llvm.bpf.btf.type.id(obj, 0, flag) !type The purpose of the 2nd argument is to differentiate __builtin_btf_type_id(obj, flag) where obj is a lvalue vs. __builtin_btf_type_id(obj.ptr, flag)
Note that obj or obj.ptr is never used by the backend and the `obj` argument is only used to derive the type. This code sequence is subject to potential llvm CSE when - obj is the same .e.g., nullptr - flag is the same - metadata type is different, e.g., typedef of struct "s" and strust "s". In the above, we don't want CSE since their metadata is different.
This patch change IR builtin to llvm.bpf.btf.type.id(seq_num, flag) !type and seq_num is always increasing. This will prevent potential llvm CSE.
Also report an error if the type name is empty for remote relocation since remote relocation needs non-empty type name to do relocation against vmlinux.
Differential Revision: https://reviews.llvm.org/D85174
|
 | clang/test/CodeGen/builtin-bpf-btf-type-id.c |
 | clang/lib/CodeGen/CGBuiltin.cpp |
 | llvm/include/llvm/IR/IntrinsicsBPF.td |
 | llvm/test/CodeGen/BPF/BTF/builtin-btf-type-id.ll |
 | llvm/lib/Target/BPF/BPFPreserveDIType.cpp |
Commit
9521704553e8a330cfdf5a0611885680073178b2
by kparzysz[RDF] Use hash-based containers, cache extra information
This improves performance.
|
 | llvm/include/llvm/CodeGen/RDFRegisters.h |
 | llvm/lib/CodeGen/RDFLiveness.cpp |
 | llvm/include/llvm/CodeGen/RDFLiveness.h |
Commit
06d425737bd2953cbea319b5f1d4419b54870e6c
by kparzysz[RDF] Add operator<<(raw_ostream&, RegisterAggr), NFC
|
 | llvm/include/llvm/CodeGen/RDFRegisters.h |
 | llvm/lib/CodeGen/RDFRegisters.cpp |
Commit
7e9bab6ad51af1cab0c7457e4323166af3ac797c
by Adrian PrantlFix debugserver's qProcessInfo reporting of maccatalyst binaries
This patch is similar in spirit to https://reviews.llvm.org/D84480, but does the maccatalyst/macosx disambiguation. I also took the opportunity to factor out the gdb-remote packet log scanning used by several testcases into lldbutil functions.
rdar://problem/66059257
Differential Revision: https://reviews.llvm.org/D84576
|
 | lldb/test/API/macosx/macCatalystAppMacOSFramework/TestMacCatalystAppWithMacOSFramework.py |
 | lldb/test/API/macosx/macCatalyst/TestMacCatalyst.py |
 | lldb/tools/debugserver/source/RNBRemote.cpp |
 | lldb/test/API/macosx/macCatalystAppMacOSFramework/Makefile |
 | lldb/tools/debugserver/source/DNB.cpp |
 | lldb/test/API/macosx/macabi/foo.c |
 | lldb/test/API/macosx/simulator/TestSimulatorPlatform.py |
 | lldb/tools/debugserver/source/DNB.h |
 | lldb/test/API/macosx/macCatalyst/Makefile |
 | lldb/test/API/macosx/macabi/TestMacABImacOSFramework.py |
 | lldb/test/API/macosx/macCatalystAppMacOSFramework/foo.c |
 | lldb/packages/Python/lldbsuite/test/lldbutil.py |
 | lldb/test/API/macosx/macabi/foo.h |
 | lldb/tools/debugserver/source/MacOSX/MachProcess.h |
 | lldb/test/API/macosx/macCatalyst/main.c |
 | lldb/test/API/macosx/macabi/main.c |
 | lldb/test/API/macosx/macabi/Makefile |
 | lldb/tools/debugserver/source/MacOSX/MachProcess.mm |
 | lldb/test/API/macosx/macCatalystAppMacOSFramework/foo.h |
 | lldb/test/API/macosx/macCatalystAppMacOSFramework/main.c |
Commit
3f3303324eb2dc8a7e6d0ff867159c08479609de
by lebedev.ri[NFC][InstCombine] Negator: add tests for negation of left-shift by constant
|
 | llvm/test/Transforms/InstCombine/sub-of-negatible.ll |
Commit
8fd57b06a4fd04ada4f1d1c4124adc9998be1e5f
by lebedev.ri[NFC][InstCombine] Fix value names (s/%tmp/%i/) and autogenerate a few tests being affected by negator change
|
 | llvm/test/Transforms/InstCombine/sub-gep.ll |
 | llvm/test/Transforms/InstCombine/sub.ll |
 | llvm/test/Transforms/InstCombine/icmp.ll |
Commit
8aeb2fe13a4100b4c2e78d6ef75119304100cb1f
by lebedev.ri[InstCombine] Negator: -(X << C) --> X * (-1 << C)
This shows some regressions in tests, but they are all around GEP's, so i'm not really sure how important those are.
https://rise4fun.com/Alive/1Gn
|
 | llvm/test/Transforms/InstCombine/sub-gep.ll |
 | llvm/test/Transforms/InstCombine/sub.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineNegator.cpp |
 | llvm/test/Transforms/InstCombine/sub-of-negatible.ll |
 | llvm/test/Transforms/InstCombine/icmp.ll |
Commit
ac70b37a00dc02bd8923e0a4602d26be4581c570
by lebedev.riRevert "[InstCombine] Negator: -(X << C) --> X * (-1 << C)"
Breaks codegen tests, will recommit later.
This reverts commit 8aeb2fe13a4100b4c2e78d6ef75119304100cb1f.
|
 | llvm/test/Transforms/InstCombine/icmp.ll |
 | llvm/test/Transforms/InstCombine/sub.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineNegator.cpp |
 | llvm/test/Transforms/InstCombine/sub-gep.ll |
 | llvm/test/Transforms/InstCombine/sub-of-negatible.ll |
Commit
90b9c49ca6477a85e69018967c0a4d4d38ee6e72
by mtrofin[llvm] Expose type and element count-related APIs on TensorSpec
Added a mechanism to check the element type, get the total element count, and the size of an element.
Differential Revision: https://reviews.llvm.org/D85250
|
 | llvm/include/llvm/Analysis/Utils/TFUtils.h |
 | llvm/lib/Analysis/TFUtils.cpp |
 | llvm/unittests/Analysis/TFUtilsTest.cpp |
Commit
03a822f7a676089fca99aac02a057eab8474acc2
by Vitaly Buka[StackSafety,NFC] Add combined index test
|
 | llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll |
Commit
4c9ed3ed3d2fc7622acf5fc0d80ad20b44cf376a
by Fred Riss[lldb/testsuite] Skip 'frame diagnose' tests based on architecture
AFAICS, the feature only works on x86, skipping the tests has nothing to do with the target being iOS or remote.
|
 | lldb/test/API/commands/frame/diagnose/inheritance/TestDiagnoseInheritance.py |
 | lldb/test/API/commands/frame/diagnose/local-variable/TestLocalVariable.py |
 | lldb/test/API/commands/frame/diagnose/complicated-expression/TestComplicatedExpression.py |
 | lldb/test/API/commands/frame/diagnose/dereference-argument/TestDiagnoseDereferenceArgument.py |
 | lldb/test/API/commands/frame/diagnose/dereference-function-return/TestDiagnoseDereferenceFunctionReturn.py |
 | lldb/test/API/commands/frame/diagnose/dereference-this/TestDiagnoseDereferenceThis.py |
 | lldb/test/API/commands/frame/diagnose/array/TestArray.py |
 | lldb/test/API/commands/frame/diagnose/virtual-method-call/TestDiagnoseDereferenceVirtualMethodCall.py |
 | lldb/test/API/commands/frame/diagnose/bad-reference/TestBadReference.py |
Commit
0c7af8c83bd1acb0ca78f35ddde29b6fde4363a0
by maskray[X86] Optimize getImpliedDisabledFeatures & getImpliedEnabledFeatures after D83273
Previously the time complexity is O(|number of paths from the root to an implied feature| * CPU_FWATURE_MAX) where CPU_FEATURE_MAX is 92.
The number of paths can be large (theoretically exponential).
For an inline asm statement, there is a code path `clang::Parser::ParseAsmStatement -> clang::Sema::ActOnGCCAsmStmt -> ASTContext::getFunctionFeatureMap` leading to potentially many calls of getImpliedEnabledFeatures (41 for my -march=native case).
We should improve the performance a bit in case the number of inline asm statements is large (Linux kernel builds).
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D85257
|
 | llvm/lib/Support/X86TargetParser.cpp |
Commit
dd37b5a35b6923970fff1f9252a9f704981035dc
by richardPR46997: don't run clang-format on clang's testcases.
The formatting of the testcases matters and shouldn't be overwritten by a tool.
|
 | .arclint |