Commit
1e0500d4f7f19b3eae0f9b6f05591a40188d8d99
by carl.ritson[AMDGPU] Consider all SGPR uses as unique in constant bus verify
Fix the verifier so that overlapping SGPR operands are counted independently. We cannot assume that overlapping SGPR accesses only count as a single constant bus use. The exception is implicit uses which do not add to constant bus usage (only) when overlapping.
Reviewed By: rampitec
Differential Revision: https://reviews.llvm.org/D87748
|
 | llvm/test/CodeGen/AMDGPU/verify-constant-bus-violations.mir |
 | llvm/lib/Target/AMDGPU/SIInstrInfo.cpp |
Commit
714075f9c1ac50cde20e21e559f0e29fdc848bf1
by aeubanks[NFC] Remove unnecessary default constructors
|
 | llvm/include/llvm/Passes/StandardInstrumentations.h |
Commit
41d6669f1f16cc2f6cd0faf2c58447d1aa2072fa
by Pushpinder.Singh[GlobalISel][AMDGPU] Lower G_SMULH/G_UMULH
Reviewed By: arsenm, foad
Differential Revision: https://reviews.llvm.org/D85653
|
 | llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-smulh.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-umulh.mir |
 | llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h |
 | llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp |
Commit
63ace77962543f961f1d566dd1243b1fb37129ef
by jezng[lld-macho] Initial support for common symbols
On Unix, it is traditionally allowed to write variable definitions without initialization expressions (such as "int foo;") to header files. These are called tentative definitions.
The compiler creates common symbols when it sees tentative definitions. When linking the final binary, if there are remaining common symbols after name resolution is complete, the linker converts them to regular defined symbols in a `__common` section.
This diff implements most of that functionality, though we do not yet handle the case where there are both common and non-common definitions of the same symbol.
Reviewed By: #lld-macho, gkm
Differential Revision: https://reviews.llvm.org/D86909
|
 | lld/MachO/SymbolTable.h |
 | lld/test/MachO/common-symbol-coalescing.s |
 | lld/MachO/Symbols.h |
 | lld/MachO/SymbolTable.cpp |
 | lld/MachO/Driver.cpp |
 | lld/MachO/InputFiles.cpp |
 | lld/MachO/SyntheticSections.h |
Commit
cd7cb0c30305501982ba37b4905bb264b3539ad0
by jezng[lld-macho] Implement and test resolution of common symbols
Handle the case where there are both common and non-common definitions of the same symbol. Add a bunch of tests to ensure compatibility with ld64.
Reviewed By: #lld-macho, gkm
Differential Revision: https://reviews.llvm.org/D86910
|
 | lld/MachO/SymbolTable.cpp |
 | lld/test/MachO/common-symbol-resolution.s |
 | lld/test/MachO/nonweak-definition-override.s |
Commit
5d26bd3b75538515194d9e54c76e723524c1ac18
by jezng[lld-macho] Emit indirect symbol table
Makes it a little easier to read objdump's disassembly.
Reviewed By: #lld-macho, gkm
Differential Revision: https://reviews.llvm.org/D87178
|
 | lld/MachO/SyntheticSections.cpp |
 | lld/MachO/SyntheticSections.h |
 | lld/MachO/Writer.cpp |
 | lld/test/MachO/indirect-symtab.s |
 | lld/MachO/OutputSection.h |
 | lld/MachO/Symbols.h |
Commit
79412d6ca772c1c3913030cfef4b17f4afac110d
by jezng[lld-macho] Ignore `-mllvm` and its argument
Test Plan:
Reviewed By: #lld-macho, compnerd, MaskRay
Differential Revision: https://reviews.llvm.org/D87803
|
 | lld/test/MachO/silent-ignore.test |
 | lld/MachO/Options.td |
Commit
98f03908d07d06c74be5547cc0436bd89186cae2
by jezng[lld-macho] Support -weak_lx, -weak_library, -weak_framework
They cause their corresponding libraries / frameworks to be loaded via `LC_LOAD_WEAK_DYLIB` instead of `LC_LOAD_DYLIB`.
Reviewed By: #lld-macho, gkm
Differential Revision: https://reviews.llvm.org/D87929
|
 | lld/MachO/InputFiles.h |
 | lld/MachO/Driver.cpp |
 | lld/MachO/Writer.cpp |
 | lld/test/MachO/weak-import.s |
 | lld/MachO/Options.td |
Commit
ca8752a793f1576b666fb22a74278d44725138f1
by jezng[lld-macho][NFC] Refactor syslibroot / library path lookup
* Move computation of systemLibraryRoots into a separate function, so we can add more functionality to it without things becoming unwieldy * Have `getSearchPaths` and related functions return by value instead of by output parameter. NRVO should ensure that performance is unaffected.
Reviewed By: #lld-macho, smeenai
Differential Revision: https://reviews.llvm.org/D87959
|
 | lld/MachO/Driver.cpp |
Commit
9c70281497730a7dc7df43435bf570bef1108454
by jezng[lld-macho][NFC] Make `!= nullptr` implicit
|
 | lld/MachO/InputFiles.cpp |
 | lld/MachO/OutputSegment.cpp |
 | lld/MachO/Driver.cpp |
Commit
b27db2bb68163fa5bcb4a8f631a305eb5adb44e5
by andrew.litteken[IRSim] Adding structural comparison to IRSimilarityCandidate.
Just because sequences of instructions are similar to one another, doesn't mean they are doing the same thing.
This introduces a structural check for the IRSimilarityCandidate that compares two IRSimilarityCandidates against one another, and in each instruction creates a mapping between the operands and results, or checks that the existing mapping is valid. If this check passes, it means we have structurally similar IRSimilarityCandidates.
Tests for whether the candidates are found in unittests/Analysis/IRSimilarityIdentifierTest.cpp.
|
 | llvm/lib/Analysis/IRSimilarityIdentifier.cpp |
 | llvm/include/llvm/Analysis/IRSimilarityIdentifier.h |
 | llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp |
Commit
0a8e097e72dfc148df1d9345aba52e75cdc5aa50
by andrew.littekenRevert "[IRSim] Adding structural comparison to IRSimilarityCandidate."
This reverts commit b27db2bb68163fa5bcb4a8f631a305eb5adb44e5.
|
 | llvm/include/llvm/Analysis/IRSimilarityIdentifier.h |
 | llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp |
 | llvm/lib/Analysis/IRSimilarityIdentifier.cpp |
Commit
d1aa143aa84e20a8cdef24a0b5ccf70941884534
by andrew.litteken[IRSim] Adding structural comparison to IRSimilarityCandidate.
Just because sequences of instructions are similar to one another, doesn't mean they are doing the same thing.
This introduces a structural check for the IRSimilarityCandidate that compares two IRSimilarityCandidates against one another, and in each instruction creates a mapping between the operands and results, or checks that the existing mapping is valid. If this check passes, it means we have structurally similar IRSimilarityCandidates.
Tests for whether the candidates are found in unittests/Analysis/IRSimilarityIdentifierTest.cpp.
Recommit of: b27db2bb68163fa5bcb4a8f631a305eb5adb44e5 for Differential URL.
Differential Revision: https://reviews.llvm.org/D86971
|
 | llvm/include/llvm/Analysis/IRSimilarityIdentifier.h |
 | llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp |
 | llvm/lib/Analysis/IRSimilarityIdentifier.cpp |
Commit
6b136b19cbe4e96adea63b75f1f2f76ec25c708e
by amy.kwan1[Power10] Implement custom codegen for the vec_replace_elt and vec_replace_unaligned builtins.
This patch implements custom codegen for the vec_replace_elt and vec_replace_unaligned builtins.
These builtins map to the @llvm.ppc.altivec.vinsw and @llvm.ppc.altivec.vinsd intrinsics depending on the arguments. The main motivation for doing custom codegen for these intrinsics is because there are float and double versions of the builtin. Normally, the converting the float to an integer would be done via fptoui in the IR. This is incorrect as fptoui truncates the value and we must ensure the value is not truncated. Therefore, we provide custom codegen to utilize bitcast instead as bitcasts do not truncate.
Differential Revision: https://reviews.llvm.org/D83500
|
 | clang/test/CodeGen/builtins-ppc-p10vector.c |
 | clang/lib/Headers/altivec.h |
 | clang/lib/Sema/SemaChecking.cpp |
 | clang/test/CodeGen/builtins-ppc-vec-ins-error.c |
 | clang/lib/CodeGen/CGBuiltin.cpp |
 | clang/include/clang/Basic/BuiltinsPPC.def |