- Oct 08, 2021
-
-
Adrian Prantl authored
This change fixes a bug where the compiler generates a prologue_end for line 0 locs. That is because line 0 is not associated with any source location, so there should not be a prolgoue_end at a location that doesn't correspond to a source location. There were some LLVM tests that were explicitly checking for line 0 prologue_end's as well since I believe that to be incorrect, I had to change those tests as well. Patch by Shubham Rastogi! Differential Revision: https://reviews.llvm.org/D110740
-
Adrian Prantl authored
This patch adds support for Swift compiler producer strings to DWARFUnit. Differential Revision: https://reviews.llvm.org/D111278
-
Vitaly Buka authored
-
Vitaly Buka authored
This will simplify removing id proposed by @dvyukov on D111183 Also now we have more flexiliby for traces compressio they are not interleaving with uncompressable headers. Depends on D111256. Differential Revision: https://reviews.llvm.org/D111274
-
Vitaly Buka authored
This way is easier to track memory usage and do other incremental refactorings. Differential Revision: https://reviews.llvm.org/D111256
-
Vitaly Buka authored
-
peter klausler authored
Bit positions for the intrinsics IBCLR and IBSET and shift counts for the intrinsics ISHFT/SHIFTA/SHIFTL/SHIFTR should be validated when folding. Differential Revision: https://reviews.llvm.org/D111327
-
Philip Reames authored
-
Jay Foad authored
Updating the MachineDominatorTree is easy since SILowerControlFlow only splits and removes basic blocks. This should save a bit of compile time because previously we would recompute the dominator tree from scratch after this pass. Another reason for doing this is that SILowerControlFlow preserves LiveIntervals which transitively requires MachineDominatorTree. I think that means that SILowerControlFlow is obliged to preserve MachineDominatorTree too as explained here: https://lists.llvm.org/pipermail/llvm-dev/2020-November/146923.html although it does not seem to have caused any problems in practice yet. Differential Revision: https://reviews.llvm.org/D111313
-
Jay Foad authored
In a couple of places machine verification was disabled for no apparent reason, probably just because an "addPass(..., false)" line was cut and pasted from elsewhere. After this patch the only remaining place where machine verification is disabled in the generic TargetPassConfig code, is after addPreEmitPass.
-
Nikita Popov authored
DecompGEP.Base and UnderlyingV are currently always the same. However, logically DecompGEP.Base is the right value to use here, because the decomposed offset is relative to that base.
-
Mark Schimmel authored
[ARC] ARCRegisterInfo cleanup prior to adding core register pairs (ARC32) and 64-bit core registers (ARC64) Differential Revision: https://reviews.llvm.org/D11108
-
Keith Smiley authored
Some subprojects like compiler-rt define the `darwin` feature in their lit config, but clang does not do that, so we need to use the global `system-darwin` here instead. Differential Revision: https://reviews.llvm.org/D111267
-
Nikita Popov authored
LoopFlatten does preserve loop analyses (DT, LI and SCEV), but currently doesn't mark them as preserved in the NewPM (they are marked as preserved in the LegacyPM). I think this doesn't really have an effect in the end because the loop pass adaptor will just assume they're preserved anyway, but let's be explicit about this for the sake of clarity. Differential Revision: https://reviews.llvm.org/D111328
-
Geoffrey Martin-Noble authored
Updates the Bazel config for changes from https://github.com/llvm/llvm-project/commit/3b01cf9286 by adding configuration for the new OpenMPOpsInterfaces tablegn target. Differential Revision: https://reviews.llvm.org/D111347
-
Louis Dionne authored
Vendors take libc++ and ship it in various ways. Some vendors might ship it differently from what upstream LLVM does, i.e. the install location might be different, some ABI properties might differ, etc. In the past few years, I've come across several instances where having a place to test some of these properties would have been incredibly useful. I also just got bitten by the lack of tests of that kind, so I'm adding some now. The tests added by this commit for Apple platforms have numerous TODOs that capture discrepancies between the upstream LLVM CMake and the slightly-modified build we perform internally to produce Apple's system libc++. In the future, the goal would be to upstream all those differences so that it's possible to build a faithful Apple system libc++ with the upstream LLVM sources only. But this isn't only useful for Apple - this lays out the path for any vendor being able to add their own checks (either upstream or downstream) to libc++. This is a re-application of 9892d164, which was reverted in 138dc271 because it broke the build. The issue was that we didn't apply the required changes to libunwind and our CI didn't notice it because we were not running the libunwind tests. This has been fixed now, and we're running the libunwind tests in CI now too. Differential Revision: https://reviews.llvm.org/D110736
-
Keith Smiley authored
Some subprojects like compiler-rt define the `darwin` feature in their lit config, but lld does not do that, so we need to use the global system-darwin here instead. This test seems to have drifted from the actual behavior so I also had to add `/usr/local/lib` here to make it pass. Differential Revision: https://reviews.llvm.org/D111268
-
Jamie Schmeiser authored
Revert "Reland A new option -print-on-crash that prints the IR as it was upon entering the last pass when there is a crash." This reverts commit 13d15927.
-
Jon Chesterfield authored
-
Sanjay Patel authored
This helps with examples like: https://llvm.org/PR52057 ...but we need at least one more fold to fix that case.
-
Jay Foad authored
Differential Revision: https://reviews.llvm.org/D111007
-
Jay Foad authored
Differential Revision: https://reviews.llvm.org/D111006
-
Jay Foad authored
When PHIElimination adds kills after lowering PHIs to COPYs it knows that some instructions after the inserted COPY might use the same SrcReg, but it was only looking at the terminator instructions at the end of the block, not at other instructions like INLINEASM_BR that can appear after the COPY insertion point. Since we have already called findPHICopyInsertPoint, which knows about INLINEASM_BR, we might as well reuse the insertion point that it calculated when looking for instructions that might use SrcReg. This fixes a machine verification failure if you force machine verification to run after PHIElimination (currently it is disabled for other reasons) when running test/CodeGen/X86/callbr-asm-phi-placement.ll. Differential Revision: https://reviews.llvm.org/D110834
-
Jay Foad authored
-
Jamie Schmeiser authored
Reland A new option -print-on-crash that prints the IR as it was upon entering the last pass when there is a crash. Summary: The IR is saved in its print form before each pass is started and a signal handler is registered. If the compilation crashes, the signal handler will print the saved IR to dbgs(). This option can be modified using -print-module-scope to get the IR for the complete module. Filtering options can be used to improve performance by limiting which passes (or functions) save the IR. Note that this option only works with the new pass manager. Author: Jamie Schmeiser <schmeise@ca.ibm.com> Reviewed By: aeubanks (Arthur Eubanks) yrouban (Yevgeny Rouban) Differential Revision: https://reviews.llvm.org/D86657
-
Kiran Chandramohan authored
Add an interface for outlineable OpenMP operations. This patch was initially done in fir-dev and is now needed for the upstreaming. Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D111310
-
Stella Laurenzo authored
[mlir][python] Temporarily disable test for converting unsupported DenseElementsAttr types to a buffer. * Need to investigate the proper solution to https://github.com/pybind/pybind11/issues/3336 or engineer something different. * The attempt to produce an empty buffer_info as a workaround triggers asan/ubsan. * Usage of this API does not arise naturally in practice yet, and it is more important to be asan/crash clean than have a solution right now. * Switching back to raising an exception, even though that triggers terminate().
-
Jay Foad authored
X86InstrInfo::convertToThreeAddress would convert this: %1:gr32 = ADD32rr killed %0:gr32(tied-def 0), %0:gr32, implicit-def dead $eflags to this: undef %2.sub_32bit:gr64 = COPY killed %0:gr32 undef %3.sub_32bit:gr64_nosp = COPY %0:gr32 %1:gr32 = LEA64_32r killed %2:gr64, 1, killed %3:gr64_nosp, 0, $noreg Note that in the ADD32rr, %0 was used twice and the first use had a kill flag, which is what MachineInstr::addRegisterKilled does. In the converted code, each use of %0 is copied to a new reg, and the first COPY inherits the kill flag from the ADD32rr. This causes machine verification to fail (if you force it to run after TwoAddressInstructionPass) because the second COPY uses %0 after it is killed. Note that machine verification is currently disabled after TwoAddressInstructionPass but this is a step towards being able to enable it. Fix this by not inserting more than one COPY from the same source register. Differential Revision: https://reviews.llvm.org/D110829
-
Jay Foad authored
-
Artem Belevich authored
Otherwise we may end up with an inconsistent redeclarations of the standard library functions if _FORTIFY_SOURCE is in effect. https://bugs.llvm.org/show_bug.cgi?id=47869 Differential Revision: https://reviews.llvm.org/D110781
-
Amara Emerson authored
This is a straight port from the equivalent DAG combine. Differential Revision: https://reviews.llvm.org/D110890
-
Craig Topper authored
Zbc RUN lines should use ZBC instead of BC in their prefix.
-
Akira Hatanaka authored
This is in preparation for another patch I'm planning to send later.
-
Fangrui Song authored
Extracted from Itay Bookstein's D108872.
-
Kevin P. Neal authored
In the review of D111085 it was pointed out that these functions don't conform to the naming scheme in use in LLVM. With this commit we should be good for all of FPEnv.h.
-
Jay Foad authored
Print this basic block flag as inlineasm-br-indirect-target and parse it. This allows you to write MIR test cases for INLINEASM_BR. The test case I added is one that I wanted to precommit anyway for D110834. Differential Revision: https://reviews.llvm.org/D111291
-
Bjorn Pettersson authored
This patch fixes problems reported in PR51981. When rotating a loop it isn't enough to just forget SCEV for that loop nest. When rotating we might clone some instructions from the old header into the preheader, and insert new PHI nodes to merge values together. There could be users of the original value that are updated to use the PHI result. And those users were not necessarily depending on a PHI node earlier, so they weren't cleaned up when just forgetting all SCEV:s for the loop nest. So we need to explicitly forget those values to avoid invalid cached SCEV expressions. Reviewed By: fhahn, mkazantsev Differential Revision: https://reviews.llvm.org/D110813
-
Bjorn Pettersson authored
Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D110812
-
Luke Drummond authored
mingw-g++ does not correctly support the full `std::errc` namespace as worded in the standard[1]. As such, we cannot reliably use all names therein. This patch changes the use of `std::errc::state_not_recoverable`, to use portable error codes from the `llvm::errc` equivalent. [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71444 Reviewed by v.g.vassilev Differential Revision: https://reviews.llvm.org/D111315
-
Kazu Hirata authored
This patch fixes: llvm-project/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp:204:6: error: missing field 'invalidate_regs' initializer [-Werror,-Wmissing-field-initializers]
-