Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DebugInfo] Poor support for x87 variable locations #50377

Open
jmorse opened this issue Jul 8, 2021 · 0 comments
Open

[DebugInfo] Poor support for x87 variable locations #50377

jmorse opened this issue Jul 8, 2021 · 0 comments
Labels
bugzilla Issues migrated from bugzilla llvm:codegen wrong-debug

Comments

@jmorse
Copy link
Member

jmorse commented Jul 8, 2021

Bugzilla Link 51033
Version trunk
OS Linux
Blocks #38116
CC @RKSimon

Extended Description

Observed over in https://reviews.llvm.org/D105657 , both our current variable location implementation and the instruction referencing stuff I've been working on are unable to cope with x87 variable locations. Both are unable to actually express where in registers variable values go.

The root cause is the baroqueness of x87 itself: it refers to registers as a stack, rather than just naming them directly. If we had a DBG_VALUE that referred to $st(1), we might need to issue additional DBG_VALUEs as the stack position of the value changed due to other FP instructions.

It's a significant pain in the neck, and VarLoc LiveDebugValues doesn't try to solve it. InstrRef LiveDebugValues doesn't try either. I suspect that interest in this matter is low (what with i386 processors being out of fashion for at least a decade) but thought I'd open the ticket in case there's something out there who this is relevant to.

@llvmbot llvmbot transferred this issue from llvm/llvm-bugzilla-archive Dec 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bugzilla Issues migrated from bugzilla llvm:codegen wrong-debug
Projects
None yet
Development

No branches or pull requests

1 participant