]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
Pull in r211155 from upstream llvm trunk (by Tim Northover):
authordim <dim@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 17 Jul 2018 21:10:31 +0000 (21:10 +0000)
committerdim <dim@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 17 Jul 2018 21:10:31 +0000 (21:10 +0000)
commit7f7ed733e062fb911047d3f02316a22a10d518ff
treed80e2765ce7d910c4a10951eb6b25e9b4ff4ac3a
parent270c59441fee79e9c48adc7e90ab9ca327f38707
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

git-svn-id: svn://svn.freebsd.org/base/stable/10@336429 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp