[bindings/go] Add debug information accessors
authorAyke van Laethem <aykevanlaethem@gmail.com>
Mon, 24 Jun 2019 16:23:17 +0000 (16:23 +0000)
committerAyke van Laethem <aykevanlaethem@gmail.com>
Mon, 24 Jun 2019 16:23:17 +0000 (16:23 +0000)
commit9f4c7e8170cae9d243b99cdecc6b05d214b0427d
treeffc1e1a673a18c22937dd7b186c237cb116d9076
parent3a4a60eb6a73e4f927895ca567bb714885648c36
[bindings/go] Add debug information accessors

Add debug information accessors, as provided in the following patches:

https://reviews.llvm.org/D46627 (DILocation)
https://reviews.llvm.org/D52693 metadata kind
https://reviews.llvm.org/D60481 get/set debug location on a Value
https://reviews.llvm.org/D60489 (DIScope)

The API as proposed in this patch is similar to the current Value API,
with a single root type and methods that are only valid for certain
subclasses. I have considered just implementing generic Line() calls
(that are valid on all DINodes that have a line) but the implementation
of that got a bit awkward without support from the C API. I've also
considered creating generic getters like a Metadata.DebugLoc() that
returns a DebugLoc, but there is a mismatch between the Go DI nodes in
the LLVM API and the actual DINode class hierarchy, so that's also hard
to get right (without being confusing or breaking the API).

Differential Revision: https://reviews.llvm.org/D63056

llvm-svn: 364198
llvm/bindings/go/llvm/dibuilder.go
llvm/bindings/go/llvm/ir.go