[all-commits] [llvm/llvm-project] 23ccb0: CodeGen: add a missing check for bit-slice overlap...
Saleem Abdulrasool via All-commits
all-commits at lists.llvm.org
Thu Dec 14 13:59:28 PST 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 23ccb02c59d2ad6c1e8c79b7bf0e98c2afc36fb9
https://github.com/llvm/llvm-project/commit/23ccb02c59d2ad6c1e8c79b7bf0e98c2afc36fb9
Author: Saleem Abdulrasool <compnerd at compnerd.org>
Date: 2023-12-14 (Thu, 14 Dec 2023)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
A llvm/test/DebugInfo/codeview-bit-slice-fragments.ll
Log Message:
-----------
CodeGen: add a missing check for bit-slice overlap in CV (#75504)
Type dereferenced fragments are specified by offset and length in bits.
The representation in CodeView is defined in terms of byte offsets. If
the bit slice overlaps at a byte that is included, we would create
invalid definition ranges.
Consider the following scenario:
~~~
01234567 01234567
---------+---------
==== ======
~~~
Here bits 1-4 are marked as defined as well as bits 7-9. The byte range
for the second portion overlaps and so we would say that bytes 1 and 2
are valid though there is potentially a hole. There is no way to
represent this in the defined range for the local variable in CodeView.
We simply can drop the fragment definition in such a scenario with the
variables are "optimized out".
Thanks to @rnk and @hjyamauchi for the discussion around this.
More information about the All-commits
mailing list