- Jun 01, 2023
-
-
LLVM GN Syncbot authored
-
Nikolas Klauser authored
Reviewed By: ldionne, #libc Spies: libcxx-commits, miyuki Differential Revision: https://reviews.llvm.org/D150736
-
Alexandros Lamprineas authored
The SCCPSolver is using a structure (AnalysisResultsForFn) where it keeps pointers to various analyses needed by the IPSCCP pass. These analyses are requested all at the same time, which can become problematic in some cases. For example one could be retrieved via getCachedAnalysis() prior to the actual execution of the analysis. In more detail: The IPSCCP pass uses a DomTreeUpdater to preserve the PostDominatorTree in case the PostDominatorTreeAnalysis had run before IPSCCP. Starting with commit 1b123204 the IPSCCP pass may use BlockFrequencyAnalysis for some functions in the module. As a result, the PostDominatorTreeAnalysis may not run until the BlockFrequencyAnalysis has run, since the latter analysis depends on the former. Currently, we setup the DomTreeUpdater using getCachedAnalysis to retrieve a PostDominatorTree. This happens before BlockFrequencyAnalysis has run, therefore the cached analysis can become invalid by the time we use it. Differential Revision: https://reviews.llvm.org/D151666
-
Jay Foad authored
Differential Revision: https://reviews.llvm.org/D151890
-
Sven van Haastregt authored
This new channel data type was added in OpenCL C 3.0.
-
Louis Dionne authored
This replaces some uses of internal libc++ macros with the equivalent macro from "test_macros.h". Differential Revision: https://reviews.llvm.org/D151825
-
Louis Dionne authored
This removes the need for contributors to do some manual steps when adding a new public header. Differential Revision: https://reviews.llvm.org/D151831
-
Florian Hahn authored
If the step is not loop-invariant, we cannot create a modified AddRec, as the start needs to be loop-invariant. Mark those cases as CannotAnalyze and bail out, to fix a crash.
-
Juan Manuel MARTINEZ CAAMAÑO authored
[NFC][TargetTransformInfo] Make getInliningThreholdMultiplier and getInlinerVectorBonusPercent const Reviewed By: jlebar Differential Revision: https://reviews.llvm.org/D149739
-
Louis Dionne authored
-
Nikita Popov authored
-
Petr Hosek authored
The existing BOLT install targets are broken on Windows becase they don't properly handle the output extension. We cannot use the existing LLVM macros since those make assumptions that don't hold for BOLT. This change instead implements custom macros following the approach used by Clang and LLD. Differential Revision: https://reviews.llvm.org/D151595
-
Jay Foad authored
-
Nikita Popov authored
Serves the dual purpose of avoiding an extra InstCombine iteration for the DL-aware folding and removing one icmp constexpr use.
-
Zibi Sarbinowski authored
[z/OS] Disable pr59765-modules-global-ctor-dtor.cppm Reviewed By: SeanP Differential Revision: https://reviews.llvm.org/D151828
-
Haojian Wu authored
-
Paulo Matos authored
Disable conversion of funnel shifts (fshl/fshr) into rotates unless one of the operands is known to be a constant value. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D150670
-
Nikita Popov authored
This reverts commit 559d47a1. Caused failure on sanitizer-aarch64-linux-bootstrap-ubsan: clang++: /b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/lib/Transforms/Utils/SCCPSolver.cpp:442: llvm::ValueLatticeElement &llvm::SCCPInstVisitor::getValueState(llvm::Value *): Assertion `!V->getType()->isStructTy() && "Should use getStructValueState"' failed.
-
Nikita Popov authored
Explicitly remove the old add instruction, so we don't need a separate InstCombine iteration to DCE it.
-
Haojian Wu authored
-
Nikita Popov authored
FoldSetCC() returns UNDEF in a number of cases. However, the SetCC result must follow BooleanContents. Unless the type is a pre-legalization i1 or we have UndefinedBooleanContents, the use of UNDEF will not uphold the requirement that the top bits are either zero or match the low bit. In such cases, return zero instead. Fixes https://github.com/llvm/llvm-project/issues/63055. Differential Revision: https://reviews.llvm.org/D151883
-
Haojian Wu authored
-
Valentin Clement authored
Add support for the * operation in OpenACC lowering. Support is added for the types currently supported. Depends on D151564 Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D151565
-
Valentin Clement authored
Add initial support to lower reduction clause to its representation in MLIR. This patch adds support for addition of integer and real scalar types. Other operators and types will be added with follow up patches. Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D151564
-
Haojian Wu authored
-
Mikhail Gudim authored
The freeze instruction has not been handled by SCCPInstVisitor. This patch adds SCCPInstVisitor::visitFreezeInst(FreezeInst &I) method to handle freeze instructions. Differential Revision: https://reviews.llvm.org/D151659
-
Haojian Wu authored
IncludeStructure::RecordHeaders.
-
Jay Foad authored
-
Guillaume Chatelet authored
Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D151875
-
Haojian Wu authored
-
Nikita Popov authored
-
Igor Kirillov authored
This patch allows us to gain all the benefits provided by LoopLoadElimination pass to descending loops. Differential Revision: https://reviews.llvm.org/D151448
-
Joseph Huber authored
The linker wrapper performs its own very basic symbol resolution for the purpose of supporting standard static library semantics. We do this here because the Nvidia `nvlink` wrapper does not support static linking and we have some offloading specific extensions. Currently, we always place symbols in the "table" even if they aren't extracted. This caused the logic to fail when many files were used that referenced the same undefined variable. This patch changes the pass to only add the symbols to the global "table" if the file is actually extracted. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D151839
-
Simon Pilgrim authored
Only uses port2+3 for agen, and was missing port4 for the actual store Noticed while investigating the skylake vs icelake diffs for Issue #62602
-
Nimish Mishra authored
Verification of support for lowering private/firstprivate clauses on unstructured sections. Differential Revision: https://reviews.llvm.org/D145352 Reviewed By: TIFitis
-
Ritanya B Bharadwaj authored
Initial support for OpenMP 5.0 declare target "as if" behavior for "initializer expressions". OpenMP 5.0, 2.12.7 declare target. Reviewed By: Alexey Differential Revision: https://reviews.llvm.org/D146418
-
David Green authored
i1 inserts will need an extra cset, and i1 extracts need a cmp (or tst) in order to be used. This increase the cost of them a little to account for those extra instructions. https://godbolt.org/z/3c5z4G7Mh Differential Revision: https://reviews.llvm.org/D151189
-
Nikita Popov authored
We need to add the replaced instruction itself to the worklist as well. We want to remove the old instructions, but can't easily do so directly, as the icmp is also one of the users and we need to retain it until the fold has finished.
-
Antonio Abbatangelo authored
Adds a dynamic stack alignment to functions under the interrupt call convention on x86-32. This fixes the issue where the stack can be misaligned on entry, since x86-32 makes no guarantees about the stack pointer position when the interrupt service routine is called. The alignment is done by overriding X86RegisterInfo::shouldRealignStack, and by setting the correct alignment in X86FrameLowering::calculateMaxStackAlign. This forces the interrupt handler to be dynamically aligned, generating the appropriate `and` instruction in the prologue and `lea` in the epilogue. The `no-realign-stack` attribute can be used as an opt-out. Fixes #26851 Reviewed By: pengfei Differential Revision: https://reviews.llvm.org/D151400
-
Timm Bäder authored
Our comparison opcodes always produce a Boolean value and push it on the stack. However, the result of such a comparison in C is int, so the later code expects an integer value on the stack. Work around this problem by casting the boolean value to int in those cases. This is not ideal for C however. The comparison is usually wrapped in a IntegerToBool cast anyway. Differential Revision: https://reviews.llvm.org/D149645
-