[all-commits] [llvm/llvm-project] e9b3f2: [RISCVISelLowering] avoid emitting libcalls to __m...
Nick Desaulniers via All-commits
all-commits at lists.llvm.org
Tue Aug 31 11:24:36 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: e9b3f2573090a2fb9494975e4615f77b898e36a3
https://github.com/llvm/llvm-project/commit/e9b3f2573090a2fb9494975e4615f77b898e36a3
Author: Nick Desaulniers <ndesaulniers at google.com>
Date: 2021-08-31 (Tue, 31 Aug 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/mul.ll
A llvm/test/CodeGen/RISCV/overflow-intrinsic-optimizations.ll
M llvm/test/CodeGen/RISCV/umulo-128-legalisation-lowering.ll
M llvm/test/CodeGen/RISCV/xaluo.ll
Log Message:
-----------
[RISCVISelLowering] avoid emitting libcalls to __mulodi4() and __multi3()
Similar to D108842, D108844, D108926, D108928, and D108936.
__has_builtin(builtin_mul_overflow) returns true for 32b RISCV targets,
but Clang is deferring to compiler RT when encountering long long types.
If the semantics of __has_builtin mean "the compiler resolves these,
always" then we shouldn't conditionally emit a libcall.
Link: https://bugs.llvm.org/show_bug.cgi?id=28629
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D108939
More information about the All-commits
mailing list