- Apr 29, 2020
-
-
Eric Christopher authored
This reverts commit ad38f4b3. As it broke building the unittests: .../sources/llvm-project/llvm/unittests/Support/Path.cpp:334:5: error: use of undeclared identifier 'set' set(Value); ^ 1 error generated.
-
Jessica Clarke authored
Summary: This is a small improvement for OpenCL diagnostics, but is also useful for our CHERI fork, as our __capability qualifier is suppressed from diagnostics when all pointers are capabilities, only being used when pointers need to be explicitly opted-in to being capabilities. Reviewers: rsmith, Anastasia, aaron.ballman Reviewed By: Anastasia, aaron.ballman Subscribers: aaron.ballman, arichardson, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D78777
-
Stanislav Mekhanoshin authored
These are only needed as VGPR counterpart. Differential Revision: https://reviews.llvm.org/D78597
-
Jessica Paquette authored
Add missing ifndef to make release builds happy. Example failure: http://lab.llvm.org:8011/builders/fuchsia-x86_64-linux/builds/4006/steps/ninja-build/logs/stdio
-
Craig Topper authored
[X86] Add PACK instructions to hasUndefRegUpdate so the BreakFalseDeps pass will reassign an undef second source to match the first source We generate PACK instructions with an undef second source when we are truncating from a 128-bit vector to something narrower and we don't care about the upper bits of the vector register. The register allocation process will always assign untied undef uses to xmm0. This creates a false dependency on xmm0. By adding these instructions to hasUndefRegUpdate, we can get the BreakFalseDeps pass to reassign the source to match the other input. Normally this interface is used for instructions that might need an xor inserted to break the dependency. But the pass also has a heuristic that tries to use the same register as other sources. That should always be possible for these instructions so we'll never trigger the xor dependency break. Differential Revision: https://reviews.llvm.org/D79032
-
Stanislav Mekhanoshin authored
These are used in SReg_32 and when we start to use SGPR_LO16 there will be compaints that not all registers in RC support all subreg indexes. For now it is NFC. Unused regunits are reserved so that verifier does not complain about missing phys reg live-ins. Differential Revision: https://reviews.llvm.org/D78591
-
Jessica Paquette authored
Generalize the 16-bit FPR to 32-bit GPR logic to work for all cases where destination size is bigger than source size. Also fixed CheckCopy() always returning true instead of the result of isValidCopy(). Differential Revision: https://reviews.llvm.org/D77530 Patch by tambre (Raul Tambre)
-
Casey Carter authored
-
Siva Chandra Reddy authored
Reviewers: gchatelet, echristo Subscribers: mgorny, tschuett, libc-commits Tags: #libc-project Differential Revision: https://reviews.llvm.org/D79040
-
Vojtěch Štěpančík authored
Summary: This patch adds a function that is similar to `llvm::sys::path::home_directory`, but provides access to the system cache directory. For Windows, that is %LOCALAPPDATA%, and applications should put their files under %LOCALAPPDATA%\Organization\Product\. For *nixes, it adheres to the XDG Base Directory Specification, so it first looks at the XDG_CACHE_HOME environment variable and falls back to ~/.cache/. Subsequently, the Clangd Index storage leverages this new API to put index files somewhere else than the users home directory. Fixes https://github.com/clangd/clangd/issues/341 Reviewers: sammccall, chandlerc, Bigcheese Reviewed By: sammccall Subscribers: hiraditya, ilya-biryukov, MaskRay, jkorous, dexonsmith, arphaman, kadircet, ormris, usaxena95, cfe-commits, llvm-commits Tags: #clang-tools-extra, #clang, #llvm Differential Revision: https://reviews.llvm.org/D78501
-
Louis Dionne authored
Otherwise, trying to remove the file triggers an error on Windows.
-
Davide Italiano authored
<rdar://problem/62535712>
-
Vitaly Buka authored
With GCC 8 stack is different.
-
Sean Silva authored
Previously, they would only only verify `isa<DictionaryAttr>` on such attrs which resulted in crashes down the line from code assuming that the verifier was doing the more thorough check introduced in this patch. The key change here is for StructAttr to use `CPred<"$_self.isa<" # name # ">()">` instead of `isa<DictionaryAttr>`. To test this, introduce struct attrs to the test dialect. Previously, StructAttr was only being tested by unittests/, which didn't verify how StructAttr interacted with ODS. Differential Revision: https://reviews.llvm.org/D78975
-
Simon Pilgrim authored
-
Stanislav Mekhanoshin authored
This reverts commit 1baaa080.
-
Florian Hahn authored
This allows forward declarations of PointerCheck, which in turn reduce the number of times LoopAccessAnalysis needs to be included. Ultimately this helps with moving runtime check generation to Transforms/Utils/LoopUtils.h, without having to include it there. Reviewers: anemet, Ayal Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D78458
-
Stanislav Mekhanoshin authored
These are used in SReg_32 and when we start to use SGPR_LO16 there will be compaints that not all registers in RC support all subreg indexes. For now it is NFC. Unused regunits are reserved so that verifier does not complain about missing phys reg live-ins. Differential Revision: https://reviews.llvm.org/D78591
-
Mircea Trofin authored
Summary: Refactored the parameter and return type where they are too generally typed as Instruction. Reviewers: dblaikie, wmi, craig.topper Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79027
-
Eric Christopher authored
-
Saleem Abdulrasool authored
Some of the builders are building with C++ in the unified build. Merge this without review to try to restore the builder.
-
Walter Erquinigo authored
Summary: Currently loading core files on lldb-vscode is broken because there's a check in the attach workflow that asserts that the PID is valid, which of course fails for this case. Hence, I'm adding a "coreFile" argument for the attach request, which does the work correctly. I don't know how to test it effectively so that it runs on the buildbots and the debugger can in fact makes sense of it. Anyway, the change has been relatively simple. Reviewers: labath, clayborg Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D78839
-
Christopher Tetreault authored
Summary: Removes usage of VectorType::getNumElements identified by test located at CodeGen/aarch64-sve-intrinsics/acle_sve_dot.c. This code explicitly converts a potentially fixed length vector to scalable vector by constructing the ElementCount = {getNumElements(), true} Reviewers: rengolin, efriedma, kmclaughlin, c-rhodes, sdesmalen Reviewed By: efriedma Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78967 -
David Blaikie authored
-
David Blaikie authored
MustBeExecutedContextExplorer::InstructionIteratorMap: use unique_ptr for values in this map to simplify memory management
-
David Blaikie authored
-
Fangrui Song authored
* Merge QueueLock and CompletionLock. * Avoid spurious CompletionCondition.notify_all() when ActiveThreads is greater than 0. * Use default member initializers. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D78856
-
Fangrui Song authored
[ELF][PPC64] Don't perform toc-indirect to toc-relative relaxation for R_PPC64_TOC16_HA not followed by R_PPC64_TOC16_LO_DS The current implementation assumes that R_PPC64_TOC16_HA is always followed by R_PPC64_TOC16_LO_DS. This can break with: // Load the address of the TOC entry, instead of the value stored at that address addis 3, 2, .LC0@tloc@ha # R_PPC64_TOC16_HA addi 3, 3, .LC0@tloc@l # R_PPC64_TOC16_LO blr which is used by boringssl's util/fipstools/delocate/delocate.go https://github.com/google/boringssl/blob/master/crypto/fipsmodule/FIPS.md has some documentation. In short, this tool converts an assembly file to avoid any potential relocations. The distance to an input .toc is not a constant after linking, so the assembly cannot use an `addis;ld` pair. Instead, delocate changes the code to jump to a stub (`addis;addi`) which loads the TOC entry address. Reviewed By: sfertile Differential Revision: https://reviews.llvm.org/D78431
-
Sean Fertile authored
Implement passing of ByVal formal arguments when the argument is passed partly in the argument registers, with the remainder of the argument passed on the stack. Differential Revision: https://reviews.llvm.org/D78515
-
Reid Kleckner authored
Prior to this change, for a few compiler-rt libraries such as ubsan and the profile library, Clang would embed "-defaultlib:path/to/rt-arch.lib" into the .drective section of every object compiled with -finstr-profile-generate or -fsanitize=ubsan as appropriate. These paths assume that the link step will run from the same working directory as the compile step. There is also evidence that sometimes the paths become absolute, such as when clang is run from a different drive letter from the current working directory. This is fragile, and I'd like to get away from having paths embedded in the object if possible. Long ago it was suggested that we use this for ASan, and apparently I felt the same way back then: https://reviews.llvm.org/D4428#56536 This is also consistent with how all other autolinking usage works for PS4, Mac, and Windows: they all use basenames, not paths. To keep things working for people using the standard GCC driver workflow, the driver now adds the resource directory to the linker library search path when it calls the linker. This is enough to make check-ubsan pass, and seems like a generally good thing. Users that invoke the linker directly (most clang-cl users) will have to add clang's resource library directory to their linker search path in their build system. I'm not sure where I can document this. Ideally I'd also do it in the MSBuild files, but I can't figure out where they go. I'd like to start with this for now. Reviewed By: hans Differential Revision: https://reviews.llvm.org/D65543
-
Craig Topper authored
vXi1 types are legalized by promoting, but the narrow vectors are legalized by widening. This results in some truncates turning into any_extends.
-
Jessica Paquette authored
Similar to code in `getAArch64Cmp` in AArch64ISelLowering. When we get a compare against a constant, sometimes, that constant isn't valid for selecting an immediate form. However, sometimes, you can get a valid constant by adding 1 or subtracting 1, and updating the condition code. This implements the following transformations when valid: - x slt c => x sle c - 1 - x sge c => x sgt c - 1 - x ult c => x ule c - 1 - x uge c => x ugt c - 1 - x sle c => x slt c + 1 - x sgt c => s sge c + 1 - x ule c => x ult c + 1 - x ugt c => s uge c + 1 Valid meaning the constant doesn't wrap around when we fudge it, and the result gives us a compare which can be selected into an immediate form. This also moves `getImmedFromMO` higher up in the file so we can use it. Differential Revision: https://reviews.llvm.org/D78769
-
Shoaib Meenai authored
This reverts commit a3d95a50. Reverting due to UBSan failures: http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/40817/steps/check-lld%20ubsan/logs/stdio
-
Shoaib Meenai authored
This reverts commit 9598778b. Reverting due to UBSan failures: http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/40817/steps/check-lld%20ubsan/logs/stdio
-
Shoaib Meenai authored
UBSan complains about a memcpy with a null pointer, so just skip the memcpy call if the data is empty.
-
David Blaikie authored
-
Raphael Isemann authored
It seems that D74892 still hasn't fixed the issue on the bot. Currently investigating the bot breakage and meanwhile (again) reverting this...
-
Christopher Tetreault authored
Summary: Removes usage of VectorType::getNumElements identified by test located at CodeGen/aarch64-sve-intrinsics/acle_sve_abs.c. Since the type is an SVE predicate vector, it makes sense to specialize the code for scalable vectors only. Reviewers: rengolin, efriedma Reviewed By: efriedma Subscribers: tschuett, kristof.beyls, rkruppe, psnobl, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D78958
-
Jan Korous authored
We should synchronize reading of VFSWriter's data with the rest of the methods. Differential revision: https://reviews.llvm.org/D78956
-
Craig Topper authored
This adds support for X + SETAE --> sbb X, -1 X - SETAE --> adc X, -1 Fixes PR45700 Differential Revision: https://reviews.llvm.org/D78984
-