--
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...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
>>I'll write down a more specific list of tips and pointers to the code later today; stay tuned.
--
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...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/76979ef8-a194-49a2-974e-0753d4247d58%40googlegroups.com.
--
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...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/186b9cda-eff5-4a09-b4eb-53350d76244c%40googlegroups.com.
Hi,This is a good question, and I think it points out that the name of this command line flag ("-enable-gc") is not ideal. It should really be something more like "-enable-precise-stack-scan=<value>".The garbage collector used by gollvm is substantially the same as the one used by the main Go compiler. The main difference is that by default gollvm uses conservative stack scanning -- chunks of stack memory are scanned assuming that everything that might be a live heap pointer is indeed a live heap pointer. When you build with "-enable-gc=true" it turns on machinery in the compiler to enable precise stack scanning, meaning that the compiler emits stack maps and then the runtime uses those maps to look at only life heap pointers during scanning.There are some other small differences between Gollvm and GC garbage collection (notably the representation of the global roots list) but in general they are using pretty much the same collector.Thanks, Than
On Tue, Jul 9, 2019 at 8:13 AM eric fang <fangshu...@gmail.com> wrote:
Hi Than, when I read the code, I found enable_gc_ is false by default, the description of option "-enable-gc=<value>" is "Enable stack map generation". I guess gollvm should have implemented garbage collection. My question are:--1, what kind of gc does gollvm currently implement, and what is the difference between this gc and the one in main Go?2, What effect does this option (-enable-gc) have on gollvm gc?Thanks!
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 golan...@googlegroups.com.
--
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...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/90359448-63ae-4539-9931-b4d88351f4d1%40googlegroups.com.
--
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...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/4adbc960-7281-4dd1-bc0b-6e9b69d4203c%40googlegroups.com.
if (regsInt + regsSSE == 1) return true;
foo:pushq %raxmovq %rdi, (%rsp)movl $1, %edimovl $2, %esimovl $3, %edxmovl $4, %ecxmovl $5, %r8dmovl $6, %r9dcallq barpopq %rcxretq
--
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...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/702e3129-b72a-411d-80fe-70e9daae207d%40googlegroups.com.
Hi Than, I think here should be the right place to handle this case, and I have corrected the code. I should use BlockLIRBuilder instead of BinstructionLIRBuilder. I have implemented a prototype of the code and at present everything is normal. Next I will start writing some unit test cases. There are some places that are not easy to extend. For example, in the constructor of class Llvm_backend, calling convention is hard coded, and the unit test needs to get an Llvm_backend instance through the go_get_backend function in the file bridge/go-llvm.cpp. I am thinking about how to deal with this.
--
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...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/4283a098-d922-4a52-ae61-cd3c8d1880b1%40googlegroups.com.
--
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...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/bcd0ea2c-d1e3-43f7-88ea-0c8de78f96f6%40googlegroups.com.
The way that I had imagined this working was that either each testpoint has a loop over the various supported ABI flavors (and checks output for each flavor)
or we have separate testpoints for each ABI (e.g. TEST(BackendCABIOracleTests, X8664_RecursiveCall1) or equivalent.
It would be nice if FcnTestHarness could be extended to accept a "target ABI" parameter
I'm porting the unit test cases of x86 to arm64. As the difference between x86 abi and arm64 abi, for the same go code snippet, the generated llvm IRs maybe different.
How do you get the correct IR result of a unit test? Such as unit test TEST(BackendCABIOracleTests, RecursiveCall1). Is there any quick way?
I try to compile gollvm on arm platform according to https://go.googlesource.com/gollvm/, but error is reported as followingCMake Error at tools/gollvm/cmake/modules/GoVars.cmake:12 (message):
Arch aarch64 not yet supportedhttps://go.googlesource.com/gollvm/ tells that Gollvm is currently supported only for x86_64 Linux.Is there any way to compile gollvm on arm platform?Thanks