Issue 130541
Summary [SystemZ] Significant compile time regression in LLVM 20 due to `isFullyInternal()`
Labels backend:SystemZ, performance
Assignees
Reporter alexrp
    With LLVM 20, we're seeing significantly increased compile times for the Zig standard library test executable for `s390x-linux`: 0m33s with LLVM 19 vs 3m28s with LLVM 20. It appears to be caused by #100757 (FYI @JonPsson1 @uweigand), specifically this function:

https://github.com/llvm/llvm-project/blob/fa45bf430081ed5a37c50719dfd3a8ca32271126/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp#L10203-L10217

And its usage here:

https://github.com/llvm/llvm-project/blob/fa45bf430081ed5a37c50719dfd3a8ca32271126/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp#L2206-L2207

In Zig we have a helper function `std.builtin.returnError()` that the compiler emits calls to when an error value is returned from a function. Since we use a compilation model that can roughly be described as a unity build, the standard library test module has around ~68,000 calls to this function. LLVM is now walking the full use list of this function at every call site, which is less than ideal.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to