[Qemu-devel] [PATCH] tcg/mips: make some functions inline.

Jiang Biao posted 1 patch 7 years, 12 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/1509618375-164238-1-git-send-email-jiang.biao2@zte.com.cn
Test checkpatch passed
Test docker passed
Test ppc passed
Test s390x passed
tcg/mips/tcg-target.inc.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
[Qemu-devel] [PATCH] tcg/mips: make some functions inline.
Posted by Jiang Biao 7 years, 12 months ago
Make some functions inline.

Signed-off-by: Jiang Biao <jiang.biao2@zte.com.cn>
---
 tcg/mips/tcg-target.inc.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/tcg/mips/tcg-target.inc.c b/tcg/mips/tcg-target.inc.c
index 4b55ab8..f83a8ec 100644
--- a/tcg/mips/tcg-target.inc.c
+++ b/tcg/mips/tcg-target.inc.c
@@ -168,7 +168,7 @@ static inline void reloc_26(tcg_insn_unit *pc, tcg_insn_unit *target)
     *pc = deposit32(*pc, 0, 26, reloc_26_val(pc, target));
 }
 
-static void patch_reloc(tcg_insn_unit *code_ptr, int type,
+static inline void patch_reloc(tcg_insn_unit *code_ptr, int type,
                         intptr_t value, intptr_t addend)
 {
     tcg_debug_assert(type == R_MIPS_PC16);
@@ -507,7 +507,7 @@ static inline void tcg_out_opc_sa(TCGContext *s, MIPSInsn opc,
 
 }
 
-static void tcg_out_opc_sa64(TCGContext *s, MIPSInsn opc1, MIPSInsn opc2,
+static inline void tcg_out_opc_sa64(TCGContext *s, MIPSInsn opc1, MIPSInsn opc2,
                              TCGReg rd, TCGReg rt, TCGArg sa)
 {
     int32_t inst;
@@ -637,13 +637,13 @@ static inline void tcg_out_bswap16s(TCGContext *s, TCGReg ret, TCGReg arg)
     }
 }
 
-static void tcg_out_bswap_subr(TCGContext *s, tcg_insn_unit *sub)
+static inline void tcg_out_bswap_subr(TCGContext *s, tcg_insn_unit *sub)
 {
     bool ok = tcg_out_opc_jmp(s, OPC_JAL, sub);
     tcg_debug_assert(ok);
 }
 
-static void tcg_out_bswap32(TCGContext *s, TCGReg ret, TCGReg arg)
+static inline void tcg_out_bswap32(TCGContext *s, TCGReg ret, TCGReg arg)
 {
     if (use_mips32r2_instructions) {
         tcg_out_opc_reg(s, OPC_WSBH, ret, 0, arg);
@@ -656,7 +656,7 @@ static void tcg_out_bswap32(TCGContext *s, TCGReg ret, TCGReg arg)
     }
 }
 
-static void tcg_out_bswap32u(TCGContext *s, TCGReg ret, TCGReg arg)
+static inline void tcg_out_bswap32u(TCGContext *s, TCGReg ret, TCGReg arg)
 {
     if (use_mips32r2_instructions) {
         tcg_out_opc_reg(s, OPC_DSBH, ret, 0, arg);
@@ -670,7 +670,7 @@ static void tcg_out_bswap32u(TCGContext *s, TCGReg ret, TCGReg arg)
     }
 }
 
-static void tcg_out_bswap64(TCGContext *s, TCGReg ret, TCGReg arg)
+static inline void tcg_out_bswap64(TCGContext *s, TCGReg ret, TCGReg arg)
 {
     if (use_mips32r2_instructions) {
         tcg_out_opc_reg(s, OPC_DSBH, ret, 0, arg);
@@ -1103,7 +1103,7 @@ static void tcg_out_call_int(TCGContext *s, tcg_insn_unit *arg, bool tail)
     }
 }
 
-static void tcg_out_call(TCGContext *s, tcg_insn_unit *arg)
+static inline void tcg_out_call(TCGContext *s, tcg_insn_unit *arg)
 {
     tcg_out_call_int(s, arg, false);
     tcg_out_nop(s);
@@ -1661,7 +1661,7 @@ static void tcg_out_qemu_st(TCGContext *s, const TCGArg *args, bool is_64)
 #endif
 }
 
-static void tcg_out_mb(TCGContext *s, TCGArg a0)
+static inline void tcg_out_mb(TCGContext *s, TCGArg a0)
 {
     static const MIPSInsn sync[] = {
         /* Note that SYNC_MB is a slightly weaker than SYNC 0,
@@ -2433,7 +2433,7 @@ static void tcg_target_detect_isa(void)
     sigaction(SIGILL, &sa_old, NULL);
 }
 
-static tcg_insn_unit *align_code_ptr(TCGContext *s)
+static inline tcg_insn_unit *align_code_ptr(TCGContext *s)
 {
     uintptr_t p = (uintptr_t)s->code_ptr;
     if (p & 15) {
-- 
2.9.5


Re: [Qemu-devel] [PATCH] tcg/mips: make some functions inline.
Posted by Richard Henderson 7 years, 12 months ago
On 11/02/2017 11:26 AM, Jiang Biao wrote:
> Make some functions inline.

Why?

Do you have evidence that the compiler isn't making reasonable default choices
with respect to inlining?


r~

Re: [Qemu-devel][PATCH] tcg/mips: make some functions inline.
Posted by jiang.biao2@zte.com.cn 7 years, 12 months ago
PiBPbiAxMS8wMi8yMDE3IDExOjI2IEFNLCBKaWFuZyBCaWFvIHdyb3RlOj4gPiBNYWtlIHNvbWUg
ZnVuY3Rpb25zIGlubGluZS4KPiAKPiBXaHk/Cj4gCj4gRG8geW91IGhhdmUgZXZpZGVuY2UgdGhh
dCB0aGUgY29tcGlsZXIgaXNuJ3QgbWFraW5nIHJlYXNvbmFibGUgZGVmYXVsdCBjaG9pY2VzCj4g
d2l0aCByZXNwZWN0IHRvIGlubGluaW5nPwpObywgOikgSnVzdCBmb3VuZCBzb21lIG9mIHRoZXNl
IGZ1bmN0aW9ucyBhcmUgaW5saW5lIGFuZCBvdGhlcnMgYXJlIG5vdCB3aGVuIHJlYWRpbmcgCnRo
ZSBjb2RlLCB0aGUgc3R5bGUgbG9va3MgaW5jb25zaXN0ZW50LiAKQmVzaWRlcywgVGhlIGNvbXBp
bGVyIG1heSBtYWtlIGRlZmF1bHQgaW5saW5lIGNob2ljZXMgZm9yIHNvbWUgZnVuY3Rpb25zLCBi
dXQgbWF5IApub3QgZm9yIHNvbWUgY2FzZXMoc29tZSBsb25nZXIgb25lcykuIEFkZGluZyBpbmxp
bmUgbWFudWFsbHkgY2FuIGd1YXJhbnRlZSBhbmQgCm5vdCBodXJ0LiA6KQpUaGFua3MuCgpyfg==
Re: [Qemu-devel] [PATCH] tcg/mips: make some functions inline.
Posted by Richard Henderson 7 years, 12 months ago
On 11/02/2017 12:23 PM, jiang.biao2@zte.com.cn wrote:
> No, :) Just found some of these functions are inline and others are not when reading 
> the code, the style looks inconsistent. 

My preference would be to remove them all.

> Besides, The compiler may make default inline choices for some functions, but may 
> not for some cases(some longer ones). Adding inline manually can guarantee and 
> not hurt. :)

The longer ones in particular should *not* be inline, so that we don't expand
the size of the code unnecessarily.  Which *can* hurt.


r~


Re: [Qemu-devel] [PATCH] tcg/mips: make some functions inline.
Posted by Philippe Mathieu-Daudé 7 years, 12 months ago
On Thu, Nov 2, 2017 at 8:43 AM, Richard Henderson <rth@twiddle.net> wrote:
> On 11/02/2017 12:23 PM, jiang.biao2@zte.com.cn wrote:
>> No, :) Just found some of these functions are inline and others are not when reading
>> the code, the style looks inconsistent.
>
> My preference would be to remove them all.

If more people agree to this we should add an entry in HACKING coding
guidelines (not sure about checkpatch).

Re: [Qemu-devel][PATCH] tcg/mips: make some functions inline.
Posted by jiang.biao2@zte.com.cn 7 years, 12 months ago
PiBPbiAxMS8wMi8yMDE3IDEyOjIzIFBNLCBqaWFuZy5iaWFvMkB6dGUuY29tLmNuIHdyb3RlOgo+
ID4gTm8sIDopIEp1c3QgZm91bmQgc29tZSBvZiB0aGVzZSBmdW5jdGlvbnMgYXJlIGlubGluZSBh
bmQgb3RoZXJzIGFyZSBub3Qgd2hlbiByZWFkaW5nCj4gPiB0aGUgY29kZSwgdGhlIHN0eWxlIGxv
b2tzIGluY29uc2lzdGVudC4KPiA+Cj4gTXkgcHJlZmVyZW5jZSB3b3VsZCBiZSB0byByZW1vdmUg
dGhlbSBhbGwuClNob3VsZCBJIGNvbW1pdCBhbm90aGVyIHBhdGNoIHRvIGRvIHRoYXQ/IDopIAoK
PiA+IEJlc2lkZXMsIFRoZSBjb21waWxlciBtYXkgbWFrZSBkZWZhdWx0IGlubGluZSBjaG9pY2Vz
IGZvciBzb21lIGZ1bmN0aW9ucywgYnV0IG1heQo+ID4gbm90IGZvciBzb21lIGNhc2VzKHNvbWUg
bG9uZ2VyIG9uZXMpLiBBZGRpbmcgaW5saW5lIG1hbnVhbGx5IGNhbiBndWFyYW50ZWUgYW5kCj4g
PiBub3QgaHVydC4gOikKPiBUaGUgbG9uZ2VyIG9uZXMgaW4gcGFydGljdWxhciBzaG91bGQgKm5v
dCogYmUgaW5saW5lLCBzbyB0aGF0IHdlIGRvbid0IGV4cGFuZAo+IHRoZSBzaXplIG9mIHRoZSBj
b2RlIHVubmVjZXNzYXJpbHkuICBXaGljaCAqY2FuKiBodXJ0LgpHb3QgdGhhdCwgdGhhbmtzIGZv
ciB0aGUgcmVwbHkuCgpSZWdhcmRzLA==

Re: [Qemu-devel] [PATCH] tcg/mips: make some functions inline.
Posted by Richard Henderson 7 years, 12 months ago
On 11/03/2017 01:37 AM, jiang.biao2@zte.com.cn wrote:
>> On 11/02/2017 12:23 PM, jiang.biao2@zte.com.cn wrote:
>>> No, :) Just found some of these functions are inline and others are not when reading
>>> the code, the style looks inconsistent.
>>>
>> My preference would be to remove them all.
> Should I commit another patch to do that? :) 

If you find the inconsistency distracting, yes.


r~