It is necessary to generate fixups in .debug_frame or .eh_frame as
relaxation is enabled due to the address delta may be changed after
linking.
There is an opcode with 6-bits data in debug frame encoding. So, we
also need 6-bits fixup types.
Differential D58335
[DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame. HsiangKai on Feb 17 2019, 3:45 PM. Authored by
Details
It is necessary to generate fixups in .debug_frame or .eh_frame as There is an opcode with 6-bits data in debug frame encoding. So, we
Diff Detail
Event TimelineComment Actions Perhaps we should keep getKindForSize as being in bytes, and add a new getKindForSizeInBits? This would reduce the diff, but more importantly ensures that downstream forks don't silently break until runtime due to the changed semantics of getKindForSize despite having the same type as before.
Comment Actions This seems sensible to me from a RISC-V perspective, though I'd appreciate it if one of the debug info people could feedback on the DWARF related changes. Might you have a chance to look at this @aprantl @probinson @JDevlieghere? Comment Actions The dwarfdump changes look okay, but the new tests don't exercise those changes. The simplest thing is probably to RUN llvm-dwarfdump in relax-debug-frame.ll and verify the output describes the frame as expected.
Comment Actions Use llvm-dwarfdump to ensure DWARF parsing is correct under relaxation.
Comment Actions Looking at this in more detail - shouldn't we be making use of the R_RISCV_SET* relocations? |