- Jun 08, 2024
-
-
Craig Topper authored
-
Craig Topper authored
-
Daniil Kovalev authored
Reverts llvm/llvm-project#87635 On some corner cases, lld generated an object file with an empty REL section with `sh_info` set to 0. This file triggers an lld error when used as its input. See https://github.com/llvm/llvm-project/pull/87635#issuecomment-2155318065 for details.
-
Shivam Gupta authored
Passing the result of c_str() to a stream is slow and redundant. This change removes unnecessary c_str() calls and uses the string object directly. Caught by cppcheck - lldb/tools/debugserver/source/JSON.cpp:398:19: performance: Passing the result of c_str() to a stream is slow and redundant. [stlcstrStream] lldb/tools/debugserver/source/JSON.cpp:408:64: performance: Passing the result of c_str() to a stream is slow and redundant. [stlcstrStream] lldb/tools/debugserver/source/JSON.cpp:420:54: performance: Passing the result of c_str() to a stream is slow and redundant. [stlcstrStream] lldb/tools/debugserver/source/JSON.cpp:46:13: performance: Passing the result of c_str() to a stream is slow and redundant. [stlcstrStream] Fix #91212
-
Craig Topper authored
Also remove some unused Constraint paramters that appeared before the sew parameter.
-
Craig Topper authored
These usually have a single value that is always used. We can just hardcode into the class body.
-
Vladimir Vereschaka authored
* generate Clang configuration file with provided target sysroot (TOOLCHAIN_TARGET_SYSROOTFS) * explicitly pass provided target sysroot into the compiler-rt tests configuration. * added ability to configure a type of the build libraries -- shared or static (TOOLCHAIN_SHARED_LIBS, default OFF) In behalf of: #94284
-
Helena Kotas authored
`HLSLShaderAttr::ShaderType` enum is a subset of `llvm::Triple::EnvironmentType`. We can use `llvm::Triple::EnvironmentType` directly and avoid converting one enum to another.
-
Thurston Dang authored
DFSan's sscanf is incorrect (https://github.com/llvm/llvm-project/issues/94769), which results in erroneous matches when scraping RSS from /proc/maps. This patch works around the issue by using strstr as a secondary check. It also adds a loose validity check for the initial RSS measurement, to guard against regressions in get_rss_kb(). Fixes https://github.com/llvm/llvm-project/issues/91287
-
Jie Fu authored
[mlir] Handle the newly-added "Reserved" FramePointerKind for 1a523925 (NFC) /llvm-project/mlir/lib/Target/LLVMIR/ModuleImport.cpp:48: tools/mlir/include/mlir/Dialect/LLVMIR/LLVMConversionEnumsFromLLVM.inc:158:11: error: enumeration value 'Reserved' not handled in switch [-Werror,-Wswitch] switch (value) { ^~~~~ 1 error generated.
-
Tom Stellard authored
This job will run once per day on the main branch, and for every commit on a release branch. It currently only builds llvm, but could add more sub-projects in the future. OpenSSF Best Practices recommends running a static analyzer on software before it is released: https://www.bestpractices.dev/en/criteria/0#0.static_analysis
-
Craig Topper authored
-
Craig Topper authored
This class is most closely related to VPatBinaryM.
-
Craig Topper authored
These pseudoinstructions have a policy operand so calling them TU is confusing.
-
Craig Topper authored
VPseudoVROR can inherit from VPseudoVROL. Adjust the names to VPseudoVROT_VV_VX and VPseudoVROT_VV_VX_VI.
-
Craig Topper authored
The scheduler class name is hardcoded in the class so its not a general class.
-
LLVM GN Syncbot authored
-
Kazu Hirata authored
-
Nico Weber authored
-
Kazu Hirata authored
-
Kazu Hirata authored
While we are at it, this patch changes the type of ValueCounts to std:array<double, ...> so that we can use std::array:fill. Identified with modernize-use-default-member-init.
-
Paul Kirth authored
So long as ld -r links using bitcode always result in an ELF object, and not a merged bitcode object, the output form a relocatable link using FatLTO objects should not have a .llvm.lto section. Prior to this, using the object code sections would cause the bitcode section in the output of a relocatable link to be corrupted, by concatenating all the .llvm.lto sections together. This patch discards SHT_LLVM_LTO sections when not using --fat-lto-objects, so that the relocatable ELF output won't contain inalid bitcode.
-
csstormq authored
This patch simplifies `sdiv` to `udiv` by preserving the `nsw` flag for `(X | Op01C) + Op1C --> X + (Op01C + Op1C)` if the sum of `Op01C` and `Op1C` will not overflow, and preserves the `nuw` flag unconditionally. Alive2 Proofs (provided by @nikic): https://alive2.llvm.org/ce/z/nrdCZT, https://alive2.llvm.org/ce/z/YnJHnH
-
Kazu Hirata authored
We call llvm::sort in a couple of places in the V3 encoding: - We sort Frames by FrameIds for stability of the output. - We sort call stacks in the dictionary order to maximize the length of the common prefix between adjacent call stacks. It turns out that we can improve the deserialization performance by modifying the comparison functions -- without changing the format at all. Both places take advantage of the histogram of Frames -- how many times each Frame occurs in the call stacks. - Frames: We serialize popular Frames in the descending order of popularity for improved cache locality. For two equally popular Frames, we break a tie by serializing one that tends to appear earlier in call stacks. Here, "earlier" means a smaller index within llvm::SmallVector<FrameId>. - Call Stacks: We sort the call stacks to reduce the number of times we follow pointers to parents during deserialization. Specifically, instead of comparing two call stacks in the strcmp style -- integer comparisons of FrameIds, we compare two FrameIds F1 and F2 with Histogram[F1] < Histogram[F2] at respective indexes. Since we encode from the end of the sorted list of call stacks, we tend to encode popular call stacks first. Since the two places use the same histogram, we compute it once and share it in the two places. Sorting the call stacks reduces the number of "jumps" by 74% when we deserialize all MemProfRecords. The cycle and instruction counts go down by 10% and 1.5%, respectively. If we sort the Frames in addition to the call stacks, then the cycle and instruction counts go down by 14% and 1.6%, respectively, relative to the same baseline (that is, without this patch).
-
jimingham authored
This is useful if you have a transcript of a user session and want to rerun those commands with RunCommandInterpreter. The same functionality is also useful in testing. I'm adding it primarily for the second reason. In a subsequent patch, I'm adding the ability to Python based commands to provide their "auto-repeat" command. Among other things, that will allow potentially state destroying user commands to prevent auto-repeat. Testing this with Shell or pexpect tests is not nearly as accurate or convenient as using RunCommandInterpreter, but to use that I need to allow auto-repeat. I think for consistency's sake, having interactive sessions always do auto-repeats is the right choice, though that's a lightly held opinion...
-
Craig Topper authored
It doesn't always have a CarryIn. One of the parameters is named CarryIn. It always has CarryOut or a CarryIn and in some cases both.
-
Craig Topper authored
They were always passed the same values, 1 for CarryIn and "" for Constraint.
-
Craig Topper authored
-
Kazu Hirata authored
-
Teresa Johnson authored
To help debug or surface matching issues, add more statistics to the matching. Also add optional emission of each context seen in the function profiles along with its allocation type, size in bytes, and whether it was matched. This information is emitted along with a hash of the full stack context, to allow deduplication across modules for allocations within header files.
-
srcarroll authored
This patch adds `getLoopInductionVars`, `getLoopLowerBounds`, `getLoopBounds`, `getLoopSteps` interface methods to `LoopLIkeOpInterface`. The corresponding single value versions have been moved to shared class declaration and have been implemented based on the new interface methods.
-
Aiden Grossman authored
This reverts commit b6824c9d. This relands commit 0a6c74e2. The original commit was reverted due to buildbot failures. These bots should be updated now, so hopefully this will stick.
-
Craig Topper authored
-
OverMighty authored
See Buildbot failure: https://lab.llvm.org/buildbot/#/builders/138/builds/67337.
-
Congcong Cai authored
Add new check misc-use-internal-linkage to detect variable and function can be marked as static. --------- Co-authored-by:Danny Mösch <danny.moesch@icloud.com>
-
OverMighty authored
Part of #93566.
-
Craig Topper authored
These instructions are very similar to narrowing shift instructions which already have this. Remove TargetConstraintType parameter from VPseudoBinaryV_WV class. Only 2 was ever passed to it. Pass 2 directly to the classes instantiated from VPseudoBinaryV_WV instead.
-
Kazu Hirata authored
-
Amir Ayupov authored
Summary: Use workaround for quadratic behavior inside AttemptToFoldSymbolOffsetDifference called from BinaryEmitter::emitLSDA. https://github.com/llvm/llvm-project/commit/b06e736982a3568fe2bcea8688550f9e393b7450#commitcomment-142836456
-
Keith Smiley authored
-