Commit
5011d43108d1de30a056d66e73fa19062e0e84b7
by ecaldasMigrate Declarators to use the List API
After this change all nodes that have a delimited-list are using the `List` API.
Implementation details: Let's look at a declaration with multiple declarators: `int a, b;` To generate a declarator list node we need to have the range of declarators: `a, b`: However, the `ClangAST` actually stores them as separate declarations: `int a ;` `int b;` We solve that by appropriately marking the declarators on each separate declaration in the `ClangAST` and then for the final declarator `int b`, shrinking its range to fit to the already marked declarators.
Differential Revision: https://reviews.llvm.org/D88403
|
 | clang/lib/Tooling/Syntax/Nodes.cpp |
 | clang/include/clang/Tooling/Syntax/Nodes.h |
 | clang/lib/Tooling/Syntax/BuildTree.cpp |
 | clang/unittests/Tooling/Syntax/BuildTreeTest.cpp |
 | clang/unittests/Tooling/Syntax/SynthesisTest.cpp |
 | clang/lib/Tooling/Syntax/Synthesis.cpp |
Commit
30d07b14a274f075a01d201ad59723ca1a4a9b57
by sam.mccallRevert "[clangd] clangd --check: standalone diagnosis of common problems"
This reverts commit 79fbcbff41734e3d07e6200d33c3e40732dfae6a.
The fallback command fails to parse for the test files if there's no compile_commands.json in the tree.
|
 | clang-tools-extra/clangd/tool/ClangdMain.cpp |
 | clang-tools-extra/clangd/test/check.test |
 | clang-tools-extra/clangd/test/check-fail.test |
 | clang-tools-extra/clangd/tool/Check.cpp |
 | clang-tools-extra/clangd/tool/CMakeLists.txt |
Commit
f6b1323bc680812e04904293854c356530985bcd
by sam.mccallReland [clangd] clangd --check: standalone diagnosis of common problems
This reverts commit 30d07b14a274f075a01d201ad59723ca1a4a9b57.
Test failures have (hopefully) been fixed.
|
 | clang-tools-extra/clangd/test/check-fail.test |
 | clang-tools-extra/clangd/test/check.test |
 | clang-tools-extra/clangd/tool/CMakeLists.txt |
 | clang-tools-extra/clangd/tool/Check.cpp |
 | clang-tools-extra/clangd/tool/ClangdMain.cpp |
Commit
56d8a37216200a3312db277e4cf054b202b39ace
by llvmgnsyncbot[gn build] Port f6b1323bc68
|
 | llvm/utils/gn/secondary/clang-tools-extra/clangd/tool/BUILD.gn |
Commit
e20f4592297ba44644a8ec75b9d182a903cc0df3
by jay.foad[AMDGPU] Simplify getNumFlatOffsetBits. NFC.
Remove some checks that have already been done in the only caller.
|
 | llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp |
 | llvm/lib/Target/AMDGPU/SIInstrInfo.h |
 | llvm/lib/Target/AMDGPU/SIInstrInfo.cpp |
Commit
91b49fc2571c3d0ac33d447629cfb7789a7fde0d
by clementval[flang][openacc] Fix unparsing of combined construct (bug 47659)
This patch fixes the bug report in https://bugs.llvm.org/show_bug.cgi?id=47659
Reviewed By: sameeranjoshi
Differential Revision: https://reviews.llvm.org/D88597
|
 | flang/test/Parser/acc-unparse.f90 |
 | flang/lib/Parser/unparse.cpp |
Commit
79410ddb96d42b72b5a7081fd680a28ae760fd51
by Louis Dionne[libc++][ci] Add a configuration testing Apple's system library build
Differential Revision: https://reviews.llvm.org/D88650
|
 | libcxx/utils/ci/run-buildbot.sh |
 | libcxx/utils/ci/buildkite-pipeline.yml |
Commit
48c9e8244b6b8aeb6a4fd10dcf4c6995f1fec9a0
by meera.nakrani[ARM] Removed hasSideEffects from signed/unsigned saturates
Removed hasSideEffects from SSAT and USAT so that they are no longer marked as unpredictable.
Differential Revision: https://reviews.llvm.org/D88545
|
 | llvm/lib/Target/ARM/ARMInstrThumb2.td |
 | llvm/test/tools/llvm-mca/ARM/m4-int.s |
Commit
8c36eaf0377285acb89c319582d9666e60f42007
by michael.hliao[clang][opencl][codegen] Remove the insertion of `correctly-rounded-divide-sqrt-fp-math` fn-attr.
- `-cl-fp32-correctly-rounded-divide-sqrt` is already handled in a per-instruction manner by annotating the accuracy required. There's no need to add that fn-attr. So far, there's no in-tree backend handling that attr and that OpenCL specific option. - In case that out-of-tree backends are broken, this change could be reverted if those backends could not be fixed.
Differential Revision: https://reviews.llvm.org/D88424
|
 | clang/lib/CodeGen/CGCall.cpp |
 | clang/test/CodeGenOpenCL/amdgpu-attrs.cl |
 | clang/test/CodeGenOpenCL/fpmath.cl |
Commit
29ac9fae54c9cbd819ce400d42dd2e76bf5259ab
by llvm-dev[InstCombine] collectBitParts - convert to use PatterMatch matchers and avoid IntegerType casts.
Make sure we're using getScalarSizeInBits instead of cast<IntegerType> to get Type bit widths.
This is preliminary cleanup before we can start adding vector support to the bswap/bitreverse (element level) matching.
|
 | llvm/lib/Transforms/Utils/Local.cpp |
Commit
51e74e21aae8b4e885e23d3f15922a58bc173c34
by martin[AArch64] Remove a duplicate call to setHasWinCFI. NFCI.
The function already has a cleanup scope that calls the same whenever the function is exited. When reading the code, seeing that this return codepath has an explicit call while other return paths lack it is confusing.
In the hypothetical case of a function having a prologue that set the HasWinCFI flag in the MF, but the epilogue containing no WinCFI instructions, the HasWinCFI flag in the MF would end up reset back to false.
Differential Revision: https://reviews.llvm.org/D88636
|
 | llvm/lib/Target/AArch64/AArch64FrameLowering.cpp |
Commit
f4b9dfd9bc414a316d997a314b05ac7f9258a722
by martin[AArch64] Don't merge sp decrement into later stores when using WinCFI
This matches the corresponding existing case in AArch64LoadStoreOpt::findMatchingUpdateInsnForward.
Both cases could also be modified to check MBBI->getFlag(FrameSetup/FrameDestroy) instead of forbidding any optimization involving SP, but the effect is probably pretty much the same.
Differential Revision: https://reviews.llvm.org/D88541
|
 | llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp |
 | llvm/test/CodeGen/AArch64/arm64-windows-calls.ll |
Commit
45698ac0052ae5b1c5beb739636396a5b7263966
by usx[clangd] Split DecisionForest Evaluate() into one func per tree.
This allows us MSAN to instrument this function. Previous version is not instrumentable due to it shear volume.
Differential Revision: https://reviews.llvm.org/D88536
|
 | clang-tools-extra/clangd/quality/CompletionModelCodegen.py |
Commit
cb3fd715f324ff0f58dfeb7d08a88a05477cb0d5
by vyngReland rG4fcd1a8e6528:[llvm-exegesis] Add option to check the hardware support for a given feature before benchmarking.
This is mostly for the benefit of the LBR latency mode. Right now, it performs no checking. If this is run on non-supported hardware, it will produce all zeroes for latency.
Differential Revision: https://reviews.llvm.org/D85254
New change: Updated lit.local.cfg to use pass the right argument to llvm-exegesis to actually request the LBR mode.
Differential Revision: https://reviews.llvm.org/D88670
|
 | llvm/tools/llvm-exegesis/lib/Target.h |
 | llvm/tools/llvm-exegesis/lib/X86/X86Counter.cpp |
 | llvm/tools/llvm-exegesis/lib/X86/X86Counter.h |
 | llvm/tools/llvm-exegesis/lib/X86/Target.cpp |
 | llvm/test/tools/llvm-exegesis/X86/lbr/lit.local.cfg |
 | llvm/tools/llvm-exegesis/llvm-exegesis.cpp |
Commit
c6ea095b9756dff035aed27e7b5b44bf42d22462
by ravishankarm[mlir][Linalg] NFC : Move fusion on tensors to separate file.
Differential Revision: https://reviews.llvm.org/D88633
|
 | mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt |
Commit
dcb5b6dfbfb5dafb66797e8dba2f04eb76a153b7
by smeenai[runtimes] Remove TOOLCHAIN_TOOLS specialization
https://reviews.llvm.org/D88310 fixed the AIX issue in LLVMExternalProjectUtils, so we shouldn't need the workaround in the runtimes build anymore. I'm reverting it because it prevents the target-specific tool selection in LLVMExternalProjectUtils from taking effect, which we rely on for our runtimes builds.
Reviewed By: daltenty
Differential Revision: https://reviews.llvm.org/D88627
|
 | llvm/runtimes/CMakeLists.txt |
Commit
17640c5aac649c154959ca1075953f0d252a4a5b
by mtrofin[NFC] Let (MC)Register APIs check isStackSlot
The user is expected to make the isStackSlot check before calling isPhysicalRegister or isVirtualRegister. The APIs assert otherwise. We can improve the usability of these APIs by carrying out the check in the 2 APIs: they become a complete "source of truth" and remove an extra responsibility from the user.
Differential Revision: https://reviews.llvm.org/D88598
|
 | llvm/include/llvm/MC/MCRegister.h |
 | llvm/include/llvm/CodeGen/Register.h |
Commit
cdfb95ad580fbf366a9bffc5082df22e9d2b5fa3
by pklausler[flang] Add checks for misuse of formatted I/O APIs in unformatted I/O statement
Add checking to I/O statement APIs to catch cases where the formatted I/O data item transfer routines like OutputInteger64 are being incorrectly used for unformatted I/O, which should use the unformatted block or descriptor-based data item interfaces.
Differential revision: https://reviews.llvm.org/D88672
|
 | flang/runtime/io-api.h |
 | flang/runtime/io-stmt.h |
 | flang/runtime/unit.cpp |
 | flang/runtime/type-code.cpp |
 | flang/runtime/io-api.cpp |
Commit
9d40fb808fd0fbd33eb3b50c20d7f402de5db91e
by George Burgess IVAllow to specify macro names for android-comparison-in-temp-failure-retry
Some projects do not use the TEMP_FAILURE_RETRY macro but define their own one, as not to depend on glibc / Bionic details. By allowing the user to override the list of macros, these projects can also benefit from this check.
Differential Revision: https://reviews.llvm.org/D83144
|
 | clang-tools-extra/test/clang-tidy/checkers/android-comparison-in-temp-failure-retry-custom-macro.c |
 | clang-tools-extra/docs/clang-tidy/checks/android-comparison-in-temp-failure-retry.rst |
 | clang-tools-extra/clang-tidy/android/ComparisonInTempFailureRetryCheck.cpp |
 | clang-tools-extra/clang-tidy/android/ComparisonInTempFailureRetryCheck.h |
Commit
df6de2222c66c5a1c62da0b10c35de432ddc270a
by pklausler[flang] Fix INQUIRE of access and formatting possibilities
Don't give false positives from INQUIRE about possible access mode changes on connected units. DIRECT and SEQUENTIAL cannot be intermixed, apart from allowing DIRECT on a SEQUENTIAL file with fixed-size records and positioning. Nor can FORMATTED and UNFORMATTED be interchanged. On unconnected files, the best that we can do is "UNKNOWN".
Differential revision: https://reviews.llvm.org/D88673
|
 | flang/runtime/io-stmt.cpp |
Commit
8654a0f8bbf3e28eb210c75c8c70c739de637226
by Louis Dionne[libc++] Don't re-export new/delete from libc++abi when they are defined in libc++
This is a temporary workaround until the new/delete situation is made better (i.e. we don't include new/delete in both libc++ and libc++abi by default).
|
 | libcxx/src/CMakeLists.txt |
 | libcxxabi/src/CMakeLists.txt |
Commit
e29c9d77f128e7ef9b2b5f8f09fb06b01a9dad3a
by pklausler[flang] Fix WRITE after BACKSPACE
A WRITE to an unformatted sequential variable-length unit after a BACKSPACE needs to forget its previous knowledge of the length of the record that's about to be overwritten, and a BACKSPACE after an ENDFILE or at the start of the file needs to be a no-op.
Differential revision: https://reviews.llvm.org/D88675
|
 | flang/runtime/io-api.cpp |
 | flang/runtime/unit.cpp |
Commit
71124a9dbdcc76cd5efec8c148001a3f808bd769
by anhtuyenReland No.3: Add new hidden option -print-changed which only reports changes to IR
A new hidden option -print-changed is added along with code to support printing the IR as it passes through the opt pipeline in the new pass manager. Only those passes that change the IR are reported, with others only having the banner reported, indicating that they did not change the IR, were filtered out or ignored. Filtering of output via the -filter-print-funcs is supported and a new supporting hidden option -filter-passes is added. The latter takes a comma separated list of pass names and filters the output to only show those passes in the list that change the IR. The output can also be modified via the -print-module-scope function.
The code introduces an abstract template base class that generalizes the comparison of IRs that takes an IR representation as template parameter. Derived classes provide overrides that provide an event based API for generalized reporting of IRs as they are changed in the opt pipeline through the new pass manager.
The first of several instantiations is provided that prints the IR in a form similar to that produced by -print-after-all with the above mentioned filtering capabilities. This version, and the others to follow will be introduced at the upcoming developer's conference.
Reviewed By: aeubanks (Arthur Eubanks), yrouban (Yevgeny Rouban), ychen (Yuanfang Chen), MaskRay (Fangrui Song)
Differential Revision: https://reviews.llvm.org/D86360
|
 | llvm/test/Other/change-printer.ll |
 | llvm/lib/Passes/StandardInstrumentations.cpp |
 | llvm/lib/IR/LegacyPassManager.cpp |
 | llvm/include/llvm/Passes/StandardInstrumentations.h |
Commit
a0119e56751c16e3104d6bd760bb1c114a79bce7
by Louis Dionne[libc++] NFC: Add missing SHA to ABI Changelog
|
 | libcxx/lib/abi/CHANGELOG.TXT |
Commit
6c25816d7b68e794a04ba0d7659178ab17252637
by zoecarver[DSE] Look through memory PHI arguments when removing noop stores in MSSA.
Summary: Adds support for "following" memory through MSSA PHI arguments. This will help catch more noop stores that exist between blocks.
Originally part of D79391.
Reviewers: fhahn, jfb, asbirlea
Differential Revision: https://reviews.llvm.org/D82588
|
 | llvm/test/Transforms/DeadStoreElimination/MSSA/noop-stores.ll |
 | llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp |
 | llvm/test/Transforms/DeadStoreElimination/MSSA/simple-todo.ll |
Commit
114e964dce9f18e8f3c25a3a4136e59ead9ae50c
by spatel[InstCombine] auto-generate complete test checks; NFC
|
 | llvm/test/Transforms/InstCombine/bitreverse-known-bits.ll |
Commit
686eb0d8ded9159b090c3ef7b33a422e1f05166e
by spatel[AST] do not error on APFloat invalidOp in default mode
If FP exceptions are ignored, we should not error out of compilation just because APFloat indicated an exception. This is required as a preliminary step for D88238 which changes APFloat behavior for signaling NaN convert() to set the opInvalidOp exception status.
Currently, there is no way to trigger this error because convert() never sets opInvalidOp. FP binops that set opInvalidOp also create a NaN, so the path to checkFloatingPointResult() is blocked by a different diagnostic:
// [expr.pre]p4: // If during the evaluation of an expression, the result is not // mathematically defined [...], the behavior is undefined. // FIXME: C++ rules require us to not conform to IEEE 754 here. if (LHS.isNaN()) { Info.CCEDiag(E, diag::note_constexpr_float_arithmetic) << LHS.isNaN(); return Info.noteUndefinedBehavior(); } return checkFloatingPointResult(Info, E, St);
Differential Revision: https://reviews.llvm.org/D88664
|
 | clang/lib/AST/ExprConstant.cpp |
Commit
ba9b15072c5aa6c6d89bcb8b4f7af9d546867292
by Louis Dionne[libc++][ci] Add a job to run the vanilla configuration on Apple
Previously, we'd only have jobs testing the Apple cache on Apple platforms, but libc++ should also work out-of-the-box.
|
 | libcxx/utils/ci/buildkite-pipeline.yml |
 | libcxx/utils/ci/run-buildbot.sh |
Commit
c1b209cc61290f1ce1243470b825e0994645cb7d
by hokein.wu[Format] Don't treat compound extension headers (foo.proto.h) as foo.cc main-file header.
We receive internal bugs about this false positives after D86597.
Differential Revision: https://reviews.llvm.org/D88640.
|
 | clang/lib/Tooling/Inclusions/HeaderIncludes.cpp |
 | clang/unittests/Format/SortIncludesTest.cpp |
Commit
79122868f9a3909cfd94d51e9bfe960917a1be05
by stefanp[LLD][PowerPC] Add support for R_PPC64_GOT_TLSGD_PCREL34 used in TLS General Dynamic
Add Thread Local Storage support for the 34 bit relocation R_PPC64_GOT_TLSGD_PCREL34 used in General Dynamic.
The compiler will produce code that looks like: ``` pla r3, x@got@tlsgd@pcrel R_PPC64_GOT_TLSGD_PCREL34 bl __tls_get_addr@notoc(x@tlsgd) R_PPC64_TLSGD R_PPC64_REL24_NOTOC ``` LLD should be able to correctly compute the relocation for R_PPC64_GOT_TLSGD_PCREL34 as well as do the following two relaxations where possible: General Dynamic to Local Exec: ``` paddi r3, r13, x@tprel nop ``` and General Dynamic to Initial Exec: ``` pld r3, x@got@tprel@pcrel add r3, r3, r13 ``` Note: This patch adds support for the PC Relative (no TOC) version of General Dynamic on top of the existing support for the TOC version of General Dynamic. The ABI does not provide any way to tell by looking only at the relocation `R_PPC64_TLSGD` when it is being used in a TOC instruction sequence or and when it is being used in a no TOC sequence. The TOC sequence should always be 4 byte aligned. This patch adds one to the offset of the relocation when it is being used in a no TOC sequence. In this way LLD can tell by looking at the alignment of the offset of `R_PPC64_TLSGD` whether or not it is being used as part of a TOC or no TOC sequence.
Reviewed By: NeHuang, sfertile, MaskRay
Differential Revision: https://reviews.llvm.org/D87318
|
 | lld/ELF/Arch/PPC64.cpp |
 | lld/ELF/Relocations.cpp |
 | lld/test/ELF/ppc64-tls-pcrel-gd.s |
Commit
5f3e565f59ee8c5614663a484df1dc853ca3694d
by stefanpRevert "[LLD][PowerPC] Add support for R_PPC64_GOT_TLSGD_PCREL34 used in TLS General Dynamic"
This reverts commit 79122868f9a3909cfd94d51e9bfe960917a1be05.
|
 | lld/ELF/Arch/PPC64.cpp |
 | lld/ELF/Relocations.cpp |
 | lld/test/ELF/ppc64-tls-pcrel-gd.s |
Commit
499260c03b916920d77c5833022937fd0e20d2c0
by aeubanksRevert "[CFGuard] Add address-taken IAT tables and delay-load support"
This reverts commit ef4e971e5e18ae796466623df8f26265ba6bdfb5.
|
 | llvm/tools/llvm-readobj/COFFDumper.cpp |
 | lld/COFF/ICF.cpp |
 | llvm/lib/CodeGen/AsmPrinter/WinCFGuard.cpp |
 | lld/COFF/Symbols.h |
 | lld/test/COFF/giats.s |
 | llvm/lib/MC/MCObjectFileInfo.cpp |
 | llvm/test/CodeGen/WinCFGuard/cfguard-giats.ll |
 | lld/COFF/DLL.cpp |
 | lld/COFF/InputFiles.cpp |
 | lld/COFF/InputFiles.h |
 | lld/COFF/Writer.cpp |
 | llvm/include/llvm/MC/MCObjectFileInfo.h |
Commit
149f5b573c79eac0c519ada4d2f7c50e17796cdf
by spatel[APFloat] convert SNaN to QNaN in convert() and raise Invalid signal
This is an alternate fix (see D87835) for a bug where a NaN constant gets wrongly transformed into Infinity via truncation. In this patch, we uniformly convert any SNaN to QNaN while raising 'invalid op'. But we don't have a way to directly specify a 32-bit SNaN value in LLVM IR, so those are always encoded/decoded by calling convert from/to 64-bit hex.
See D88664 for a clang fix needed to allow this change.
Differential Revision: https://reviews.llvm.org/D88238
|
 | clang/test/CodeGen/builtin-nan-legacy.c |
 | llvm/lib/Support/APFloat.cpp |
 | clang/test/CodeGen/mips-unsupported-nan.c |
 | llvm/test/Transforms/PhaseOrdering/X86/nancvt.ll |
 | clang/test/CodeGen/builtin-nan-exception.c |
 | llvm/lib/IR/AsmWriter.cpp |
 | llvm/unittests/ADT/APFloatTest.cpp |
 | llvm/test/Transforms/InstSimplify/ConstProp/cast.ll |
 | llvm/lib/AsmParser/LLParser.cpp |
Commit
8d26760a95bae34aa5c1161a1c2ab8c1cdaa10a1
by phosek[CMake] Use -isystem flag to access libc++ headers
This is a partial revert of D62155. Rather than copying libc++ headers into the build directory to be later overwritten by the final headers, use -isystem flag to access libc++ headers during CMake checks. This should address the occasional flake we've seen, especially on Windows builders where CMake fails to overwrite __config with the final version.
Differential Revision: https://reviews.llvm.org/D88454
|
 | libcxx/include/CMakeLists.txt |
 | llvm/runtimes/CMakeLists.txt |
Commit
9d1c8c0ba94a273c53829f0800335045e547db88
by nikita.ppv[InstCombine] Fix select operand simplification with undef (PR47696)
When replacing X == Y ? f(X) : Z with X == Y ? f(Y) : Z, make sure that Y cannot be undef. If it may be undef, we might end up picking a different value for undef in the comparison and the select operand.
|
 | llvm/test/Transforms/InstCombine/select-binop-cmp.ll |
 | llvm/test/Transforms/InstCombine/select.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineInternal.h |
 | llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp |
Commit
5d46d7e8b288a52de1eff97d6c5b44039ede6661
by rnk[PDB] Use one func id DenseMap instead of per-source maps, NFC
This avoids some DenseMap copies when /Zi is in use, and results in fewer data structures.
Differential Revision: https://reviews.llvm.org/D88617
|
 | lld/COFF/DebugTypes.cpp |
 | lld/COFF/PDB.cpp |
 | lld/COFF/TypeMerger.h |
 | lld/COFF/DebugTypes.h |
Commit
d12ae042e17b27ebc8d2b5ae3d8dd5f88384d093
by rnk[lit] Fix Python 2/3 compat in new winreg search code
This should fix the test failures on the clang win64 bot: http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/18830 It has been red since Sept 23-ish.
This was subtle to debug. Windows has 'find' and 'sort' utilities in C:\Windows\system32, but they don't support all the same flags as the coreutils programs. I configured the buildbot above with Python 2.7 64-bit (hey, it was set up in 2016). When I installed git for Windows, I opted to add all the Unix utilities that come with git to the system PATH. This is *almost* enough to make the LLVM tests pass, but not quite, because if you use the system PATH, the Windows version of find and sort come first, but the tests that use diff, cmp, etc, will all pass. So only a handful of tests will fail, and with cryptic error messages.
The code changed in this CL doesn't work with Python 2. Before Python 3.2, the winreg.OpenKey function did not accept the `access=` keyword argument, the caller was required to pass an unused `reserved` positional argument of 0. The try/except/pass around the OpenKey operation masked this usage error in Python 2.
Further, the result of the registry operation has to be converted from unicode to add it to the environment, but that was incidental.
|
 | llvm/utils/lit/lit/llvm/config.py |
Commit
de47e7122f69d56399c4f8864ba279e5ce635970
by phosek[CMake][Fuchsia] Don't set WIN32 API, rely on autodetection
We prefer autodetection here to avoid persisting this configuration in the generated __config header which is shared across targets.
Differential Revision: https://reviews.llvm.org/D88694
|
 | clang/cmake/caches/Fuchsia-stage2.cmake |
Commit
88f2fe5cad6cc3a3830448cb8a88b52ee449f2d1
by iRaland D87318 [LLD][PowerPC] Add support for R_PPC64_GOT_TLSGD_PCREL34 used in TLS General Dynamic
Add Thread Local Storage support for the 34 bit relocation R_PPC64_GOT_TLSGD_PCREL34 used in General Dynamic.
The compiler will produce code that looks like: ``` pla r3, x@got@tlsgd@pcrel R_PPC64_GOT_TLSGD_PCREL34 bl __tls_get_addr@notoc(x@tlsgd) R_PPC64_TLSGD R_PPC64_REL24_NOTOC ``` LLD should be able to correctly compute the relocation for R_PPC64_GOT_TLSGD_PCREL34 as well as do the following two relaxations where possible: General Dynamic to Local Exec: ``` paddi r3, r13, x@tprel nop ``` and General Dynamic to Initial Exec: ``` pld r3, x@got@tprel@pcrel add r3, r3, r13 ``` Note: This patch adds support for the PC Relative (no TOC) version of General Dynamic on top of the existing support for the TOC version of General Dynamic. The ABI does not provide any way to tell by looking only at the relocation `R_PPC64_TLSGD` when it is being used in a TOC instruction sequence or and when it is being used in a no TOC sequence. The TOC sequence should always be 4 byte aligned. This patch adds one to the offset of the relocation when it is being used in a no TOC sequence. In this way LLD can tell by looking at the alignment of the offset of `R_PPC64_TLSGD` whether or not it is being used as part of a TOC or no TOC sequence.
Reviewed By: NeHuang, sfertile, MaskRay
Differential Revision: https://reviews.llvm.org/D87318
|
 | lld/ELF/Relocations.cpp |
 | lld/test/ELF/ppc64-tls-pcrel-gd.s |
 | lld/ELF/Arch/PPC64.cpp |
Commit
35ecc7fe49ba881a77e8146b51870a60a52b211f
by hubert.reinterpretcast[clang][Sema] Fix PR47676: Handle dependent AltiVec C-style cast
Fix premature decision in the presence of type-dependent expression operands on whether AltiVec vector initializations from single expressions are "splat" operations.
Verify that the instantiation is able to determine the correct cast semantics for both the scalar type and the vector type case.
Note that, because the change only affects the single-expression case (and the target type is an AltiVec-style vector type), the replacement of a parenthesized list with a parenthesized expression does not change the semantics of the program in a program-observable manner.
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D88526
|
 | clang/test/SemaTemplate/pr47676.cpp |
 | clang/lib/Sema/SemaExpr.cpp |
Commit
4c265ce665630b74ad9f25f67cd2114714b9aaab
by Amara Emerson[AArch64][GlobalISel] Camp oversize v4s64 G_FPEXT operations.
|
 | llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp |
 | llvm/test/CodeGen/AArch64/GlobalISel/legalize-fpext.mir |
Commit
73457536ff335a2cbe2381354512e0fcf9d703fd
by Amara Emerson[AArch64][GlobalISel] Use custom legalization for G_TRUNC for v8i8 vectors.
Truncating to v8i8 is a case where we want to split the source but also generate intermediate truncates to reduce the size of the source vector before truncating down to v8i8. This implements the same strategy as what SelectionDAG does, but I'm not certain where if anywhere in generic code it should live.
Use it for legalization of v8s8 = G_ICMP v8s32.
Differential Revision: https://reviews.llvm.org/D88191
|
 | llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.h |
 | llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp |
 | llvm/test/CodeGen/AArch64/GlobalISel/legalize-vector-icmp.mir |
Commit
1c1a8105580784c96212db1afc097a844740bc69
by aaronpuchertlibclc: Use find_package to find Python 3 and require it
The script's shebang wants Python 3, so we use FindPython3. The original code didn't work when an unversioned python was not available. This is explicitly allowed in PEP 394. ("Distributors may choose to set the behavior of the python command as follows: python2, python3, not provide python command, allow python to be configurable by an end user or a system administrator.")
Also I think it's actually required, so let the configuration fail if we can't find it.
Lastly remove the shebang, since the script is only run via interpreter and doesn't have the executable bit set anyway.
Reviewed By: jvesely
Differential Revision: https://reviews.llvm.org/D88366
|
 | libclc/generic/lib/gen_convert.py |
 | libclc/CMakeLists.txt |
Commit
b29573b672d795dfc58aaf70c70511229584e3c3
by aeubanks[gn build] Support building with ThinLTO
Differential Revision: https://reviews.llvm.org/D88584
|
 | llvm/utils/gn/build/BUILD.gn |
 | llvm/utils/gn/build/buildflags.gni |
Commit
9f6acb13586b0b3b4e83dc03648ced02517bd236
by Amara Emerson[AArch64][GlobalISel] Merge G_SHL, G_ASHR and G_LSHR legalizer rules together.
There's no need for any difference between these.
|
 | llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp |
 | llvm/test/CodeGen/AArch64/GlobalISel/legalize-shift.mir |
 | llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir |
Commit
15ea45f16b261521e3251b4ff0bceaadf31a4515
by Raphael Isemann[lldb] Skip unique_ptr import-std-module tests on Linux
This seems to fail on ubuntu 18.04.5 with Clang 9 due to:
Error output: error: Couldn't lookup symbols: std::__1::default_delete<int>::operator()(int) const
|
 | lldb/test/API/commands/expression/import-std-module/unique_ptr/TestUniquePtrFromStdModule.py |
 | lldb/test/API/commands/expression/import-std-module/unique_ptr-dbg-info-content/TestUniquePtrDbgInfoContent.py |
Commit
4140f0744fb2deccb74e77282e23ff731f67821b
by alexandre.ganea[LLD][COFF] Fix crash with /summary and PCH input files
Before this patch /summary was crashing with some .PCH.OBJ files, because tpiMap[srcIdx++] was reading at the wrong location. When the TpiSource depends on a .PCH.OBJ file, the types should be offset by the previously merged PCH.OBJ set of indices.
Differential Revision: https://reviews.llvm.org/D88678
|
 | lld/test/COFF/precomp-summary-fail.test |
 | lld/COFF/DebugTypes.cpp |
 | lld/test/COFF/Inputs/precomp2-a.yaml |
 | lld/test/COFF/Inputs/precomp2.yaml |
Commit
8071c2f5c6149d0dc976819002dc46d9e7edfa40
by Amara Emerson[AArch64][GlobalISel] Make <8 x s8> shifts legal.
|
 | llvm/test/CodeGen/AArch64/GlobalISel/legalize-shift.mir |
 | llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp |
Commit
9a2b3bbc59d57c4cf3a3b898cbfa805c4cc9263f
by Amara EmersonRevert "[AArch64][GlobalISel] Make <8 x s8> shifts legal."
Accidentally pushed this.
|
 | llvm/test/CodeGen/AArch64/GlobalISel/legalize-shift.mir |
 | llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp |
Commit
a97e97faedab0ba57f7c471f778d38cfd18988b8
by Amara Emerson[AArch64][GlobalISel] Make <8 x s8> shifts legal and add selection support.
|
 | llvm/test/CodeGen/AArch64/GlobalISel/legalize-shift.mir |
 | llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp |
 | llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp |