Thank you very much adon...
Its very useful for my project.
Again, thanks a lot
Regards
Arpit
On Wednesday, February 22, 2017 at 2:13:25 PM UTC-8, adon...@google.com
wrote:
>
> On Tuesday, 21 February 2017 12:23:44 UTC-5, Arpit Aggarwal wrote:
>>
>> I am doing a project in which I need Go compiler's intermediate
>> representation(IR) (which is semantics preserving and I can get all all
>> info like line number and data type and other features) (human readable) to
>> convert to another IR of a tool.
>>
>
> The most convenient way to access the semantics of a Go program is to use
> the golang.org/x/tools/go/ssa package, which builds a high-level
> SSA-based intermediate representation.
>
> $ cat fib.go
> package fib
>
> func fib(x int) int {
> if x < 2 {
> return x
> }
> return fib(x-2) + fib(x-1)
> }
>
> $ go build golang.org/x/tools/cmd/ssadump
> $ ./ssadump -build=F fib.go
> # Name: fib.fib
> # Package: fib
> # Location: fib.go:3:6
> func fib(x int) int:
> 0:entry
> P:0 S:2
> t0 = x < 2:int
> bool
> if t0 goto 1 else 2
> 1: if.then
> P:1 S:0
> return x
> 2: if.done
> P:1 S:0
> t1 = x - 2:int
> int
> t2 = fib(t1)
> int
> t3 = x - 1:int
> int
> t4 = fib(t3)
> int
> t5 = t2 + t4
> int
> return t5
>
> # Name: fib.init
> # Package: fib
> # Synthetic: package initializer
> func init():
> 0:entry
> P:0 S:2
> t0 = *init$guard
> bool
> if t0 goto 2 else 1
> 1: init.start
> P:1 S:1
> *init$guard = true:bool
> jump 2
> 2:init.done
> P:2 S:0
> return
>
>
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.