diff options
author | Mark Seaborn <mseaborn@chromium.org> | 2013-05-30 13:08:26 -0700 |
---|---|---|
committer | Mark Seaborn <mseaborn@chromium.org> | 2013-05-30 13:08:26 -0700 |
commit | f72e0b53e25548d6db9220a03a303e589c9773a4 (patch) | |
tree | aaff14bd8167571353c50289b005bd0fe5c98925 /lib/Transforms/Utils/ModuleUtils.cpp | |
parent | 663c1c948321264aceb07b86cfadcd06b3386e1e (diff) |
PNaCl: Add a pass to expand out Clang's use of registers of struct type
Clang's implementation of C++ method pointers generates IR that uses
LLVM registers with struct type -- specifically, loads and stores of
struct values, and extractvalue instructions. See
lib/CodeGen/ItaniumCXXABI.cpp in Clang. Add a pass, ExpandStructRegs,
which expands out those uses.
Factor out a function from ExpandArithWithOverflow so that the two
passes can share some code.
BUG=https://code.google.com/p/nativeclient/issues/detail?id=3343
TEST=*.ll tests + trybots + GCC torture tests
Review URL: https://codereview.chromium.org/15692014
Diffstat (limited to 'lib/Transforms/Utils/ModuleUtils.cpp')
0 files changed, 0 insertions, 0 deletions