[LLVMdev] DebugInfo: Missing non-trivially-copyable parameters in SelectionDAG

Micah Villmow micah.villmow at smachines.com
Tue Jun 25 16:23:21 PDT 2013


David,
 I ran into this problem about 4 years ago while working on the AMDIL backend. I don't think I ever got around to solving it, but I did have some hacky work-arounds that would look at the IR itself and processes the arguments instead of looking at the MachineFunction/DAG code. As far as I can tell, this has not been fixed and is still a warning in the AMD SDK release notes.

Micah

-----Original Message-----
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of David Blaikie
Sent: Monday, June 24, 2013 4:59 PM
To: LLVM Developers Mailing List; Eric Christopher; Dan Gohman
Subject: [LLVMdev] DebugInfo: Missing non-trivially-copyable parameters in SelectionDAG

This is a bit premature to be considered a code review, but given how unfamiliar I am with SelectionDAG (& that I'm seeing somewhat more 'interesting' results compared to my change to FastISel) I wanted to get a bit of feedback to see if I was on the right track or had missed any obvious cases.

I've attached my patch in progress (including a modification to the existing test case to demonstrate the missing parameter problem on
i386 (though it also turns up in x86-64 in cases where the SelectionDAG kicks in, the simplest of which was "foo func(foo f, foo
g) { return f; }" and 'g' goes missing)) and a log of the output of failing tests.

Several of them seem to be (to my eye) minor perturbations of instruction selection or register allocation. Do these look like they're within the realm of reasonable changes in behavior from my change or is something really broken? (there's one test that seems more problematic & is giving "Bad machine code: Non-terminator instruction after the first terminator" errors - but it /looks/ like that could be reproduced without the unused parameters & without my change, but that's just my own naive guess.




More information about the llvm-dev mailing list