summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* [clangd] Support configuration of inlay hints.maainSam McCall2022-01-107-18/+132
| | | | | | | | | | | | | | | | | | | | | | The idea is that the feature will always be advertised at the LSP level, but depending on config we'll return partial or no responses. We try to avoid doing the analysis for hints we're not going to return. Examples of syntax: ``` InlayHints: Enabled: No --- InlayHints: ParameterNames: No --- InlayHints: ParameterNames: Yes DeducedTypes: Yes ``` Differential Revision: https://reviews.llvm.org/D116713
* [SCEVExpander] Only create multiplication if needed.Florian Hahn2022-01-103-30/+22
| | | | | | | | | | 9345ab3a4550 updated generateOverflowCheck to skip creating checks that always evaluate to false. This in turn means that we only need to compute |Step| * Trip count if the result of the multiplication is actually used. Sink the multiplication into ComputeEndCheck, so it is only created when there's an actual check.
* [gn build] Port c0fdc748871fLLVM GN Syncbot2022-01-101-0/+1
|
* [AST] Add more source information for DecltypeTypeLoc.Haojian Wu2022-01-1011-28/+76
| | | | | | Adds the paren source location, and removes the hack in clangd. Differential Revision: https://reviews.llvm.org/D116793
* [clang-format] Ensure we can correctly parse lambda in the template argument ↵mydeveloperday2022-01-102-0/+11
| | | | | | | | | | | | | | | | | | | list https://github.com/llvm/llvm-project/issues/46505 The presence of a lambda in an argument template list ignored the [] as a lambda at all, this caused the contents of the <> to be incorrectly analyzed. ``` struct Y : X < [] { return 0; } > {}; ``` Fixes: #46505 Reviewed By: curdeius Differential Revision: https://reviews.llvm.org/D116806
* [ORC][JITLink] Add dependence on OrcShared to JITLink.Lang Hames2022-01-101-0/+1
| | | | | JITLink depends on OrcShared as of c0fdc748871. This should fix the build failure at https://lab.llvm.org/buildbot#builders/61/builds/19796.
* [lld-macho] Fix shadowed variableVincent Lee2022-01-101-1/+1
| | | | This fixes a windows build failure from D115416.
* [MemoryBuiltins] Remove isNoAliasFn() in favor of isNoAliasCall()Nikita Popov2022-01-107-32/+6
| | | | | | | | | | | | | | | We currently have two similar implementations of this concept: isNoAliasCall() only checks for the noalias return attribute. isNoAliasFn() also checks for allocation functions. We should switch to only checking the attribute. SLC is responsible for inferring the noalias return attribute for non-new allocation functions (with a missing case fixed in https://github.com/llvm/llvm-project/commit/348bc76e3548c52dbcd442590ca0a7f5b09b7534). For new, clang is responsible for setting the attribute, if -fno-assume-sane-operator-new is not passed. Differential Revision: https://reviews.llvm.org/D116800
* [ORC] Add helper functions for running finalize / dealloc actions.Lang Hames2022-01-106-22/+98
| | | | | | | | | | | | | | | runFinalizeActions takes an AllocActions vector and attempts to run its finalize actions. If any finalize action fails then all paired dealloc actions up to the failing pair are run, and the error(s) returned. If all finalize actions succeed then a vector containing the dealloc actions is returned. runDeallocActions takes a vector<WrapperFunctionCall> containing dealloc action calls and runs them all, returning any error(s). These helpers are intended to simplify the implementation of JITLinkMemoryManager::InFlightAlloc::finalize and JITLinkMemoryManager::deallocate overrides by taking care of execution (and potential roll-back) of allocation actions.
* [RISCV] Generalize (srl (and X, 0xffff), C) -> (srli (slli X, (XLen-16), ↵Craig Topper2022-01-0910-178/+142
| | | | | | | | | | | | | | (XLen-16) + C) optimization. This can be generalized to (srl (and X, C2), C) -> (srli (slli X, (XLen-C3), (XLen-C3) + C). Where C2 is a mask with C3 trailing ones. This can avoid constant materialization for C2. This is beneficial even when C2 can be selected to ANDI because the SLLI can become C.SLLI, but C.ANDI cannot cover all the immediates of ANDI. This also enables CSE in some cases of i8 sdiv by constant codegen.
* Fix exported MLIR_TABLEGEN_EXEStephen Neuendorffer2022-01-092-1/+8
| | | | | | | | | LLVM_OPTIMIZED_TABLEGEN results in MLIR_TABLEGEN_EXE pointing to an absolute path in the build directory. This doesn't work when exporting to an install directory. This patch fixes the exported information for an install directory to refer to the installed mlir-tblgen. (Note that this is probably a debug version if LLVM_OPTIMIZED_TABLEGEN is set)
* [SchedModels][CortexA55] Fix scheduling of FP loadsPavel Kosov2022-01-103-199/+203
| | | | | | | | | | Patch fixes scheduling of FP load instructions with pre/post increment adding WriteAdr for address operand. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D116361 OS Laboratory. Huawei Russian Research Institute. Saint-Petersburg
* [lldb] Remove LLDB_RECORD_RESULT macroJonas Devlieghere2022-01-0966-850/+801
|
* [lldb] Skip TestTargetXMLArch if no support for x86 targetDave Lee2022-01-091-0/+1
| | | | | | If LLVM is configured without X86 as one of its TARGETS_TO_BUILD, then lldb will crash when using X86 disassembler (which it does while running `image show-unwind`).
* [CSKY] Lower leaf DAG node such as global symbol, frame address and ↵Zi Xuan Wu2022-01-1015-4/+1831
| | | | | | | | | | | | | | jumptable, etc. Lower global symbols such as call/external symbol. Lower other leaf DAG node such as frame address/block address/jumptable/vastart. Normally some leaf symbols need reside in constant pool as ABI prefers, and are addressed by lrw or jsri instructions. Every symbol in constant pool is lowered with one entry in target constant pool. The entry has different type corresponding to different leaf node such as blockaddress, jumptable, or global value.
* [libc] Re-enable thrd_test.Siva Chandra Reddy2022-01-101-13/+12
| | | | | | Other threads related tests have been using the API that is tested here without any problems. The main reason for disabling the test has also been fixed many months ago.
* [lldb] Skip TestVSCode_coreFile if no x86 target supportDave Lee2022-01-091-0/+1
|
* [lldb] Remove reproducer instrumentationJonas Devlieghere2022-01-0974-6208/+77
| | | | | | | | | This patch removes most of the reproducer instrumentation. It keeps around the LLDB_RECORD_* macros for logging. See [1] for more details. [1] https://lists.llvm.org/pipermail/lldb-dev/2021-September/017045.html Differential revision: https://reviews.llvm.org/D116847
* [lldb] Guard libstdc++ specific 'frame var' testDave Lee2022-01-091-6/+8
| | | | | | | | | While working on D116788 (properly error out of `frame var`), this libstdc++ specific `frame var` invocation was found in the tests. This test is in the generic directory, but has this one case that requires libstdc++. The fix here is to put the one `expect()` inside of a condition that checks for libstdc++. Differential Revision: https://reviews.llvm.org/D116901
* [lldb] Check for arm64 in TestDisassembleRawDataDave Lee2022-01-091-2/+2
| | | | | | | This test checks for `aarch64` but the lit config could also contain `arm64`. This change adds `arm64` to make the test pass in all cases. Differential Revision: https://reviews.llvm.org/D116912
* [lldb] Require x86 support for dwo-relative-path testDave Lee2022-01-091-0/+2
|
* [RISCV] Isel (sra (sext_inreg X, i16), C) -> (srai (slli X, (XLen-16), ↵Craig Topper2022-01-094-36/+67
| | | | | | | | | | | (XLen-16) + C). Similar for (sra (sext_inreg X, i8), C). With Zbb, sext_inreg of i8 and i16 are legal for sext.b and sext.h. This transform makes the Zbb codegen the same as without Zbb. The shifts are more compressible. This also exposes an opportunity for CSE with another slli in the i16 sdiv by constant codegen.
* [lld][ELF] Support adrp+ldr GOT optimization for AArch64Alexander Shaposhnikov2022-01-105-6/+305
| | | | | | | | | | | | | | | This diff adds first bits to support relocation relaxations for AArch64 discussed on https://github.com/ARM-software/abi-aa/pull/106. In particular, the case of adrp x0, :got: symbol ldr x0, [x0, :got_lo12: symbol] is handled. Test plan: make check-all Differential revision: https://reviews.llvm.org/D112063
* [RISCV] Disable EEW=64 for index values when XLEN=32.jacquesguan2022-01-1018-5649/+1579
| | | | | | Disable EEW=64 for vector index load/store when XLEN=32. Differential Revision: https://reviews.llvm.org/D106518
* Control-flow Enforcement Technology (CET), published by Intel, introducesjinge902022-01-107-0/+41
| | | | | | | | | | | | | | | | | | | | | | indirect branch tracking(IBT) feature aiming to ensure the target address of an indirect jump/call is not tampered. When IBT is enabled, each function or target of any indirect jump/call will start with an 'endbr32/64' instruction otherwise the program will crash during execution. To build an application with CET enabled. we need to ensure: 1. build the source code with "-fcf-protection=full" 2. all the libraries linked with .o files must be CET enabled too This patch aims to enable CET for compiler-rt builtins library, we add an option "COMPILER_RT_ENABLE_CET" whose default value is OFF to enable CET for compiler-rt in building time and when this option is "ON", "-fcf-protection=full" is added to BUILTINS_CFLAG and the "endbr32/64" will be placed in the beginning of each assembly function. We also enabled CET for crtbegin, crtend object files in this patch. Reviewed by: MaskRay, compnerd, manojgupta, efriedma Differential Revision: https://reviews.llvm.org/D109811 Signed-off-by: jinge90 <ge.jin@intel.com>
* [Builtins] Add missing the macro 'y' description in commentsJim Lin2022-01-101-0/+1
| | | | | | | | | New type str 'y' added from D76077. But missed its description in comments. Reviewed By: stuij Differential Revision: https://reviews.llvm.org/D116509
* [RISCV] Fold (srl (and X, 0xffff), C)->(srli (slli X, (XLen-16), (XLen-16) + ↵Craig Topper2022-01-094-23/+24
| | | | | | | C) even with Zbb/Zbp. We can use zext.h with Zbb, but srli/slli may offer more opportunities for compression.
* [yaml2obj][XCOFF] parsing auxiliary symbols.Esme-Yi2022-01-104-15/+456
| | | | | | | | | | | | Summary: The patch adds support for yaml2obj parsing auxiliary symbols for XCOFF. Since the test cases of this patch are interdependent with D113825 ([llvm-readobj][XCOFF] dump auxiliary symbols), test cases of this patch will be committed after D113825 is committed. Reviewed By: jhenderson, DiggerLin Differential Revision: https://reviews.llvm.org/D113552
* [PowerPC] fast isel can lower intrinsics call on AIX.Chen Zheng2022-01-103-11/+58
| | | | | | Reviewed By: qiucf Differential Revision: https://reviews.llvm.org/D114778
* [SelectionDAG] Add FP_TO_UINT_SAT/FP_TO_SINT_SAT to ↵Craig Topper2022-01-098-170/+87
| | | | | | | | | | | | | | computeKnownBits/computeNumSignBits. These nodes should saturate to their saturating VT. We can use this information to know the bits past the VT are all zeros or all sign bits. I think we might only have test coverage for the unsigned case. I'll verify and add tests. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D116870
* [CodeGen] Rename emitCalleeSavedFrameMovesAlexander Shaposhnikov2022-01-105-10/+8
| | | | | | | | | | | | | | This diff renames emitCalleeSavedFrameMoves to avoid conflicts with non-virtual methods of derived classes having the same name but different semantics. E.g. the class AArch64FrameLowering used to have (non-virtual) "emitCalleeSavedFrameMoves" but it started to override TargetFrameLowering::emitCalleeSavedFrameMoves after https://github.com/llvm/llvm-project/commit/c3e6555616 though its usage and semantics didn't change. P.S. for x86 there was no conflict because the signature of non-virtual X86FrameLowering::emitCalleeSavedFrameMoves is different Test plan: make check-all Differential revision: https://reviews.llvm.org/D114140
* Apply clang-tidy fixes for performance-move-const-arg in ReductionNode.cpp (NFC)Mehdi Amini2022-01-101-2/+2
|
* Apply clang-tidy fixes for performance-for-range-copy in ↵Mehdi Amini2022-01-101-1/+2
| | | | ElementwiseOpFusion.cpp (NFC)
* Apply clang-tidy fixes for performance-for-range-copy in ↵Mehdi Amini2022-01-101-1/+1
| | | | ModuleBufferization.cpp (NFC)
* Apply clang-tidy fixes for modernize-use-equals-default in IRCore.cpp (NFC)Mehdi Amini2022-01-101-1/+1
|
* Revert "[lldb] Set result error state in 'frame variable'"Dave Lee2022-01-092-20/+19
| | | | This reverts commit 2bcff220bf1e372e91491911fe0bb76c4c4bbef8.
* [ELF] Move gotIndex/pltIndex/globalDynIndex to SymbolAuxFangrui Song2022-01-099-46/+94
| | | | | | | | | | | | | | | | | | to decrease sizeof(SymbolUnion) by 8 on ELF64 platforms. Symbols needing such information are typically 1% or fewer (5134 out of 560520 when linking clang, 19898 out of 5550705 when linking chrome). Storing them elsewhere can decrease memory usage and symbol initialization time. There is a ~0.8% saving on max RSS when linking a large program. Future direction: * Move some of dynsymIndex/verdefIndex/versionId to SymbolAux * Support mixed TLSDESC and TLS GD without increasing sizeof(SymbolUnion) Reviewed By: peter.smith Differential Revision: https://reviews.llvm.org/D116281
* [lldb] Set result error state in 'frame variable'Dave Lee2022-01-092-19/+20
| | | | | | | | | | | | | | Ensure that errors in `frame variable` are reflected in result object. The statistics for `frame variable` show invocations as being successful, even when executing one of the error paths. This change replaces `result.GetErrorStream()` with `result.AppendError()`, which also sets the status to `eReturnStatusFailed`. Differential Revision: https://reviews.llvm.org/D116788 (cherry picked from commit 2c7d10c41278181e3e45c68f28b501cd95193a8a)
* [lldb][docs] Update references to SVNDave Lee2022-01-092-28/+25
|
* Use true/false instead of 1/0 (NFC)Kazu Hirata2022-01-0912-14/+17
| | | | Identified by modernize-use-bool-literals.
* [lldb] Remove redundant member initialization (NFC)Kazu Hirata2022-01-0943-112/+80
|
* Fix bugprone argument comments.Kazu Hirata2022-01-0913-20/+20
| | | | Identified by bugprone-argument-comment.
* [clang] Remove unused forward declarations (NFC)Kazu Hirata2022-01-0957-137/+0
|
* [lldb] Compute fully qualified command names in FindCommandsForAproposDave Lee2022-01-094-14/+17
| | | | | | | | | | | | | | | | | | | | | | | Fixes incomplete command names in `apropos` results. The full command names given by `apropos` have come from command name string literals given to `CommandObject` constructors. For most commands, this has been accurate, but some commands have incorrect strings. This results in `apropos` output that doesn't tell the user the full command name they might want learn more about. These strings can be fixed. There's a seperate issue that can't be fixed as easily: plugin commands. With the way they're implemented, plugin commands have to exclude the root command from their command name string. To illustrate, the `language objc` subcommand has to set its command name string to "objc", which results in apropos printing results as `objc ...` instead of `language objc ...`. To fix both of these issues, this commit changes `FindCommandsForApropos` to derive the fully qualified command name using the keys of subcommand maps. Differential Revision: https://reviews.llvm.org/D116491 (cherry picked from commit b3bfd595a548cd85b12e4e83729436cb73b26f29)
* [lldb] Remove ProcessStructReader from NSStringSummaryProvider (NFC)Dave Lee2022-01-091-25/+12
| | | | | | | | | | | Simplify getting the length of `NSPathStore2` strings. `NSStringSummaryProvider` uses a single field from `NSPathStore2` instances, its first ivar: `_lengthAndRefCount`. This change uses `GetSyntheticChildAtOffset` to replace the use of `ProcessStructReader`, and removes the hard coded `CompilerType` definition of `NSPathStore2`. Differential Revision: https://reviews.llvm.org/D116461
* [mlir][MemRef] NFC - Improve assertion error messageNicolas Vasilache2022-01-091-3/+3
|
* [Attributor][FIX] Remove assumption that doesn't have to holdJohannes Doerfert2022-01-091-1/+0
| | | | | There is no guarantee we strip all GEPOperators and the conservative handling doesn't even require us to.
* [mlir][Bufferize] NFC - Introduce areCastCompatible assertions to catch ↵Nicolas Vasilache2022-01-094-2/+24
| | | | | | misformed CastOp early Differential Revision: https://reviews.llvm.org/D116893
* [SCEVExpander] Simplify cleanup, skip sorting by dominance.Florian Hahn2022-01-094-14/+7
| | | | | | | There is no need to sort inserted instructions by dominance, as the deletion loop still requires RAUW with undef before deleting. Removing instructions in reverse insertion order should still insure that the number of uselist updates is kept to a minimum.
* [AIX] Disable tests that fail because of no 64-bit XCOFF object file supportJake Egan2022-01-097-1/+72
| | | | | | | | | | The modified tests fail because 64-bit XCOFF object files are not currently supported on AIX. This patch disables these tests on 64-bit AIX for now. This patch is similar to D111887 except the failures on this patch are on a 64-bit build. Reviewed By: shchenz, #powerpc Differential Revision: https://reviews.llvm.org/D113049