2020-10-22 07:13:25

by Gustavo Pimentel

[permalink] [raw]
Subject: [PATCH] ARC: bitops: Remove unecessary operation and value

The 1-bit shift rotation to the left on x variable located on
4 last if statement can be removed because the computed value is will
not be used afront.

Signed-off-by: Gustavo Pimentel <[email protected]>
---
arch/arc/include/asm/bitops.h | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/arch/arc/include/asm/bitops.h b/arch/arc/include/asm/bitops.h
index 50eb3f6..8cddddc 100644
--- a/arch/arc/include/asm/bitops.h
+++ b/arch/arc/include/asm/bitops.h
@@ -297,10 +297,8 @@ static inline int constant_fls(unsigned int x)
x <<= 2;
r -= 2;
}
- if (!(x & 0x80000000u)) {
- x <<= 1;
+ if (!(x & 0x80000000u))
r -= 1;
- }
return r;
}

--
2.7.4


2020-11-05 23:21:42

by Vineet Gupta

[permalink] [raw]
Subject: Re: [PATCH] ARC: bitops: Remove unecessary operation and value

On 10/21/20 2:12 PM, Gustavo Pimentel wrote:
> The 1-bit shift rotation to the left on x variable located on
> 4 last if statement can be removed because the computed value is will
> not be used afront.

All of constant_fls() is anyhow optimized away at compile time, so this
won't affect any code-gen at all, still this patch is legit.

> Signed-off-by: Gustavo Pimentel <[email protected]>

Added to for-curr !

Thx,
-Vineet

> ---
> arch/arc/include/asm/bitops.h | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/arch/arc/include/asm/bitops.h b/arch/arc/include/asm/bitops.h
> index 50eb3f6..8cddddc 100644
> --- a/arch/arc/include/asm/bitops.h
> +++ b/arch/arc/include/asm/bitops.h
> @@ -297,10 +297,8 @@ static inline int constant_fls(unsigned int x)
> x <<= 2;
> r -= 2;
> }
> - if (!(x & 0x80000000u)) {
> - x <<= 1;
> + if (!(x & 0x80000000u))
> r -= 1;
> - }
> return r;
> }
>