[all-commits] [llvm/llvm-project] 088d27: [ADT][DebugInfo][RemoveDIs] Add extra bits to ilis...
Jeremy Morse via All-commits
all-commits at lists.llvm.org
Tue Oct 17 07:26:59 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 088d272e83259a5d8e577a3d2e62012c42a9f9db
https://github.com/llvm/llvm-project/commit/088d272e83259a5d8e577a3d2e62012c42a9f9db
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2023-10-17 (Tue, 17 Oct 2023)
Changed paths:
M llvm/CMakeLists.txt
M llvm/cmake/modules/HandleLLVMOptions.cmake
M llvm/include/llvm/ADT/ilist_iterator.h
M llvm/include/llvm/ADT/ilist_node.h
M llvm/include/llvm/ADT/ilist_node_options.h
M llvm/include/llvm/ADT/simple_ilist.h
M llvm/include/llvm/IR/BasicBlock.h
M llvm/include/llvm/IR/GlobalAlias.h
M llvm/include/llvm/IR/GlobalIFunc.h
M llvm/include/llvm/IR/GlobalVariable.h
M llvm/include/llvm/IR/Instruction.h
M llvm/include/llvm/IR/Instructions.h
M llvm/include/llvm/IR/SymbolTableListTraits.h
M llvm/include/llvm/IR/ValueSymbolTable.h
M llvm/lib/IR/BasicBlock.cpp
M llvm/lib/IR/Instruction.cpp
M llvm/lib/IR/Instructions.cpp
M llvm/lib/IR/SymbolTableListTraitsImpl.h
M llvm/unittests/ADT/CMakeLists.txt
A llvm/unittests/ADT/IListIteratorBitsTest.cpp
Log Message:
-----------
[ADT][DebugInfo][RemoveDIs] Add extra bits to ilist_iterator for debug-info
...behind an experimental CMAKE option that's off by default.
This patch adds a new ilist-iterator-like class that can carry two extra bits
as well as the usual node pointer. This is part of the project to remove
debug-intrinsics from LLVM: see the rationale here [0], they're needed to
signal whether a "position" in a BasicBlock includes any debug-info before or
after the iterator.
This entirely duplicates ilist_iterator, attempting re-use showed it to be a
false economy. It's enable-able through the existing ilist_node options
interface, hence a few sites where the instruction-list type needs to be
updated. The actual main feature, the extra bits in the class, aren't part of
the class unless the cmake flag is given: this is because there's a
compile-time cost associated with it, and I'd like to get everything in-tree
but off-by-default so that we can do proper comparisons.
Nothing actually makes use of this yet, but will do soon, see the Phab patch
stack.
[0] https://discourse.llvm.org/t/rfc-instruction-api-changes-needed-to-eliminate-debug-intrinsics-from-ir/68939
Differential Revision: https://reviews.llvm.org/D153777
More information about the All-commits
mailing list