>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
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
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