[PATCH] Add basic support for removal of load that are fed by a store of an aggregate

Björn Steinbrink bsteinbr at gmail.com
Mon Jan 12 11:25:42 PST 2015


On 2015.01.02 16:23:05 -0800, Chandler Carruth wrote:
> As a side note, I don't know what Rust's ABI concerns are, but if at all
> possible, I would suggest moving away from FCAs in the frontend as much as
> possible. Everything I have seen in LLVM is that they obstruct optimization
> in significant ways.

FWIW the Rust compiler no longer emits loads/stores of FCAs, replacing
them with appropriately sized integers when in need of a value (like
Clang). This solves the original problem. There is a case where using
FCA + my patch caused a branch to be eliminated that isn't eliminated
with the default pass manager setup. Only passing the code through opt
twice handles that. I don't have a small test case for that though.

Björn



More information about the llvm-commits mailing list