about summary refs log tree commit diff
path: root/src/rustllvm/ExecutionEngineWrapper.cpp
diff options
context:
space:
mode:
authorBjörn Steinbrink <bsteinbr@gmail.com>2015-07-02 18:18:22 +0200
committerBjörn Steinbrink <bsteinbr@gmail.com>2015-07-02 18:34:58 +0200
commita04784f7f9fd7f45a59d0d69de0f326881f55f43 (patch)
tree3db2d55d0e0dfaa1fd35c8dad921a783c1617fc6 /src/rustllvm/ExecutionEngineWrapper.cpp
parent6b5edd24f54041b0bb1acafbcf3ccb77868be816 (diff)
downloadrust-a04784f7f9fd7f45a59d0d69de0f326881f55f43.tar.gz
rust-a04784f7f9fd7f45a59d0d69de0f326881f55f43.zip
Directly construct lvalue datums for function arguments
The current split between create_datums_for_fn_args,
copy_args_to_allocas and store_arg involves a detour via rvalue datums
which cause additional work in form of insertvalue/extractvalue pairs
for fat pointer arguments, and an extra alloca and memcpy for tupled
args in rust-call functions.

By merging those three functions into just one that actually covers the
whole process of creating the final argument datums, we can skip all
that. Also, this allows to easily merge in the handling of rust-call
functions, allowing to make create_datum_for_fn_args_under_call_abi
obsolete.

cc #26600 -- The insertvalue instructions kicked us off of fast-isel.
Diffstat (limited to 'src/rustllvm/ExecutionEngineWrapper.cpp')
0 files changed, 0 insertions, 0 deletions