<div dir="ltr">That would certainly seem to be the conceptually simplest way to go: treat each operation in the VLIW instruction the same as a scalar instruction, and have ".loc" be able to address them.<div><br></div><div>You'd then need a way to indicate to the debugger whether it is known correct to execute the operations sequentially instead of in parallel (I believe Itanium specifies that they is always true), or if they *must* be done in parallel to be correct e.g. "r1<-r2; r2<-r1" to swap values ("true" VLIW).</div><div><br></div><div>Even when the architecture says the result is the same as if all operations were done in parallel from the same set of input registers, in practice many or most instructions will work correctly if the operations are executed sequentially, and it would be nice for debuggers to be able to do this for single-stepping -- and to be able to execute the operations in source program order, in the event they have been mixed up within the instruction (perhaps because each operation position is limited to certain operation types).</div><div><br></div><div>So it would be useful to have some kind of "operation bundle" information, where each bundle is some arbitrary subset of the operations in the instruction, which *must* be executed in parallel.</div><div><br></div><div>Note: this is somehow the opposite to another notion of "bundle| in VLIW, where it means "everything in a bundle MAY be executed in parallel, but different bundles MUST be executed sequentially".</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 2, 2016 at 12:03 PM, Martin J. O'Riordan via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks Krzysztof, I hadn't noticed this.<br>
<br>
The patch refers to the target providing an 'op_index' register, but this seems like something that can only be handled by an integrated assembler.  We use an external assembler and I am curious if there are new directives that we need to support for this?  At the moment our assembler is unable to accept '.loc' directives between each operation in a VLIW instruction, is this something that we need to implement to get this level of VLIW debug support?<br>
<br>
Thanks,<br>
<br>
        MartinO<br>
<div class="HOEnZb"><div class="h5"><br>
-----Original Message-----<br>
From: llvm-dev [mailto:<a href="mailto:llvm-dev-bounces@lists.llvm.org">llvm-dev-bounces@<wbr>lists.llvm.org</a>] On Behalf Of Krzysztof Parzyszek via llvm-dev<br>
Sent: 01 November 2016 21:35<br>
To: <a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
Subject: Re: [llvm-dev] BoF: Debug info for optimized code.<br>
<br>
On 11/1/2016 4:28 PM, Martin J. O'Riordan via llvm-dev wrote:<br>
> I do not even pretend to know much about Dwarf and the representation of debug information, but it does appear that there is little or no support for the idea that a single "instruction" can correspond to multiple diverse lines in the source file.<br>
<br>
There is.  There is even a patch for LLVM:<br>
<a href="https://reviews.llvm.org/D16697" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D16697</a><br>
<br>
-Krzysztof<br>
<br>
--<br>
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation ______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br>
______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
</div></div></blockquote></div><br></div>