llvm / llvm/llvm-project

[X86] Inc with memory operand not formed with frozen load

Open
#201,293 3 comments 0 reactions 1 assignee Claimed by @RKSimon View on GitHub
backend:X86 missed-optimization
Dominant language
LLVM
Stars
40.5k
Forks
18.7k
PR merge metrics
PR metrics pending

Description

https://llvm.godbolt.org/z/Mccsxs45s
```llvm
define void @f(ptr %x) {
%v = load i32, ptr %x
%add = add i32 %v, 1
store i32 %add, ptr %x
ret void
}

define void @f.freeze(ptr %x) {
%v = load i32, ptr %x
%v.freeze = freeze i32 %v
%add = add i32 %v.freeze, 1
store i32 %add, ptr %x
ret void
}
```

```asm
f: # @f
inc dword ptr [rdi]
ret
f.freeze: # @f.freeze
mov eax, dword ptr [rdi]
inc eax
mov dword ptr [rdi], eax
ret
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.