Hi,
Thanks, Than and Ian for your responses.
I would like to write an LLVM Pass to remove this export data. What is the 
best way to do that?

I am thinking module M.setModuleInlineAsm("");
But that might remove other useful inline asm.

Khanh

On Tuesday, September 14, 2021 at 1:54:03 AM UTC+8 th...@google.com wrote:

> I feel as though we're getting into the realm of "what is the sound of one 
> hand clapping"... ?
>
> Than
>
>
> On Mon, Sep 13, 2021 at 1:51 PM Ian Lance Taylor <ia...@golang.org> wrote:
>
>> On Mon, Sep 13, 2021 at 6:03 AM Khanh TN <tnkh...@gmail.com> wrote:
>> >
>> > Also, from what I understand, if noone imports my package, I can also 
>> remove the "module asm" lines at the start. Is that right?
>>
>> What is the use of a package that nobody imports?
>>
>> Ian
>>
>>
>> > On Monday, September 13, 2021 at 9:18:20 AM UTC+8 Khanh TN wrote:
>> >>
>> >> Hi,
>> >> Thanks, Than, for the answer.
>> >> So, if the .go file I'm compiling is the one with "package main" "func 
>> main()", I can remove the "module asm" lines without any consequences?
>> >>
>> >> Khanh
>> >>
>> >> On Friday, September 10, 2021 at 9:09:12 PM UTC+8 th...@google.com 
>> wrote:
>> >>>
>> >>> Hi,
>> >>>
>> >>> The "module asm" at the start of your bitcode dump is actually the 
>> export data for the package, so it plays a pretty crucial role.
>> >>>
>> >>> Deleting the export data from the "main" package may work in some 
>> cases (since nobody imports main), but it will certainly cause problems if 
>> you delete the export data from some other non-main package.
>> >>>
>> >>> Export data tends to be substantial because it is based on the 
>> transitive closure of the imported packages (e.g. "fmt" imports "io", then 
>> "io" imports "sync", then "sync" imports "runtime", and so on).
>> >>>
>> >>> On the other hand, Go export data is way smaller than the volume of 
>> header information that would have to be consumed by a C++ compiler when 
>> building your average C++ source file.
>> >>>
>> >>> Than
>> >>>
>> >>> On Thu, Sep 9, 2021 at 6:31 AM Khanh TN <tnkh...@gmail.com> wrote:
>> >>>>
>> >>>> A Helloworld written in C++ is around 75 lines in LLVM IR.
>> >>>> However, a Helloworld written in Golang compiled with gollvm is 
>> around 900/1000 lines of .ll file. I produced the LLVM IR with instructions 
>> from https://go.googlesource.com/gollvm/
>> >>>> I'm using LLVM11, so, older compatible commit of gollvm, not sure 
>> newer versions are different.
>> >>>>
>> >>>> How can I produce shorter/simplified LLVM IR?
>> >>>> Thanks!
>> >>>>
>> >>>> Cheers,
>> >>>> Khanh
>> >>>>
>> >>>>
>> >>>> P/S:
>> >>>> An LLVM IR file has a lot of  module asm at the start, like:
>> >>>> module asm "\09.section \22.go_export\22,\22e\22,@progbits"
>> >>>> module asm "\09.ascii \22v3;\\n\22"
>> >>>> module asm "\09.ascii \22package \22"
>> >>>> module asm "\09.ascii \22main\22"
>> >>>> module asm "\09.ascii \22\\n\22"
>> >>>> module asm "\09.ascii \22pkgpath \22"
>> >>>> module asm "\09.ascii \22main\22"
>> >>>>
>> >>>> I figure I can delete all the module asm line and my program still  
>> runs correctly (I only tested 2 times on simple programs). Is this a legit 
>> optimization?
>> >>>>
>> >>>> --
>> >>>> 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/8ee91024-b270-4d1e-99b9-dbcd3e25d4c4n%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/abf02438-5740-46e1-8577-2e001b3960f7n%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/CAOyqgcV%2BMR2FBArbR6ZNgCgs1DbO_Hwccu%2BOD3SuvLLRm6%2Bqcg%40mail.gmail.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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/c27ac4ad-6ea5-4696-b2f3-8a083fca80e4n%40googlegroups.com.

Reply via email to