- Jun 29, 2023
-
-
Jie Fu authored
/Users/jiefu/llvm-project/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp:97:33: error: unused variable 'FuncInfo' [-Werror,-Wunused-variable] RISCVMachineFunctionInfo *FuncInfo = ^ /Users/jiefu/llvm-project/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp:106:29: error: unused variable 'TLI' [-Werror,-Wunused-variable] const TargetLowering &TLI = CurDAG->getTargetLoweringInfo(); ^ 2 errors generated -
Yunze Zhu authored
There is an issue: https://github.com/llvm/llvm-project/issues/63515 The issue is because when expanding SPLAT_VECTOR_SPLIT_I64_VL node, only memoperand is used to create dependency. However in ScheduleDAGNodes, dependency is checked with chain only, and breaks order of store/load instructions. I think in llvm.bitreverse.nxv2i64 intrinsic SPLAT_VECTOR_SPLIT_I64_VL nodes are parallel processed, so no chain should be add to these nodes. Using temporary in expanding SPLAT_VECTOR_SPLIT_I64_VL node can keep vlse instruction get correct value no matter order of store instructions is changed. Differential Revision: https://reviews.llvm.org/D153743
-
Florian Hahn authored
Extra tests for D152730.
-
David Spickett authored
This reverts commit 3254623d. One test has been updated to add the "-s" flag which along with 86fd957a should fix the tests on MacOS. An assert on hijack listener added in that patch was removed, it seems to be correct on MacOS but not on Linux.
-
Arthur Eubanks authored
Test from D153392 in both the alloca and malloc variants.
-
Florian Hahn authored
Delegate checking of the constraint & its preconditions to the existing ::isValid. This reduces duplication and allows additional optimizations together with D152730.
-
Christian Ulmann authored
Debug intrinsics are allowed to violate SSA dominance and might thus cause the LLVM import to produce invalid LLVM dialect. This commit ensures that the debug intrinsics are emitted right after the definition of their SSA operands. As the position of debug intrinsics has no meaning, changing it has no semantic implication. Reviewed By: gysit Differential Revision: https://reviews.llvm.org/D153984
-
Michael Platings authored
The error could be awkward to work around when experimenting with flags that didn't have a matching multilib. It also broke many tests when multilib.yaml was present in the build directory. Reviewed By: simon_tatham, MaskRay Differential Revision: https://reviews.llvm.org/D153885
-
Michael Platings authored
Also replace aarch64_be-*-eabi with aarch64_be Using "eabi" for aarch64 targets is a common mistake and warned by Clang Driver. We want to avoid it elsewhere as well. Just use the common "aarch64" without other triple components. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D153943
-
Nikita Popov authored
-
Juan Manuel MARTINEZ CAAMAÑO authored
Before this patch, the compiler gave a bump to the inline-threshold when the total size of the allocas passed as arguments to the callee was below 256 bytes. This heuristic ignores that some of these allocas could have be removed by SROA if inlining was applied. Ideally, this bonus would be attributed to the threshold once the size of all the allocas that could not be handled by SROA is known: at the end of the InlineCost analysis. However, we may never reach this point if the inline-cost analysis exits early when the inline cost goes over the threshold mid-analysis. This patch proposes: * Attribute the bonus in the inline-threshold when allocas are passed as arguments (regardless of their total size). * Assigns a cost to each alloca proportional to its size, such that the cost of all the allocas cancels the bonus. Potential problems: * This patch assumes that removing alloca instructions with SROA is always profitable. This may not be the case if the total size of the allocas is still too big to be promoted to registers/LDS. * Redundant calls to getTotalAllocaSize * Awkwardly, the threshold attributed contributes to the single-bb and vector bonus. Reviewed By: scchan Differential Revision: https://reviews.llvm.org/D149741
-
Juan Manuel MARTINEZ CAAMAÑO authored
On AMDGPU, alloca instructions have penalty that can be avoided when SROA is applied after inlining. This patch introduces the default implementation of TargetTransformInfo::getCallerAllocaCost. Reviewed By: mtrofin Differential Revision: https://reviews.llvm.org/D149740
-
mgrzywac authored
Add flags allowing to use compile flags and libraries provided in cache with libunwind. Similar flags are already present in libc++ and libc++abi CMakeLists files. Differential Revision: https://reviews.llvm.org/D150252
-
Craig Topper authored
[RISCV] Do a more complete job of disabling extending loads and truncating stores for fixed vector types. We weren't marking some combinations as Expand if ones of the types wasn't legal. Fixes #63596.
-
Hanbum Park authored
Strengthen the fold for icmps of non-overlapping storage, by working on the difference of offsets, rather than considering both offsets independently. In particular, this allows handling comparisons of pointers to the end of equal-sized allocations. Proofs: https://alive2.llvm.org/ce/z/Po2nL4 Differential Revision: https://reviews.llvm.org/D153752
-
Martin Braenne authored
The newly added tests crash without the other changes in this patch. Reviewed By: sammccall, xazax.hun, gribozavr2 Differential Revision: https://reviews.llvm.org/D153960
-
Nikita Popov authored
We know that certain pointers (e.g. non-extern-weak globals or allocas in default address space) are not null, in which case the lowest address they can be allocated at is their alignment. This allows us to calculate better exit counts for loops that have an additional null check in the guarding condition (see alloca_icmp_null_exit_count). Differential Revision: https://reviews.llvm.org/D153624
-
Tobias Gysi authored
This revision adds support for the llvm.dbg.label.intrinsic and the corresponding DILabel metadata. Reviewed By: Dinistro Differential Revision: https://reviews.llvm.org/D153975
-
Jianjian GUAN authored
The fclass instruction only set one of the low 10 bits. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D154040
-
Mikael Holmen authored
Ignore declarations of global variables, just as we do with declarations of functions. Done as a follow up to the comments in https://reviews.llvm.org/D149209 Differential Revision: https://reviews.llvm.org/D153855 # Conflicts: # llvm/lib/IR/StructuralHash.cpp
-
Han Shen authored
Currently, to use PSI->isFunctionHotInCallGraph, we first need to calculate BPI->BFI, which is expensive. Instead, we can implement this directly with MBFI. Also as @wenlei mentioned in another patch review, that MachineSizeOpts already has isFunctionColdInCallGraph, isFunctionHotInCallGraphNthPercentile, etc implemented. These can be refactored and so they can be reused across MachineFunctionSplitting and MachineSizeOpts passes. This CL does this - it refactors out those internal static functions into PSI as templated functions, so they can be accessed easily. Differential Revision: https://reviews.llvm.org/D153927
-
Freddy Ye authored
Added tests for penryn, nehalem, westmere, sandybridge, ivybridge, haswell, bonnell, silvermont. Reviewed By: skan Differential Revision: https://reviews.llvm.org/D153714
-
Martin Braenne authored
This avoids the need for casts at callsites. Depends On D153852 Reviewed By: sammccall, xazax.hun, gribozavr2 Differential Revision: https://reviews.llvm.org/D153854
-
Martin Braenne authored
Previously, the newly added test would crash. Depends On D153851 Reviewed By: gribozavr2 Differential Revision: https://reviews.llvm.org/D153852
-
luxufan authored
Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D153945
-
zhanglimin authored
This patch enabled msan in LLVM and fixed all failing tests in check-msan. It does not add VarArgHelper implementation on LoongArch, which will be done separately later. And it adds a test for VarArgNoOpHelper, which is based on the X86 one. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D152692
-
Manna, Soumi authored
In findMethodDecl(clang::ObjCMessageExpr const *, clang::ObjCObjectPointerType const *, clang::ASTContext &), if the MessageExpr->getReceiverKind() is not Instance or Class, we never dereference pointer “ReceiverObjectPtrType”. Also, we don't dereference the pointer “ReceiverObjectPtrType” if ReceiverType is ObjCIdType or ObhjCClassType. So the pointer “ReceiverObjectPtrType”is only used in this branch and the declaration should be here. This patch directly uses ReceiverType->castAs<ObjCObjectPointerType>() instead of ReceiverObjectPtrType when calling canAssignObjCInterfaces() to express the intent more clearly. Reviewed By: erichkeane, steakhal Differential Revision: https://reviews.llvm.org/D152194
-
zhanglimin authored
This patch adds basic memory sanitizer support for loongarch64 with 47-bit VMA, which memory layout is based on x86_64. The LLVM part of the LoongArch memory sanitizer implementation will be done separately, which will fix failing tests in check-msan. These failing tests fail with the following same error: "error in backend: unsupported architecture". Reviewed By: #sanitizers, vitalybuka, MaskRay Differential Revision: https://reviews.llvm.org/D140528
-
Wang, Xin10 authored
Fix static analyzer reports issue, add assert to avoid analyzer report. Reviewed By: igor.kirillov Differential Revision: https://reviews.llvm.org/D153942
-
Weining Lu authored
Reviewed By: xen0n, MaskRay, hev Differential Revision: https://reviews.llvm.org/D153872
-
4vtomat authored
Differential Revision: https://reviews.llvm.org/D153836
-
Manna, Soumi authored
In getRVVTypeSize(clang::ASTContext &, clang::BuiltinType const *) potential integer overflow occurs on expression VScale->first * MinElts with type unsigned int (32 bits, unsigned) is evaluated using 32-bit arithmetic, and then used in a context that expects an expression of type uint64_t (64 bits, unsigned). To avoid integer overflow, this patch changes the types of variables MinElts and EltSize to uint64_t from unsigned instead of the cast. Reviewed By: erichkeane Differential Revision: https://reviews.llvm.org/D153146
-
Hideto Ueno authored
Follow-up to D154015
-
Hideto Ueno authored
This fixes a bug that `OperationEquivalence::computeHash` doesn't combine hash of operation locations even when `IgnoreLocations` is false. Added a unit test which fails at the current trunk. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D154015
-
Kai Sasaki authored
Memref normalization fails to recognize the non-zero symbols used in the memref type itself with strided, offset information. It causes the crash with the type like `memref<128x512xf32, strided<[?, ?], offset: ?>>`. The original issue is here. https://github.com/llvm/llvm-project/issues/61345 Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D150250
-
Amir Ayupov authored
Reviewed By: #bolt, rafauler Differential Revision: https://reviews.llvm.org/D153994
-
Amir Ayupov authored
Reviewed By: #bolt, rafauler Differential Revision: https://reviews.llvm.org/D153987
-
Amir Ayupov authored
Add an extra point of dumping functions: immediately after attaching the profile information. This dumping is enabled by newly introduced `-print-profile` and `-print-all`. The reason is that in `aggregate-only`/perf2bolt mode BOLT may not reach the point of printing the function after CFG is constructed (`-print-cfg`), while we may still want to inspect the attached profile, especially for diff'ing purposes. Reviewed By: #bolt, rafauler Differential Revision: https://reviews.llvm.org/D153996
-
Tue Ly authored
-
Christopher Ferris authored
When I moved the primary to use the faster get time syscall, I missed the secondary use. Now fix the secondary to use this function too. Reviewed By: Chia-hungDuan Differential Revision: https://reviews.llvm.org/D154012
-