HomeFreeBSD

Pull in r211155 from upstream llvm trunk (by Tim Northover):

Description

Pull in r211155 from upstream llvm trunk (by Tim Northover):

DAG: move sret demotion into most basic LowerCallTo implementation.

It looks like there are two versions of LowerCallTo here: the
SelectionDAGBuilder one is designed to operate on LLVM IR, and the
TargetLowering one in the case where everything is at DAG level.

Previously, only the SelectionDAGBuilder variant could handle
demoting an impossible return to sret semantics (before delegating to
the TargetLowering version), but this functionality is also useful
for certain libcalls (e.g. 128-bit operations on 32-bit x86).  So
this commit moves the sret handling down a level.

rdar://problem/17242889

This should fix "Call result #3 has unhandled type i32" errors when
building devel/libslang2 for i386. Direct commit to stable/10, since
clang 3.5 and later already have this change.

Reported by: mi
PR: 229754

Details

Provenance
dimAuthored on
Parents
rS336428: Remove VM_FREELIST_ISADMA
Branches
Unknown
Tags
Unknown