[all-commits] [llvm/llvm-project] b54119: [builtins] Make __umodsi3/__udivdi3/__umoddi3 stan...

Fangrui Song via All-commits all-commits at lists.llvm.org
Tue Apr 14 10:38:59 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: b541196eb45d80f2dacd76e16828963760c3850d
      https://github.com/llvm/llvm-project/commit/b541196eb45d80f2dacd76e16828963760c3850d
  Author: Fangrui Song <maskray at google.com>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

  Changed paths:
    A compiler-rt/lib/builtins/int_div_impl.inc
    M compiler-rt/lib/builtins/udivdi3.c
    M compiler-rt/lib/builtins/udivsi3.c
    M compiler-rt/lib/builtins/umoddi3.c
    M compiler-rt/lib/builtins/umodsi3.c

  Log Message:
  -----------
  [builtins] Make __umodsi3/__udivdi3/__umoddi3 standalone (shift and subtract)

@kamleshbhalui reported that when the Standard Extension M
(Multiplication and Division) is disabled for RISC-V,
`__udivdi3` will call __udivmodti4 which will in turn calls `__udivdi3`.

This patch moves __udivsi3 (shift and subtract) to int_div_impl.inc
`__udivXi3`, optimize a bit, add a `__umodXi3`, and use `__udivXi3` and
`__umodXi3` to define `__udivsi3` `__umodsi3` `__udivdi3` `__umoddi3`.

Reviewed By: kamleshbhalui

Differential Revision: https://reviews.llvm.org/D77912




More information about the All-commits mailing list