[RFC] First-class debug info IR: MDLocation (redux)

After splitting `Metadata` apart from `Value`, I'm finally back to the
first step [1] of representing debug info more directly in IR [2]:
`MDLocation`.

[1]: http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-October/078173.html
        "First-class debug info IR: MDLocation"
[2]: http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-October/077715.html
        "Less memory and greater maintainability for debug info IR"

I've attached two patches which are both essentially commit-ready (just
missing LangRef update, AFAIK), although they just add the class and
assembly/bitcode support. Once it's in tree, I'll move it into place
underneath `DebugLoc` and `DILocation` and update the world of
testcases, publish a script, and so forth.

Assembly syntax

0001-IR-Add-MDLocation-class.patch (13.7 KB)

0002-AsmParser-Bitcode-Add-support-for-MDLocation.patch (18.8 KB)

Would you mind terribly waiting a week, until after 3.6 is forked?

We’re barely caught up with the last big metadata syntax change.

Thanks,

–paulr

This LGTM. I like the new syntax. Feel free to commit as soon as you have the LangRef changes handy.

-eric

Hi Paul,

I’m not sure I see any reason to wait until after 3.6. More changes are incoming and it’s better to get them over with sooner rather than spread out the pain.

Thanks!

-eric

Okay, we can deal with it, just seemed like a bit much right around release time.

–paulr

I suspect it would actually be *better* if I got all this in before
the branch, since it'll make cherry-picking testcases easier.

However, these patches themselves (and I suspect a few more prep
commits) don't actually move `MDLocation` into place -- it's not
until then that all the testcase updates have to happen. I'm not
convinced that (monster) commit will land by tomorrow :(.

I suspect it would actually be *better* if I got all this in before
the branch, since it'll make cherry-picking testcases easier.

Excellent point, go for it.
--paulr

I suspect it would actually be *better* if I got all this in before
the branch, since it'll make cherry-picking testcases easier.

Excellent point, go for it.

I missed the branch deadline, but I merged it in as of r226095.

Thanks! Can you prepare an update to the release notes that cover the
debug info / metadata changes?

- Hans

How does this look?

metadata-3.6.patch (5.32 KB)

I suspect it would actually be *better* if I got all this in before
the branch, since it'll make cherry-picking testcases easier.

Excellent point, go for it.

I missed the branch deadline, but I merged it in as of r226095.

Thanks! Can you prepare an update to the release notes that cover the
debug info / metadata changes?

How does this look?

Looks great. Please commit it to the branch.

Thanks,
Hans

+is should now be written as:

Nit: there's an extra is here.

I suspect it would actually be *better* if I got all this in before
the branch, since it'll make cherry-picking testcases easier.

Excellent point, go for it.

I missed the branch deadline, but I merged it in as of r226095.

Thanks! Can you prepare an update to the release notes that cover the
debug info / metadata changes?

How does this look?

Looks great. Please commit it to the branch.

r226212

Thanks,
Hans

+is should now be written as:

Nit: there's an extra is here.

r226213 (didn't notice this comment until I was replying).