diff options
author | Florian Hahn <flo@fhahn.com> | 2020-07-17 10:27:14 +0100 |
---|---|---|
committer | Florian Hahn <flo@fhahn.com> | 2020-07-17 10:27:43 +0100 |
commit | e297006d6f02f0f54a69223b98defde09c43158f (patch) | |
tree | d41c06c04e4c77b31a123b63187e021536bee813 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 650baf22e69fff99bbfbea65edcd8e202b05fdff (diff) | |
download | llvm-e297006d6f02f0f54a69223b98defde09c43158f.zip llvm-e297006d6f02f0f54a69223b98defde09c43158f.tar.gz llvm-e297006d6f02f0f54a69223b98defde09c43158f.tar.bz2 |
[ScheduleDAG] Move DBG_VALUEs after first term forward.
MBBs are not allowed to have non-terminator instructions after the first
terminator. Currently in some cases (see the modified test),
EmitSchedule can add DBG_VALUEs after the last terminator, for example
when referring a debug value that gets folded into a TCRETURN
instruction on ARM.
This patch updates EmitSchedule to move inserted DBG_VALUEs just before
the first terminator. I am not sure if there are terminators produce
values that can in turn be used by a DBG_VALUE. In that case, moving the
DBG_VALUE might result in referencing an undefined register. But in any
case, it seems like currently there is no way to insert a proper DBG_VALUEs
for such registers anyways.
Alternatively it might make sense to just remove those extra DBG_VALUES.
I am not too familiar with the details of debug info in the backend and
would appreciate any suggestions on how to address the issue in the best
possible way.
Reviewers: vsk, aprantl, jpaquette, efriedma, paquette
Reviewed By: aprantl
Differential Revision: https://reviews.llvm.org/D83561
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions