diff options
author | Tom Stellard <tstellar@redhat.com> | 2020-12-17 10:43:00 -0800 |
---|---|---|
committer | Tom Stellard <tstellar@redhat.com> | 2020-12-17 14:30:31 -0800 |
commit | 3203143f1356a4e4e3ada231156fc6da6e1a9f9d (patch) | |
tree | 88f591eeea6bbd8249c3834fb238af48c8def7a2 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 71a1b9fe76acfea8920e143c807c5cb8bf510254 (diff) | |
download | llvm-3203143f1356a4e4e3ada231156fc6da6e1a9f9d.zip llvm-3203143f1356a4e4e3ada231156fc6da6e1a9f9d.tar.gz llvm-3203143f1356a4e4e3ada231156fc6da6e1a9f9d.tar.bz2 |
CodeGen: Improve generated IR for __builtin_mul_overflow(uint, uint, int)
Add a special case for handling __builtin_mul_overflow with unsigned
inputs and a signed output to avoid emitting the __muloti4 library
call on x86_64. __muloti4 is not implemented in libgcc, so avoiding
this call fixes compilation of some programs that call
__builtin_mul_overflow with these arguments.
For example, this fixes the build of cpio with clang, which includes code from
gnulib that calls __builtin_mul_overflow with these argument types.
Reviewed By: vsk
Differential Revision: https://reviews.llvm.org/D84405
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions