Commit
35b65be041127db9fe23d3128a004c888893cbae
by ntv[mlir][Vector] Add transformation + pattern to split 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 = vector.transfer_read %view[...], %pad : memref<A...>, vector<...> %3 = vector.type_cast %extra_alloc : memref<...> to memref<vector<...>> store %2, %3[] : memref<vector<...>> %4 = 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.
Differential Revision: https://reviews.llvm.org/D84631
|
 | mlir/test/Dialect/Vector/vector-transfer-full-partial-split.mlir |
 | mlir/test/lib/Transforms/TestVectorTransforms.cpp |
 | mlir/include/mlir/Dialect/Vector/VectorTransforms.h |
 | mlir/include/mlir/Interfaces/VectorInterfaces.td |
 | mlir/lib/Dialect/Vector/VectorTransforms.cpp |
Commit
98db27711d86d4085db4a4a8ff68f8baa1b094ef
by flo[LV] Do not check widening decision for instrs outside of loop.
No widening decisions will be computed for instructions outside the loop. Do not try to get a widening decision. The load/store will be just a scalar load, so treating at as normal should be fine I think.
Fixes PR46950.
Reviewed By: dmgreen
Differential Revision: https://reviews.llvm.org/D85087
|
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
 | llvm/test/Transforms/LoopVectorize/AArch64/pr46950-load-cast-context-crash.ll |
Commit
18d4069503e729442158476960a797df963cf293
by l.lunakfix lldb test on lib64 systems
Differential revision: https://reviews.llvm.org/D85096
|
 | lldb/unittests/Expression/ClangParserTest.cpp |
Commit
6d47431d7eeed44ae46dd1e58cf5d04e9210c048
by julian.gross[mlir] Extended Buffer Assignment to support AllocaOps.
Added support for AllocaOps in Buffer Assignment.
Differential Revision: https://reviews.llvm.org/D85017
|
 | mlir/lib/Transforms/BufferPlacement.cpp |
 | mlir/test/Transforms/buffer-placement.mlir |
Commit
d919ae9df8721a56c8457fd5f9cfd50a71c87262
by grimar[yaml2obj] - Add a support for "<none>" value for all optional fields.
It implements an approach suggested in the D84398 thread.
With it the following:
``` Sections: - Name: .bar Type: SHT_PROGBITS Offset: [[MACRO=<none>]] ```
works just like the `Offset` key was not specified. It is useful for tests that want to have a default value for a field and to have a way to override it at the same time.
Differential revision: https://reviews.llvm.org/D84526
|
 | llvm/test/tools/yaml2obj/ELF/none-value.yaml |
 | llvm/include/llvm/Support/YAMLTraits.h |
Commit
d76057c1fe6a368e9e422cf586e09fba827c96e1
by kadircetAdd document outline symbols from unnamed contexts, e.g. extern "C".
It is necessary to traverse children of unnamed declaration contexts to get symbols which are currently missing in document outline, e.g.:
extern "C" { void foo(); }
Reviewed By: kadircet
Differential Revision: https://reviews.llvm.org/D84839
|
 | clang-tools-extra/clangd/unittests/FindSymbolsTests.cpp |
 | clang-tools-extra/clangd/FindSymbols.cpp |
Commit
7e32797552c69155676e45ec7d39f948779daa92
by grimar[llvm-readobj] - Don't call `unwrapOrErr` in `findSectionByName`.
We have a `findSectionByName` helper that tries to find a section by it name. It is used in a few places, but never tested.
I'd like to reuse this helper for a different place. For this, I've changed it to return Expected<> and now it doesn't use `unwrapOrErr` anymore. It also now a member of Dumper class and might report warnings.
Differential revision: https://reviews.llvm.org/D84651
|
 | llvm/tools/llvm-readobj/ELFDumper.cpp |
 | llvm/test/tools/llvm-readobj/ELF/mips-abiflags.test |
 | llvm/test/tools/llvm-readobj/ELF/mips-reginfo.test |
 | llvm/test/tools/llvm-readobj/ELF/mips-options-sec.test |
 | llvm/test/tools/llvm-readobj/ELF/mips-got.test |
Commit
87de54dbb6efa0fc5e304f94b350a39066bc2759
by kadircet[clang][Tooling] Fix addTargetAndModeForProgramName to use correct flag names
The logic was using incorrect flag versions. For example: - `-target=` can't be a prefix, it must be `--target=`. - `--driver-mode` can't appear on its own, value must be attached to it.
While fixing those, also changes the append logic to make use of new `--target=X` format instead of the legacy `-target X` version.
In addition to that makes use of the OPTTable instead of hardcoded strings to make sure helper also gets updated if clang's options are modified.
Differential Revision: https://reviews.llvm.org/D85076
|
 | clang/unittests/Tooling/ToolingTest.cpp |
 | clang/lib/Tooling/Tooling.cpp |
Commit
895878f4568d3c5fe470bd811c2dfdbbe285e5aa
by Alexander.Richardson[asan][tsan] Mark tests failing with debug checks as XFAIL
See https://llvm.org/PR46862. This does not fix the underlying issue but at least it allows me to run check-all again without having to disable building compiler-rt.
Reviewed By: #sanitizers, vitalybuka
Differential Revision: https://reviews.llvm.org/D84650
|
 | compiler-rt/test/asan/TestCases/Linux/activation-options.cpp |
 | compiler-rt/test/sanitizer_common/TestCases/Posix/illegal_write_test.cpp |
 | compiler-rt/test/sanitizer_common/TestCases/Linux/signal_line.cpp |
 | compiler-rt/test/asan/TestCases/Linux/odr-violation.cpp |
 | compiler-rt/test/asan/TestCases/Linux/odr-vtable.cpp |
 | compiler-rt/test/sanitizer_common/TestCases/Posix/sanitizer_set_report_fd_test.cpp |
 | compiler-rt/test/asan/TestCases/Posix/start-deactivated.cpp |
 | compiler-rt/test/sanitizer_common/TestCases/Linux/allow_user_segv.cpp |
 | compiler-rt/test/sanitizer_common/TestCases/Posix/dedup_token_length_test.cpp |
 | compiler-rt/test/sanitizer_common/TestCases/Posix/illegal_read_test.cpp |
 | compiler-rt/test/asan/TestCases/handle_noreturn_bug.cpp |
Commit
03affa8099cba3876aca209daa213dcb880bc34a
by Alexander.Richardson[msan] Compile the libatomic.c test with a C compiler
Otherwise we end up compiling in C++ mode and on FreeBSD /usr/include/stdatomic.h is not compatible with C++ since it uses _Bool.
Reviewed By: guiand, eugenis, vitalybuka, emaste
Differential Revision: https://reviews.llvm.org/D84510
|
 | compiler-rt/test/msan/libatomic.c |
Commit
d23b15cc160775dcc5b6e2c2d7706a67be1225f1
by Alexander.RichardsonExecute llvm-lit with the python found by CMake by default
The check-* targets run ${Python3_EXECUTABLE} $BUILD/bin/llvm-lit, but running `./bin/llvm-lit $ARGS` from the build directory currently always uses "python" to run llvm-lit. On most systems this will be python2.7 even if we found python3 at CMake time.
Reviewed By: compnerd
Differential Revision: https://reviews.llvm.org/D84625
|
 | llvm/utils/gn/secondary/llvm/utils/llvm-lit/BUILD.gn |
 | llvm/utils/llvm-lit/llvm-lit.in |
Commit
c3339e3e921c2e064936c30f5eacba4e41c432da
by Tatyana Krasnukha[cmake] Make MSVC generate appropriate __cplusplus macro definition
Differential Revision: https://reviews.llvm.org/D84023
|
 | llvm/cmake/modules/AddLLVM.cmake |
 | llvm/utils/unittest/CMakeLists.txt |
 | llvm/cmake/modules/HandleLLVMOptions.cmake |
Commit
e97c693bb0ece2d9a2b0db75034927405fe3bfdf
by Tatyana Krasnukha[lldb/Process/Windows] Attempting to kill exited/detached process in not an error
The lldb test-suite on Windows reports a 'CLEANUP ERROR' when attempting to kill an exited/detached process. This change makes ProcessWindows consistent with the other processes which only log the error. After this change a number of 'CLEANUP ERROR' messages are now removed.
Differential Revision: https://reviews.llvm.org/D84957
|
 | lldb/source/Plugins/Process/Windows/Common/ProcessDebugger.cpp |
Commit
d1007478f19d3ff19a2ecd5ecb04b467933041e6
by Alexander.RichardsonFix update_cc_test_checks.py --llvm-bin after D78478
Not passing --clang would result in a python exception after this change: (TypeError: expected str, bytes or os.PathLike object, not NoneType) because the --clang argument default was only being populated in the initial argument parsing pass but not later on. Fix this by adding an argparse callback to set the default values.
Reviewed By: vitalybuka, MaskRay
Differential Revision: https://reviews.llvm.org/D84511
|
 | llvm/utils/UpdateTestChecks/common.py |
 | llvm/utils/update_cc_test_checks.py |
Commit
2bca784ab840a9fe0f4e508cece9cbcce95838bb
by grimar[llvm-readobj] - Massive test cases cleanup.
This patch does the following: 1) Starts using YAML macro to reduce the number of YAML documents in tests. 2) Adds `#` before 'RUN'/`CHECK` lines in a few tests where it is missing. 3) Removes unused YAML keys. 4) Starts using `ENTSIZE=<none>` to simplify tests (see D84526). 5) Removes trailing white spaces in a few places.
Differential revision: https://reviews.llvm.org/D85013
|
 | llvm/test/tools/llvm-readobj/ELF/broken-dynamic-reloc.test |
 | llvm/test/tools/llvm-readobj/ELF/packed-relocs.test |
 | llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-mips.test |
 | llvm/test/tools/llvm-readobj/ELF/merged.test |
 | llvm/test/tools/llvm-readobj/ELF/gnu-sections.test |
 | llvm/test/tools/llvm-readobj/ELF/no-action.test |
 | llvm/test/tools/llvm-readobj/ELF/dyn-symbols.test |
 | llvm/test/tools/llvm-readobj/ELF/file-header-os-abi.test |
 | llvm/test/tools/llvm-readobj/ELF/amdgpu-elf-definitions.test |
 | llvm/test/tools/llvm-readobj/ELF/needed-libs.test |
 | llvm/test/tools/llvm-readobj/ELF/broken-dynsym-link.test |
 | llvm/test/tools/llvm-readobj/ELF/hidden-versym.test |
 | llvm/test/tools/llvm-readobj/ELF/mips-options.test |
 | llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-i386.test |
 | llvm/test/tools/llvm-readobj/ELF/dynamic-reloc-no-section-headers.test |
 | llvm/test/tools/llvm-readobj/ELF/dynamic-table-dtnull.s |
 | llvm/test/tools/llvm-readobj/ELF/mips-got-overlapped.test |
 | llvm/test/tools/llvm-readobj/ELF/gnu-phdrs.test |
 | llvm/test/tools/llvm-readobj/ELF/dynamic-tags.test |
 | llvm/test/tools/llvm-readobj/ELF/gnu-notes.test |
 | llvm/test/tools/llvm-readobj/ELF/gnu-section-mapping-no-phdrs.test |
 | llvm/test/tools/llvm-readobj/ELF/verdef-invalid.test |
 | llvm/test/tools/llvm-readobj/ELF/file-types.test |
 | llvm/test/tools/llvm-readobj/ELF/dependent-libraries.test |
 | llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-x64.test |
 | llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-arm.test |
 | llvm/test/tools/llvm-readobj/ELF/versym-invalid.test |
 | llvm/test/tools/llvm-readobj/ELF/mips-rld-map-rel.test |
 | llvm/test/tools/llvm-readobj/ELF/file-header-abi-version.test |
 | llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-mips64.test |
 | llvm/test/tools/llvm-readobj/ELF/sections.test |
 | llvm/test/tools/llvm-readobj/ELF/types.test |
 | llvm/test/tools/llvm-readobj/ELF/pt-gnu-property.test |
 | llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-aarch64.test |
 | llvm/test/tools/llvm-readobj/ELF/reloc-symbol-with-versioning.test |
 | llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-lanai.test |
 | llvm/test/tools/llvm-readobj/ELF/call-graph-profile.test |
 | llvm/test/tools/llvm-readobj/ELF/gnu-section-mapping.test |
Commit
3de93230010fc8fbb76d5cb6bde709f4ed296a1c
by grimar[llvm-readobj] - Don't stop dumping when the name of a relocation section can't be read.
This removes undesired `unwrapOrError` calls from printRelocations() methods.
Differential revision: https://reviews.llvm.org/D84408
|
 | llvm/test/tools/llvm-readobj/ELF/sections-no-section-header-string-table.test |
 | llvm/tools/llvm-readobj/ELFDumper.cpp |
 | llvm/test/tools/llvm-readobj/ELF/relocations.test |
 | llvm/test/tools/llvm-readobj/ELF/invalid-shstrndx.test |
 | llvm/test/tools/llvm-readobj/ELF/dependent-libraries.test |
 | llvm/test/Object/invalid.test |
Commit
76c3ec814dec8eef020490b5d3a640d873b5918b
by kadircet[clang][Tooling] Optimize addTargetAndMode in case of invalid modes
This skips searching for `target` related flags in the existing args if we don't have a valid target to insert.
Depends on D85076
Differential Revision: https://reviews.llvm.org/D85077
|
 | clang/lib/Tooling/Tooling.cpp |
Commit
86e1b73507f3738f10eefb580d7c5e9adf17c6c0
by dpetrov[analyzer] Simplify function SVal::getAsSymbolicExpression and similar ones
Summary: Simplify functions SVal::getAsSymbolicExpression SVal::getAsSymExpr and SVal::getAsSymbol. After revision I concluded that `getAsSymbolicExpression` and `getAsSymExpr` repeat functionality of `getAsSymbol`, thus them can be removed.
Fix: Remove functions SVal::getAsSymbolicExpression and SVal::getAsSymExpr.
Differential Revision: https://reviews.llvm.org/D85034
|
 | clang/lib/StaticAnalyzer/Core/SValBuilder.cpp |
 | clang/lib/StaticAnalyzer/Core/SVals.cpp |
 | clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp |
 | clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp |
 | clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp |
 | clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp |
 | clang/lib/StaticAnalyzer/Core/ProgramState.cpp |
 | clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h |
 | clang/lib/StaticAnalyzer/Checkers/Taint.cpp |
 | clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp |
Commit
21fa82d5c63c30c745d5181889329084ac6d2767
by dpetrov[analyzer] Introduce minor refactoring of SVal::getSubKind function
Summary: `BaseMask` occupies the lowest bits. Effect of applying the mask is neutralized by right shift operation, thus making it useless.
Fix: Remove a redundant bitwise operation.
Differential Revision: https://reviews.llvm.org/D85026
|
 | clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h |
Commit
5191f70ab1f4b0b9225b2e9e11584e199172418c
by hokein.wu[clangd] Support new/deleta operator in TargetFinder.
Differential Revision: https://reviews.llvm.org/D85028
|
 | clang-tools-extra/clangd/FindTarget.cpp |
 | clang-tools-extra/clangd/XRefs.cpp |
 | clang-tools-extra/clangd/unittests/FindTargetTests.cpp |
Commit
18279a54b5d3382874924d6a3c7775b7e22598dc
by nicholas.guy[ARM] Fix IT block generation after Thumb2SizeReduce with -Oz
Fixes a regression caused by D82439, in which IT blocks were no longer being generated when -Oz is present. This was due to the CPSR register being marked as dead, while this case was not accounted for.
Differential Revision: https://reviews.llvm.org/D83667
|
 | llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp |
 | llvm/test/CodeGen/Thumb2/constant-hoisting.ll |
Commit
ed0e4c70c99d3afd87fb202ab03bda40512677e7
by simon.tatham[clang][ARM] Add name-mangling test for direct __fp16 arguments.
`clang/test/CodeGenCXX/fp16-mangle.cpp` tests pointers to __fp16, but if you give the `-fallow-half-arguments-and-returns` option, then clang can also leave an __fp16 unmodified as a function argument or return type. This regression test checks the name-mangling of that.
Reviewed By: miyuki
Differential Revision: https://reviews.llvm.org/D85010
|
 | clang/test/CodeGenCXX/fp16-mangle-arg-return.cpp |
Commit
b57ea8ef2a8a07ffd2c05389da3f759caaa49f3e
by spatel[InstCombine] add tests for xor-of-ors; NFC
|
 | llvm/test/Transforms/InstCombine/xor.ll |
Commit
2265d01f2a5bd153959701e22f5be2a40e1674a3
by spatel[InstCombine] reduce xor-of-or's bitwise logic (PR46955)
I tried to use m_Deferred() on this, but didn't find a clean way to do that.
http://bugs.llvm.org/PR46955
https://alive2.llvm.org/ce/z/2h6QTq
|
 | llvm/test/Transforms/InstCombine/xor.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp |
Commit
d8ef1d1251e3c0e11894ed82904dbab5e41c5711
by Matthew.ArsenaultAMDGPU/GlobalISel: Fix selecting broken copies for s32->s64 anyext
These should probably not be legal in the first place, but that might also be a pain.
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-anyext.mir |
 | llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp |
Commit
99a971cadff7832a846394462c39a74aac64325d
by llvm-dev[X86][SSE] Start shuffle combining from ANY_EXTEND_VECTOR_INREG on SSE targets
We already do this on AVX (+ for ZERO_EXTEND_VECTOR_INREG), but this enables it for all SSE targets - we attempted something similar back at rL357057 but hit issues with the ZERO_EXTEND_VECTOR_INREG handling (PR41249).
I'm still looking at the vector-mul.ll regression - which is due to 32-bit targets performing the load as a f64, resulting in the shuffle combiner thinking it has to create a shuffle in the float domain.
|
 | llvm/test/CodeGen/X86/vector-mul.ll |
 | llvm/test/CodeGen/X86/combine-pmuldq.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/promote-cmp.ll |
 | llvm/test/CodeGen/X86/vector-trunc-math.ll |
 | llvm/test/CodeGen/X86/vector-idiv-udiv-128.ll |
 | llvm/test/CodeGen/X86/mulvi32.ll |
 | llvm/test/CodeGen/X86/pmul.ll |
 | llvm/test/CodeGen/X86/vector-reduce-mul.ll |
Commit
fd63e46941fc48d4cc777ef94e185637898d0adb
by Matthew.ArsenaultAMDGPU/GlobalISel: Apply load bitcast to s.buffer.load intrinsic
Should also apply this to the non-scalar buffer loads.
|
 | llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.s.buffer.load.mir |
 | llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h |
Commit
f19a9be385ef782140d1e551e03553daa79d1bc1
by spatelRevert "[InstCombine] reduce xor-of-or's bitwise logic (PR46955)"
This reverts commit 2265d01f2a5bd153959701e22f5be2a40e1674a3. Seeing bot failures after this change like: http://lab.llvm.org:8011/builders/clang-cmake-x86_64-sde-avx512-linux/builds/42586
|
 | llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp |
 | llvm/test/Transforms/InstCombine/xor.ll |
Commit
1782fbbc69482e76eee8af203694bb771a44c921
by Matthew.ArsenaultGlobalISel: Reimplement moreElementsVectorDst
Use pad with undef and unmerge with unused results. This is annoyingly similar to several other places in LegalizerHelper, but they're all slightly different.
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fsin.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-global.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fadd.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fcos.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fsub.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.image.load.2d.d16.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-smax.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-freeze.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-implicit-def.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-constant.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-phi.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fminnum.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-xor.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fsqrt.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-insert.mir |
 | llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h |
 | llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.s.buffer.load.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-local.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.buffer.load.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fmaxnum.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-uaddsat.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-umin.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fpext.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-saddsat.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-smin.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ffloor.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-lshr.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ssubsat.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-or.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fdiv.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-unmerge-values.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.s.buffer.load.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-extract.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fabs.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fcanonicalize.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-and.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fneg.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ashr.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-private.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-flat.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-usubsat.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fma.mir |
 | llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-select.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-umax.mir |
Commit
2414bab5d7d6b5b247f3f3b97140a2673fa8414b
by Matthew.ArsenaultAMDGPU/GlobalISel: Remove old hacks for boolean selection
There were various hacks used to try to avoid making s1 SGPR vs. s1 VCC ambiguous after constraining the register before we had a strategy to deal with this. This also attempted to handle undef operands, which are now illegal gMIR.
|
 | llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-brcond.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-phi.mir |
 | llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp |
Commit
42a9f6c554e378f1c010375eca30f04296aa0052
by Matthew.ArsenaultGlobalISel: Handle arbitrary FewerElementsVector for G_IMPLICIT_DEF
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-phi.mir |
 | llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-implicit-def.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/legalize-freeze.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/legalize-itofp.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-freeze.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/legalize-undef.mir |
Commit
0c40af6b594f6eb2dcd43cdb2bc2f4584ec8ca15
by zinenko[mlir] First-party modeling of LLVM types
The current modeling of LLVM IR types in MLIR is based on the LLVMType class that wraps a raw `llvm::Type *` and delegates uniquing, printing and parsing to LLVM itself. This model makes thread-safe type manipulation hard and is being progressively replaced with a cleaner MLIR model that replicates the type system. Introduce a set of classes reflecting the LLVM IR type system in MLIR instead of wrapping the existing types. These are currently introduced as separate classes without affecting the dialect flow, and are exercised through a test dialect. Once feature parity is reached, the old implementation will be gradually substituted with the new one.
Depends On D84171
Reviewed By: rriddle
Differential Revision: https://reviews.llvm.org/D84339
|
 | mlir/lib/Parser/DialectSymbolParser.cpp |
 | mlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp |
 | mlir/test/lib/Dialect/CMakeLists.txt |
 | mlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp |
 | mlir/test/Dialect/LLVMIR/types-invalid.mlir |
 | mlir/lib/Dialect/LLVMIR/IR/TypeDetail.h |
 | mlir/lib/Dialect/LLVMIR/CMakeLists.txt |
 | mlir/test/lib/Dialect/LLVMIR/CMakeLists.txt |
 | mlir/test/Dialect/LLVMIR/types.mlir |
 | mlir/tools/mlir-opt/mlir-opt.cpp |
 | mlir/test/lib/Dialect/LLVMIR/LLVMTypeTestDialect.cpp |
 | mlir/include/mlir/IR/DialectImplementation.h |
 | mlir/tools/mlir-opt/CMakeLists.txt |
 | mlir/include/mlir/Dialect/LLVMIR/LLVMTypes.h |
Commit
2d8ca4ae2b1a512d31566e042a4bf4fa1043def9
by Xing[DWARFYAML] Offsets should be omitted when the OffsetEntryCount is 0.
The offsets field should be omitted when the 'OffsetEntryCount' entry is specified to be 0.
Reviewed By: jhenderson
Differential Revision: https://reviews.llvm.org/D85006
|
 | llvm/lib/ObjectYAML/DWARFEmitter.cpp |
 | llvm/test/tools/yaml2obj/ELF/DWARF/debug-rnglists.yaml |
Commit
23693ffc3ba6146a22cd1e9373e25dc1e1a41a17
by spatel[InstCombine] reduce xor-of-or's bitwise logic (PR46955); 2nd try
The 1st try at this (rG2265d01f2a5b) exposed what looks like unspecified behavior in C/C++ resulting in test variations.
The arguments to BinaryOperator::CreateAnd() were both IRBuilder function calls, and the order in which they execute determines the order of the new instructions in the IR. But the order of function arg evaluation is not fixed by the rules of C/C++, so depending on compiler config, the test would fail because the test expected a single fixed ordering of instructions.
Original commit message: I tried to use m_Deferred() on this, but didn't find a clean way to do that.
http://bugs.llvm.org/PR46955
https://alive2.llvm.org/ce/z/2h6QTq
|
 | llvm/test/Transforms/InstCombine/xor.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp |
Commit
1c2777f585fc0e5e8f853dab455c62ae50298f9a
by okuraofvegetable[NFC][APInt][DenseMapInfo] Move DenseMapAPIntKeyInfo into DenseMap.h as DenseMapInfo<APInt>
`DenseMapAPIntKeyInfo` is now located in `lib/IR/LLVMContextImpl.h`. Moved it into `include/ADT/DenseMapInfo.h` to use it.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D85131
|
 | llvm/include/llvm/ADT/DenseMapInfo.h |
 | llvm/lib/IR/LLVMContextImpl.h |
 | llvm/include/llvm/ADT/APInt.h |
Commit
08649d4321bb73c888e03ac316f8ccab600a9533
by Xing[DWARFYAML] Implement the .debug_loclists section.
This patch implements the .debug_loclists section. There are only two DWARF expressions are implemented in this patch (DW_OP_consts, DW_OP_stack_value). We will implement more in the future.
The YAML description of the .debug_loclists section is:
``` debug_loclists: - Format: DWARF32 ## Optional Length: 0x1234 ## Optional Version: 5 ## Optional (5 by default) AddressSize: 8 ## Optional SegmentSelectorSize: 0 ## Optional (0 by default) OffsetEntryCount: 1 ## Optional Offsets: [ 1 ] ## Optional Lists: - Entries: - Operator: DW_LLE_startx_endx Values: [ 0x1234, 0x4321 ] DescriptorsLength: 0x1234 ## Optional Descriptors: - Operator: DW_OP_consts Values: [ 0x1234 ] ```
Reviewed By: jhenderson
Differential Revision: https://reviews.llvm.org/D84234
|
 | llvm/lib/ObjectYAML/DWARFEmitter.cpp |
 | llvm/include/llvm/ObjectYAML/DWARFEmitter.h |
 | llvm/lib/ObjectYAML/DWARFYAML.cpp |
 | llvm/test/tools/yaml2obj/ELF/DWARF/debug-loclists.yaml |
 | llvm/include/llvm/ObjectYAML/DWARFYAML.h |
Commit
10851f9db5f7d163135374b8dfc945e1b4a9c7d6
by vsavchenko[analyzer][tests] Fix SATest update functionality
Summary: Not all projects in the project map file might have newer results for updating, we should handle this situation gracefully.
Additionally, not every user of the test system would want storing reference results in git. For this reason, git functionality is now optional.
Differential Revision: https://reviews.llvm.org/D84303
|
 | clang/utils/analyzer/SATest.py |
 | clang/utils/analyzer/SATestUpdateDiffs.py |
Commit
31c7a2fd5c9a5b980768bd06354517d99ac8fe87
by mcinally[FPEnv] Don't transform FSUB(-0,X)->FNEG(X) in SelectionDAGBuilder.
This patch stops unconditionally transforming FSUB(-0,X) into an FNEG(X) while building the DAG. There is also one small change to handle the new FSUB(-0,X) similarly to FNEG(X) in the AMDGPU backend.
Differential Revision: https://reviews.llvm.org/D84056
|
 | llvm/test/CodeGen/AMDGPU/fneg-combines.ll |
 | llvm/test/CodeGen/AMDGPU/fcanonicalize-elimination.ll |
 | llvm/test/CodeGen/AMDGPU/fcanonicalize.ll |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h |
 | llvm/test/CodeGen/AMDGPU/fdiv32-to-rcp-folding.ll |
 | llvm/test/CodeGen/AMDGPU/set-dx10.ll |
 | llvm/test/CodeGen/AMDGPU/fmuladd.f16.ll |
 | llvm/test/CodeGen/AMDGPU/fcanonicalize.f16.ll |
 | llvm/test/CodeGen/AMDGPU/fmuladd.f32.ll |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp |
 | llvm/test/CodeGen/AMDGPU/selectcc-opt.ll |