[all-commits] [llvm/llvm-project] 2421a5: [DAG] ExpandIntRes_ADDSUB - create UADDO/USUBO ins...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Sat Jul 23 03:13:59 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 2421a5af72e7da7c29fd153dcee0981deaaeba64
      https://github.com/llvm/llvm-project/commit/2421a5af72e7da7c29fd153dcee0981deaaeba64
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2022-07-23 (Sat, 23 Jul 2022)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp

  Log Message:
  -----------
  [DAG] ExpandIntRes_ADDSUB - create UADDO/USUBO instead of ADDCARRY/SUBCARRY if overflow is known to be zero

As noticed on D127115, when splitting ADD/SUB nodes we often end up with cases where overflow from the lower bits is impossible - in such cases we're better off breaking the carry chain dependency as soon as possible.

This path is being exercised by llvm/test/CodeGen/ARM/dsp-mlal.ll, although I haven't been able to get any codegen diff without a topological worklist.




More information about the All-commits mailing list