- Feb 16, 2023
-
-
Carlos Alberto Enciso authored
llvm-debuginfo-analyzer is a command line tool that processes debug info contained in a binary file and produces a debug information format agnostic “Logical View”, which is a high-level semantic representation of the debug info, independent of the low-level format. The code has been divided into the following patches: 1) Interval tree 2) Driver and documentation 3) Logical elements 4) Locations and ranges 5) Select elements 6) Warning and internal options 7) Compare elements 8) ELF Reader 8a) Memory Management 9) CodeView Reader Full details: https://discourse.llvm.org/t/llvm-dev-rfc-llvm-dva-debug-information-visual-analyzer/62570 This patch: This is a high level summary of the changes in this patch. Memory Management - Use Bump allocators for memory management. As the logical elements are only allocated in one pass (debuginfo parsing) and they are never manipulated/created/destroyed later, use the SpecificBumpPtrAllocator for the memory management. Reviewed By: dblaikie, Orlando Differential Revision: https://reviews.llvm.org/D137933
-
Tim Northover authored
-
Diana Picus authored
-
David Spickett authored
Our bot has been failing https://lab.llvm.org/buildbot/#/builders/178/builds/3967: Assertion `isecEnd - isecVA <= forwardBranchRange && "should only finalize sections in jump range"' failed. I think this is due to the use of size_t, which is 32 bit on 32 bit, for a value used in some 64 bit address calculations. Which was added in https://reviews.llvm.org/D144029. Switching to uint64_t fixes the issues.
-
Nikita Popov authored
Check upfront whether the load is based on a constant global with definitive initializer. Don't bother computing offsets otherwise.
-
Chuanqi Xu authored
Add a test to check that the template instantiation during the template specialization wouldn't be emitted again in the importer.
-
Evgeniy Brevnov authored
Currently, JT creates and updates local instances of BPI\BFI. As a result global ones have to be invalidated if JT made any changes. In fact, JT doesn't use any information from BPI/BFI for the sake of the transformation itself. It only creates BPI/BFI to keep them up to date. But since it updates local copies (besides cases when it updates profile metadata) it just waste of time. Current patch is a rework of D124439. D124439 makes one step and replaces local copies with global ones retrieved through AnalysisPassManager. Here we do one more step and don't create BPI/BFI if the only reason of creation is to keep BPI/BFI up to date. Overall logic is the following. If there is cached BPI/BFI then update it along the transformations. If there is no existing BPI/BFI, then create it only if it is required to update profile metadata. Please note if BPI/BFI exists on exit from JT (either cached or created) it is always up to date and no reason to invalidate it. Reviewed By: mkazantsev Differential Revision: https://reviews.llvm.org/D136827
-
Chuanqi Xu authored
One test for checking the decls in language linkage shouldn't be discarded and can be mangled correctly. Another one for checking we can't export again in an export decl.
-
Tobias Gysi authored
The revision adds support for importing alias.scope and noalias metadata from LLVM IR into LLVM dialect. It also adds a verifier to the AliasScopeMetadataOp to check that the associated domain exists and is of type AliasScopeDomainMetadataOp. Reviewed By: Dinistro Differential Revision: https://reviews.llvm.org/D143923
-
Nikita Popov authored
InstCombine is supposed to be a superset of InstSimplify, but we were not attempting simplification of insertvalue instructions. As the test change illustrates, we failed to remove some aggregate construction patterns because of that.
-
Nikita Popov authored
This is like test2 from the same file, but using poison instead of undef as base, which matches the IR we use nowadays.
-
Nikita Popov authored
We can only fold insertvalue undef, (extractvalue x, n) to x if x is not poison, otherwise we might be replacing undef with poison (https://alive2.llvm.org/ce/z/fnw3c8). The insertvalue poison case is always fine. I didn't go to particularly large effort to preserve cases where folding with undef is still legal (mainly when there is a chain of multiple inserts that end up covering the whole aggregate), because this shouldn't really occur in practice: We should always be generating the insertvalue poison form when constructing aggregates nowadays. Differential Revision: https://reviews.llvm.org/D144106
-
Valentin Clement authored
Scope to retrieve the associating entity is needed to map the symbol to the IR value. The scope can be found with a source information. For the type case in SELECT TYPE construct, the source information is on the Statement<TypeCase>. This patch updates the lowering so the scopes for each type guards is retrieved before the processing. Reviewed By: PeteSteinfeld, vdonaldson Differential Revision: https://reviews.llvm.org/D144133
-
jacquesguan authored
Because we are generating uninitialized value for no integer type and use `isUninitialized()` to judge if it is valid after https://reviews.llvm.org/rG93f081c896536112e1ca8133991d23cb1134793a, we should check the value before use `getValue` to get it. Fixes https://github.com/llvm/llvm-project/issues/59984. Reviewed By: Mogball Differential Revision: https://reviews.llvm.org/D141661
-
Fangrui Song authored
Following recent changes to remove non-core legacy passes.
-
Chuanqi Xu authored
Some codes become unused after we remove ModulesTS.
-
Chuanqi Xu authored
As the diagnostic message shows, we should remove -fmodules-ts flag in clang/llvm17. Since clang/llvm16 is already branched. We can remove the depreacared flag now.
-
Xiang1 Zhang authored
Reviewed By: LuoYuanke Differential Revision: https://reviews.llvm.org/D144163
-
Kazu Hirata authored
This patch replaces isPowerOf2_32 with llvm::has_single_bit<uint32_t> where the argument is wider than uint32_t.
-
Kazu Hirata authored
This patch replaces rotate with llvm::rotate<uint64_t> where the rotate count is an immediate.
-
Chuanqi Xu authored
We're going to remove the support for modules-ts. But there are a lot of tests which uses -fmodules-ts. We shouldn't remove them simply. This patch refactor these tests to use standard c++ modules.
-
Jun Sha (Joshua) authored
-
eopXD authored
Referencing the corresponding change from the source of the test cases: riscv-non-isa/rvv-intrinsic-doc#196 Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D144147
-
Lei Zhang authored
Plain `getVectorType()` can be quite confusing and error-prone given that, well, vector ops always work on vector types, and it can commonly involve both source and result vectors. So this commit makes various such accessor methods to be explicit w.r.t. source or result vectors. Reviewed By: ThomasRaoux Differential Revision: https://reviews.llvm.org/D144159
-
Kazu Hirata authored
This is part of an effort to migrate from llvm::Optional to std::optional: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
-
Craig Topper authored
This function doesn't use any members from the class so it can be static.
-
Jun Sha (Joshua) authored
-
Jun Sha (Joshua) authored
-
Fangrui Song authored
-
Pranav Kant authored
Fallback from 66b3f4a4
-
Peiming Liu authored
Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D144150
-
Alex Langford authored
Prior to setting up logging, we have uses of RNBLogSTDERR and RNBLogSTDOUT. These macros will dump to STDERR and STDOUT respectively if debugserver has a tty. Otherwise, it uses _DNBLog, which will do nothing if a logging function hasn't been set up. For example, if you specify a log file that cannot be opened for any reason and you don't have a tty, you have 0 insight into what happened. rdar://105473133 Differential Revision: https://reviews.llvm.org/D144142
-
Peiming Liu authored
[mlir][sparse] introduce operations to query sparse tensor slice offset/strides at the given dimenion Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D141442
-
Sami Tolvanen authored
Commit 71c7313f added integer normalization for CFI, but doesn't correctly pass the argument with -fsanitize=kcfi. Set CfiICallNormalizeIntegers also with SanitizerKind::KCFI to fix the issue.
-
Fangrui Song authored
Following recent changes to remove non-core legacy passes.
-
Peiming Liu authored
Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D140736
-
Leonard Chan authored
Looks like builders were failing for the sized variants of operator delete. These are hidden behind the __cpp_sized_deallocation macro which can be defined with -fsized-deallocation.
-
Chia-hung Duan authored
The implementations of those functions require the rounding target to be power-of-two. It's better to add a debugging check to avoid misuse. Besides, add a general verion of those three to accommadate non power-of-two cases. Also change the name to roundUp/roundDown/isAligned Reviewed By: cferris, cryptoad Differential Revision: https://reviews.llvm.org/D142658
-
Chia-hung Duan authored
Ensure the allocator is disabled before visiting all chunks. Reviewed By: cferris Differential Revision: https://reviews.llvm.org/D142157
-
Chia-hung Duan authored
Ideally, we want to assert that all the operations on Cache/QuarantineCache always have the `Mutex` acquired. However, the current architecture of accessing TSD is not easy to cooperate with the thread-safety analysis because of pointer aliasing. In alternative, we add the getters for accessing TSD member and attach proper thread-safety annotations on them. Reviewed By: cferris Differential Revision: https://reviews.llvm.org/D142151
-