[llvm] [LLVM] Refactor Autoupgrade function attributes from Module attributes. (PR #84494)

Pranav Kant via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 13 15:59:53 PDT 2024


pranavk wrote:

Minimal reproducer:

file1.c
```
int foo();

int main() {
        return foo();
}
```

file2.c
```
int foo() {
        return 32;
}
```

$CLANG -flto=thin -target aarch64-none-linux-gnu -O2 file1.c file2.c -c
$CLANG -fuse-ld=lld -target aarch64-none-linux-gnu -Wl,-plugin-opt,save-temps -flto=thin -O2 file1.o file2.o -o a.out

foo used to get inlined earlier, not anymore because attributes are different now. This is what I believe is the cause of severe performance regression. Up to 30% degradation on multiple benchmarks.


https://github.com/llvm/llvm-project/pull/84494


More information about the llvm-commits mailing list