2014-06-01 21:42:50

by Rickard Strandqvist

[permalink] [raw]
Subject: [PATCH] arch: ia64: kernel: palinfo.c: Optimization of the Code

>From what I know, AND is faster then modulo.
Not sure if this is worth changing though.

Signed-off-by: Rickard Strandqvist <[email protected]>
---
arch/ia64/kernel/palinfo.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/ia64/kernel/palinfo.c b/arch/ia64/kernel/palinfo.c
index c39c3cd..7915b02 100644
--- a/arch/ia64/kernel/palinfo.c
+++ b/arch/ia64/kernel/palinfo.c
@@ -156,7 +156,8 @@ static void bitregister_process(struct seq_file *m, u64 *reg_info, int max)

for(; i < max; i++ ) {

- if (i != 0 && (i%64) == 0) value = *++reg_info;
+ if (i != 0 && (i&63) == 0)
+ value = *++reg_info;

if ((value & 0x1) == 0 && skip == 0) {
if (begin <= i - 2)
--
1.7.10.4


2014-06-02 07:24:10

by Clemens Ladisch

[permalink] [raw]
Subject: Re: [PATCH] arch: ia64: kernel: palinfo.c: Optimization of the Code

Rickard Strandqvist wrote:
> From what I know, AND is faster then modulo.

Which is why the compiler does this optimization automatically,
if it can prove that it is correct.

> - if (i != 0 && (i%64) == 0)
> + if (i != 0 && (i&63) == 0)

Did you prove that i cannot be negative?


Regards,
Clemens

2014-06-02 17:59:43

by Rickard Strandqvist

[permalink] [raw]
Subject: Re: [PATCH] arch: ia64: kernel: palinfo.c: Optimization of the Code

Hi

Thought I would be able to do that. But after testing, I could not
measure any difference.

Thought it would make a noticeable difference, but guess gcc resolve
this in the best way.


Best regards
Rickard Strandqvist


2014-06-02 9:24 GMT+02:00 Clemens Ladisch <[email protected]>:
> Rickard Strandqvist wrote:
>> From what I know, AND is faster then modulo.
>
> Which is why the compiler does this optimization automatically,
> if it can prove that it is correct.
>
>> - if (i != 0 && (i%64) == 0)
>> + if (i != 0 && (i&63) == 0)
>
> Did you prove that i cannot be negative?
>
>
> Regards,
> Clemens