[all-commits] [llvm/llvm-project] d4ba11: [LegalizeTypes] Merge ExpandIntRes_LLROUND and Exp...

topperc via All-commits all-commits at lists.llvm.org
Sun Nov 17 13:48:37 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: d4ba11ae3261bb0dc805d33fbe15e9591e926a33
      https://github.com/llvm/llvm-project/commit/d4ba11ae3261bb0dc805d33fbe15e9591e926a33
  Author: Craig Topper <craig.topper at gmail.com>
  Date:   2019-11-17 (Sun, 17 Nov 2019)

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

  Log Message:
  -----------
  [LegalizeTypes] Merge ExpandIntRes_LLROUND and ExpandIntRes_LLRINT into one function that handles both. NFC

These too functions are were the same except for which libcall gets
emitted. Just merge them into one.

This is prep work for some other work including strict fp support.


  Commit: 9b515b6dd919cbd67ba12c01530708c5617e288f
      https://github.com/llvm/llvm-project/commit/9b515b6dd919cbd67ba12c01530708c5617e288f
  Author: Craig Topper <craig.topper at gmail.com>
  Date:   2019-11-17 (Sun, 17 Nov 2019)

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

  Log Message:
  -----------
  [LegalizeTypes] Remove PromoteFloat support form ExpandIntRes_LLROUND_LLRINT.

This code isn't exercised, and was in the wrong place. If we need
this, we would need to promote the type before figuring out which
libcall to use.

I'm choosing to remove it rather than fixing since we don't
support PromoteFloat for LRINT/LROUND/LLRINT/LLROUND when the
result type is legal so I don't see much reason to support it
for the case where the result type isn't legal.


  Commit: 1b0efe2b1778e821aade88667b1cb82d1c93f7e9
      https://github.com/llvm/llvm-project/commit/1b0efe2b1778e821aade88667b1cb82d1c93f7e9
  Author: Craig Topper <craig.topper at gmail.com>
  Date:   2019-11-17 (Sun, 17 Nov 2019)

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

  Log Message:
  -----------
  [LegalizeTypes] When expanding the integer result of LLROUND/LLRINT, also call GetSoftenedFloat if the floating point input needs to be softened.

Before this we were emitting a bitcast to integer from the lowering
code that itself will need to be legalized. By calling
GetSoftenedFloat we get the integer conversion in one step without
needing to relegalize a bitcast.


Compare: https://github.com/llvm/llvm-project/compare/8eeabbaf5da3...1b0efe2b1778


More information about the All-commits mailing list