aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
diff options
context:
space:
mode:
authorPavel Labath <pavel@labath.sk>2024-06-25 10:52:11 +0200
committerGitHub <noreply@github.com>2024-06-25 10:52:11 +0200
commit8395f9cecd34af8a79c96e661e46a80d0d471fb1 (patch)
tree043bbbb48aed00ec9479fef4c73c58270c2b3837 /llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
parent2d84e0ffefda62da6193d339633dbb55654f7b5d (diff)
downloadllvm-8395f9cecd34af8a79c96e661e46a80d0d471fb1.zip
llvm-8395f9cecd34af8a79c96e661e46a80d0d471fb1.tar.gz
llvm-8395f9cecd34af8a79c96e661e46a80d0d471fb1.tar.bz2
[lldb/DWARF] Remove parsing recursion when searching for definition DIEs (#96484)
If ParseStructureLikeDIE (or ParseEnum) encountered a declaration DIE, it would call FindDefinitionTypeForDIE. This returned a fully formed type, which it achieved by recursing back into ParseStructureLikeDIE with the definition DIE. This obscured the control flow and caused us to repeat some work (e.g. the UniqueDWARFASTTypeMap lookup), but it mostly worked until we tried to delay the definition search in #90663. After this patch, the two ParseStructureLikeDIE calls were no longer recursive, but rather the second call happened as a part of the CompleteType() call. This opened the door to inconsistencies, as the second ParseStructureLikeDIE call was not aware it was called to process a definition die for an existing type. To make that possible, this patch removes the recusive type resolution from this function, and leaves just the "find definition die" functionality. After finding the definition DIE, we just go back to the original ParseStructureLikeDIE call, and have it finish the parsing process with the new DIE. While this patch is motivated by the work on delaying the definition searching, I believe it is also useful on its own.
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp')
0 files changed, 0 insertions, 0 deletions