[all-commits] [llvm/llvm-project] 2c1dec: [X86] Break the loop in LowerReturn into 2 loops. ...

topperc via All-commits all-commits at lists.llvm.org
Fri Jan 24 14:44:51 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 2c1decc040db57ef05ff2e02f9f96131632edf79
      https://github.com/llvm/llvm-project/commit/2c1decc040db57ef05ff2e02f9f96131632edf79
  Author: Craig Topper <craig.topper at intel.com>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [X86] Break the loop in LowerReturn into 2 loops. NFCI

I believe for STRICT_FP I need to use a STRICT_FP_EXTEND for the extending to f80 for returning f32/f64 in 32-bit mode when SSE is enabled. The STRICT_FP_EXTEND node requires a Chain. I need to get that node onto the chain before any CopyToRegs are emitted. This is because all the CopyToRegs are glued and chained together. So I can't put a STRICT_FP_EXTEND on the chain between the glued nodes without also glueing the STRICT_ FP_EXTEND.

This patch moves all the extend creation to a first pass and then creates the copytoregs and fills out RetOps in a second pass.

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




More information about the All-commits mailing list