Re: [Tinycc-devel] How exactly inline works and should I inline all the time?
Hey, On Tue, 7 Dec 2021, Antoni Gual Via wrote: Perhaps it's time to have a new official release?Antoni Perhaps, but not because inlining would be done now: it isn't. TCC doesn't inline functions into others. But due to how c99 and c11 have special requirement for functions marked "inline" the keyword isn't completely ignored either, but it still doesn't cause called functions to be integrated into their callers. Inline asm is something else (and doesn't use an "inline" keyword anyway), it simply describes the fact that you can write assembler instructions in C files, "in line" with the C sources, and don't have to resort writing .s files. Ciao, Michael. [icon-envelope-tick-round-orange-animated-no-repeat-v1.gif] Libre de virus. www.avast.com Missatge de l'adreça del dia dt., 7 de des. 2021 a les 10:44: Probably in 0.9.27 (which is almost 4 years old, btw -17-Dec-2017 08:27-) : http://download.savannah.nongnu.org/releases/tinycc/ https://repo.or.cz/tinycc.git ("release_0_9_27" tag) Yet it officially supports inlined assembly, that also uses the 'inline' keyword, hence not completely "ignored". Anyway, if you look at the tcc source code (tccgen.c, tccpp.c, ...) there is already plenty of "inline" inside. Regards. - Mail d'origine - De: Antoni Gual Via À: tinycc-devel@nongnu.org Envoyé: Tue, 07 Dec 2021 09:32:35 +0100 (CET) Objet: Re: [Tinycc-devel] How exactly inline works and should I inline all the time? Have I missed anything? The documentation for TCC 0.27 states that the inline keyword is ignored Antonio <https://www.avast.com/sig-email?utm_medium=email_source=link_campa ign=sig-email_content=webmail> Libre de virus. www.avast.com <https://www.avast.com/sig-email?utm_medium=email_source=link_campa ign=sig-email_content=webmail> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> Missatge de Antonio Prates del dia dt., 7 de des. 2021 a les 0:35: > Also note you can't inline recursive functions, and other restrictions > could apply. > > Maybe have a look into this thread on quora: > https://www.quora.com/Can-a-inline-function-be-recursive > > On Dec 6 2021, at 6:23 pm, david.k...@libertysurf.fr wrote: > > > Inline is used very specifically where the code has to be fast. > > > > Best is only to inline tiny parts of code that will be "inlined". > > > > That's to say "injected" into the source code where it is needed. > > > > Otherwise it is a full jump to a distant function, with context saving. > > > > Hence the "inlining" only serves a very specific purpose. > > > > Regards. > > > > ----- Mail d'origine ----- > > De: rempas via Tinycc-devel > > À: Tinycc Devel > > Cc: rem...@tutanota.com > > Envoyé: Mon, 06 Dec 2021 09:35:19 +0100 (CET) > > Objet: [Tinycc-devel] How exactly inline works and should I inline all > > the time? > > > > Hi! > > > > I don't know if we must only post questions that are specific to the > > TCC compiler > > specifically (even tho this question can differ from compiler to > > compiler) or we can > > make questions about C in general and in the case that the first is > > true then please > > inform me so I know. Anyway I wanted to ask how inline works > > specifically and not > > generally. I know generally that it "puts the source code" inline so > > we don't have to use > > "jmp" but is there anything else to it that I should know? Are there > > any dangers or reasons > > than someone should not use it? Also is there a way to tell the > > compiler to inline every > > function rather than always having to add the "inline" keyword? > > > > ___ > > Tinycc-devel mailing list > > Tinycc-devel@nongnu.org > > https://lists.nongnu.org/mailman/listinfo/tinycc-devel > > > > > > ___ > > Tinycc-devel mailing list > > Tinycc-devel@nongnu.org > > https://lists.nongnu.org/mailman/listinfo/tinycc-devel > > > > ___
Re: [Tinycc-devel] How exactly inline works and should I inline all the time?
Perhaps it's time to have a new official release? Antoni <https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail> Libre de virus. www.avast.com <https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> Missatge de l'adreça del dia dt., 7 de des. 2021 a les 10:44: > Probably in 0.9.27 (which is almost 4 years old, btw -17-Dec-2017 08:27-) : > > http://download.savannah.nongnu.org/releases/tinycc/ > https://repo.or.cz/tinycc.git ("release_0_9_27" tag) > > Yet it officially supports inlined assembly, that also uses the 'inline' > keyword, hence not completely "ignored". > > Anyway, if you look at the tcc source code (tccgen.c, tccpp.c, ...) there > is already plenty of "inline" inside. > > Regards. > > - Mail d'origine - > De: Antoni Gual Via > À: tinycc-devel@nongnu.org > Envoyé: Tue, 07 Dec 2021 09:32:35 +0100 (CET) > Objet: Re: [Tinycc-devel] How exactly inline works and should I inline all > the time? > > Have I missed anything? > The documentation for TCC 0.27 states that the inline keyword is > ignored > > Antonio > > > < > https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail > > > Libre > de virus. www.avast.com > < > https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail > > > <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> > > Missatge de Antonio Prates del dia dt., 7 de > des. > 2021 a les 0:35: > > > Also note you can't inline recursive functions, and other restrictions > > could apply. > > > > Maybe have a look into this thread on quora: > > https://www.quora.com/Can-a-inline-function-be-recursive > > > > On Dec 6 2021, at 6:23 pm, david.k...@libertysurf.fr wrote: > > > > > Inline is used very specifically where the code has to be fast. > > > > > > Best is only to inline tiny parts of code that will be "inlined". > > > > > > That's to say "injected" into the source code where it is needed. > > > > > > Otherwise it is a full jump to a distant function, with context saving. > > > > > > Hence the "inlining" only serves a very specific purpose. > > > > > > Regards. > > > > > > - Mail d'origine - > > > De: rempas via Tinycc-devel > > > À: Tinycc Devel > > > Cc: rem...@tutanota.com > > > Envoyé: Mon, 06 Dec 2021 09:35:19 +0100 (CET) > > > Objet: [Tinycc-devel] How exactly inline works and should I inline all > > > the time? > > > > > > Hi! > > > > > > I don't know if we must only post questions that are specific to the > > > TCC compiler > > > specifically (even tho this question can differ from compiler to > > > compiler) or we can > > > make questions about C in general and in the case that the first is > > > true then please > > > inform me so I know. Anyway I wanted to ask how inline works > > > specifically and not > > > generally. I know generally that it "puts the source code" inline so > > > we don't have to use > > > "jmp" but is there anything else to it that I should know? Are there > > > any dangers or reasons > > > than someone should not use it? Also is there a way to tell the > > > compiler to inline every > > > function rather than always having to add the "inline" keyword? > > > > > > ___ > > > Tinycc-devel mailing list > > > Tinycc-devel@nongnu.org > > > https://lists.nongnu.org/mailman/listinfo/tinycc-devel > > > > > > > > > ___ > > > Tinycc-devel mailing list > > > Tinycc-devel@nongnu.org > > > https://lists.nongnu.org/mailman/listinfo/tinycc-devel > > > > > > > ___ > > Tinycc-devel mailing list > > Tinycc-devel@nongnu.org > > https://lists.nongnu.org/mailman/listinfo/tinycc-devel > > > > > ___ > Tinycc-devel mailing list > Tinycc-devel@nongnu.org > https://lists.nongnu.org/mailman/listinfo/tinycc-devel > ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel
Re: [Tinycc-devel] How exactly inline works and should I inline all the time?
Have I missed anything? The documentation for TCC 0.27 states that the inline keyword is ignored Antonio <https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail> Libre de virus. www.avast.com <https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> Missatge de Antonio Prates del dia dt., 7 de des. 2021 a les 0:35: > Also note you can't inline recursive functions, and other restrictions > could apply. > > Maybe have a look into this thread on quora: > https://www.quora.com/Can-a-inline-function-be-recursive > > On Dec 6 2021, at 6:23 pm, david.k...@libertysurf.fr wrote: > > > Inline is used very specifically where the code has to be fast. > > > > Best is only to inline tiny parts of code that will be "inlined". > > > > That's to say "injected" into the source code where it is needed. > > > > Otherwise it is a full jump to a distant function, with context saving. > > > > Hence the "inlining" only serves a very specific purpose. > > > > Regards. > > > > - Mail d'origine - > > De: rempas via Tinycc-devel > > À: Tinycc Devel > > Cc: rem...@tutanota.com > > Envoyé: Mon, 06 Dec 2021 09:35:19 +0100 (CET) > > Objet: [Tinycc-devel] How exactly inline works and should I inline all > > the time? > > > > Hi! > > > > I don't know if we must only post questions that are specific to the > > TCC compiler > > specifically (even tho this question can differ from compiler to > > compiler) or we can > > make questions about C in general and in the case that the first is > > true then please > > inform me so I know. Anyway I wanted to ask how inline works > > specifically and not > > generally. I know generally that it "puts the source code" inline so > > we don't have to use > > "jmp" but is there anything else to it that I should know? Are there > > any dangers or reasons > > than someone should not use it? Also is there a way to tell the > > compiler to inline every > > function rather than always having to add the "inline" keyword? > > > > ___ > > Tinycc-devel mailing list > > Tinycc-devel@nongnu.org > > https://lists.nongnu.org/mailman/listinfo/tinycc-devel > > > > > > ___ > > Tinycc-devel mailing list > > Tinycc-devel@nongnu.org > > https://lists.nongnu.org/mailman/listinfo/tinycc-devel > > > > ___ > Tinycc-devel mailing list > Tinycc-devel@nongnu.org > https://lists.nongnu.org/mailman/listinfo/tinycc-devel > ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel
[Tinycc-devel] How exactly inline works and should I inline all the time?
Hi! I don't know if we must only post questions that are specific to the TCC compiler specifically (even tho this question can differ from compiler to compiler) or we can make questions about C in general and in the case that the first is true then please inform me so I know. Anyway I wanted to ask how inline works specifically and not generally. I know generally that it "puts the source code" inline so we don't have to use "jmp" but is there anything else to it that I should know? Are there any dangers or reasons than someone should not use it? Also is there a way to tell the compiler to inline every function rather than always having to add the "inline" keyword? ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel