- Aug 17, 2023
-
-
Marek Sedláček authored
This change adds tooltips over graph edges that indicate the to and the from of the edge together with the probability for this edge. Differential Revision: https://reviews.llvm.org/D154096
-
Marek Sedláček authored
Using monospace font for the IR in the graphs improves readability over the default sans font. Differential Revision: https://reviews.llvm.org/D154092
-
Chuanqi Xu authored
Close https://github.com/llvm/llvm-project/issues/64755 This wouldn't affect the form @import as the test shows. The two affected test case `diag-flags.cpp` and `diag-pragma.cpp` are old test cases in 2017 and 2018, when we're not so clear about the direction of modules. And the things that these 2 tests tested can be covered by clang modules naturally. So I change the them into clang modules to not block this patch.
-
Noah Goldstein authored
This just expands on the existing logic that worked for `Or` and applies it to any binop where `0` is the identity value on the RHS i.e: `add`, `or`, `xor`, `shl`, etc... Proofs For Some: https://alive2.llvm.org/ce/z/XZo6JD Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D148414
-
Noah Goldstein authored
This is essentially NFC as the cases `decomposeBitTestICmp` covers that weren't already covered explicitly, will be canonicalized into the cases explicitly covered. As well the unsigned cases don't apply as the `Mask` is not a power of 2. That being said, using a well established helper is less bug prone and if some canonicalization changes, will prevent regressions here. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D148744
-
Noah Goldstein authored
AFAICT, the trunc is not needed for correctness/performance and just blocks what should be handlable cases. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D148413
-
Noah Goldstein authored
There was just alot of boolean logic to propegate conditions that seem clearer in conditions. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D148412
-
Noah Goldstein authored
Differential Revision: https://reviews.llvm.org/D148411
-
Noah Goldstein authored
The actual callsite we are adding to doesn't need to be `willreturn`/`nounwind`, only ever instructions between the callsite and the return. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D156844
-
Noah Goldstein authored
We can do this by just querying attribute in the callsite itself. This is both cleaner code and produces bette results. Differential Revision: https://reviews.llvm.org/D156843
-
Noah Goldstein authored
Differential Revision: https://reviews.llvm.org/D156842
-
Noah Goldstein authored
Just a simple instruction save. Proof: https://alive2.llvm.org/ce/z/Vb484j Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D154807
-
Noah Goldstein authored
Differential Revision: https://reviews.llvm.org/D154806
-
Mel Chen authored
This commit refactors the implementation of VPReductionRecipe to use reference instead of pointer for member RdxDesc. Because the member RdxDesc in VPReductionRecipe should not be a nullptr, using a reference will provide clearer semantics. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D158058
-
XinWang10 authored
1. In X86LowerAMXType.cpp dyn_cast could lead to UserI be nullptr which coud be dref in IRBuilder constructor. 2. In AsmPrinter.cpp, doInitialization could make MMI be nullptr if MMIWP->getMMI() is false, then the deref after could be unexpected. Reviewed By: skan Differential Revision: https://reviews.llvm.org/D157948
-
Jie Fu authored
CMake Warning (dev) in tools/dsymutil/CMakeLists.txt: A logical block opening on the line /Users/jiefu/llvm-project/llvm/tools/dsymutil/CMakeLists.txt:42 (if) closes on the line /Users/jiefu/llvm-project/llvm/tools/dsymutil/CMakeLists.txt:44 (endif) with mis-matching arguments. This warning is for project developers. Use -Wno-dev to suppress it. -
Vladimir Makaev authored
LLDB doesn't yet have a TypeSystemRust implemented however it is used to debug Rust applications. Most of the types map well enough to Clang types and there are python formatters implemented to display those types reasonably well in a debugger. However, Rust enums are completely ignored by LLDB as Clang never emits DW_TAG_variant_part inside DW_TAG_structure_type This diff adds a parser for DW_TAG_variant_part (Rust-only) that creates a matching valid Clang declaration to the Rust enum. As long as there is enough information and all fields have correct offsets synthetic/summary providers can be implemented to display it correctly when debugging Rust code Differential Revision: https://reviews.llvm.org/D149213
-
Volodymyr Sapsai authored
Reland "[modules] Fix error about the same module being defined in different .pcm files when using VFS overlays." Fixing Windows buildbot by not using "BuildTemporaries/module.modulemap" because it is interpreted as defining a module in "BuildTemporaries" directory. Fix errors like > module 'MultiPath' is defined in both 'path/to/modules.cache/3JR48BPRU7BCG/MultiPath-1352QHUF8RNMU.pcm' and 'path/to/modules.cache/3JR48BPRU7BCG/MultiPath-20HNSLLIUDDV1.pcm' To avoid building extra identical modules `-ivfsoverlay` option is not a part of the hash like "/3JR48BPRU7BCG/". And it is build system's responsibility to provide `-ivfsoverlay` options that don't cause observable differences. We also need to make sure the hash like "-1352QHUF8RNMU" is not affected by `-ivfsoverlay`. As this hash is defined by the module map path, use the path prior to any VFS remappings. rdar://111921464 Differential Revision: https://reviews.llvm.org/D156749
-
Andrés Villegas authored
Differential Revision: https://reviews.llvm.org/D157670
-
Slava Zakharin authored
This patch makes use of the HLFIR box produced for hlfir.declare in place of the FIR box (the memref of hlfir.declare) when possible. This makes the representation a little bit more clear, because all accesses are made via a single box. This reduces the life range of the original box, because the new temporary box produced by embox/rebox is used from now. Apparently, this works around some issues in the current HLFIR codegen, for example, look at the LIT tests changes around fir.array_coor produced by hlfir.designate codegen - using the FIR box for fir.array_coor might result in using incorrect lbounds. Apparently, this change enables more intrinsics simplifications because the SimplifyIntrinsicsPass looks for explicit embox/rebox in findBoxDef() to decide whether to apply the optimization. This change also provides better association of the base addresses referenced by OpenACC clauses with the corresponding boxes that might be used explicitly in OpenACC regions (e.g. for reading the lbounds). Reviewed By: razvanlupusoru, clementval Differential Revision: https://reviews.llvm.org/D158119
-
Vitaly Buka authored
-
Eric Christopher authored
-
Alfred Persson Forsberg authored
Differential Revision: https://reviews.llvm.org/D158128
-
Justin Bogner authored
We were using some convoluted logic here to check if the result of a `bool` returning function was false, causing MSVC to give a warning about "'>': unsafe use of type 'bool' in operation". This just removes the greater-than comparison of the bool against zero.
-
Jason Molenda authored
Add support for the `low_mem_addressing_bits` and `high_mem_addressing_bits` keys in the stop reply packet, in addition to the existing `addressing_bits`. Same behavior as in the qHostInfo packet. Clean up AddressableBits so we don't need to check if any values have been set in the object before using it to potentially update the Process address masks. Differential Revision: https://reviews.llvm.org/D158041
-
Andy Kaylor authored
This change fixes a case where there was a potential integer overflow when multiplying two 32-bit values and assigning the result to a 64-bit value. The potential overflow has been present since https://reviews.llvm.org/D132455 was re-landed. The initial version of the patch defined MaxBucketSize and NumberOfBuckets as size_t (which I guess would still be a problem for some targets). When the patch was re-landed they were defined as uint32_t, making the calculation of ExtHashMask subject to overflow. Differential Revision: https://reviews.llvm.org/D158117
-
Erik Pilkington authored
This reverts commit e26c24b8. These temporaries are only used in the callee, and their memory can be reused after the call is complete. rdar://58552124 Link: https://github.com/llvm/llvm-project/issues/38157 Link: https://github.com/llvm/llvm-project/issues/41896 Link: https://github.com/llvm/llvm-project/issues/43598 Link: https://github.com/ClangBuiltLinux/linux/issues/39 Link: https://reviews.llvm.org/rGfafc6e4fdf3673dcf557d6c8ae0c0a4bb3184402 Reviewed By: rjmccall Differential Revision: https://reviews.llvm.org/D74094
-
Valentin Clement authored
Lower the bind clause to the corresponding attribute Depends on D158120 Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D158121
-
Valentin Clement authored
Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D158120
-
usama hameed authored
bot
-
spupyrev authored
I noticed that `-reorder-functions=exec-count` doesn't work as expected due to a bug in the comparison function (which isn't symmetric). It is questionable whether anyone would want to ever use the sorting method (as sorting by say density is much better in all cases) but it is probably better to fix the bug. Reviewed By: Amir Differential Revision: https://reviews.llvm.org/D152959
-
usama hameed authored
getUBSanFunctionTypeHash. getUBSanFunctionTypeHash checks if a Type is a FunctionNoPrototype by calling isa<FunctionNoProtoType>(). This does not work correctly when the Type is wrapped in a sugar type such as an AttributedType. This patch fixes this by using isFunctionNoProtoType() function which removes sugar and returns the expected result. The added test is a sanity check that the compiler no longer crashes during compilation. It also compares the hash with and without the function attribute for both FunctionNoProtoType and FunctionProtoType. The hash remains the same for FunctionNoProtoType even with the addition of an attribute. rdar://113144087 Differential Revision: https://reviews.llvm.org/D157445
-
Thurston Dang authored
This applies the fix as suggested by Gelbpunkt in https://github.com/llvm/llvm-project/issues/64730, Thanks to Florian Mayer for pointing out that my earlier patch D151262 had caused this regression. Differential Revision: https://reviews.llvm.org/D158116
-
Alex Langford authored
Differential Revision: https://reviews.llvm.org/D158024
-
Elizabeth Andrews authored
Fixed static analyzer concern about null value dereference. getStmtForDiagnostics() can return null. Ensure statement exists before dereference in PathDiagnosticLocation::createBegin(). Differential Revision: https://reviews.llvm.org/D157888
-
Groverkss authored
This patch improves the reduction tiling for linalg to support multiple reduction dimensions. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D158005
-
Aart Bik authored
Alphabetical order, less whitespace removed some verbose comments for readability (which are preserved in the history if ever needed) Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D158114
-
Nathan Sidwell authored
There's a large amount of commonality in the riscv upgrader, make that clearer. And check for a riscv prefix before diving in. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D157924
-
William Huang authored
[SampleProfile] Potential use after move in SampleProfileLoader::promoteMergeNotInlinedContextSamples SampleProfileLoader::promoteMergeNotInlinedContextSample adds certain uninlined functions to the sample profile map (unordered_map, which is previously read from a profile file). This action may cause the map to be rehashed, invalidating all pointers to FunctionSamples used by many members of SampleProfileLoader, while the existing code did nothing to guard against that. This bug is theoretical since adding a few new functions to a large profile usually won't trigger a rehash, or even if there's a rehash std::unordered_map tries its best to expand its capacity in-place. This bug will trigger if the container type of sample profile map is changed to llvm::DenseMap or other implementation, such as in D147740, for SampleProfReader's performance reason. Reviewed By: wenlei Differential Revision: https://reviews.llvm.org/D157061
-
Aart Bik authored
This reorders the pass declarations and definitions in a consistent order and makes the layout a bit more clear. Also makes the "minipipeline" sparsification-and-bufferization available through the command line for individual testing. Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D158105
-