diff options
author | Johannes Doerfert <doerfert@cs.uni-saarland.de> | 2015-10-02 13:11:27 +0000 |
---|---|---|
committer | Johannes Doerfert <doerfert@cs.uni-saarland.de> | 2015-10-02 13:11:27 +0000 |
commit | 911951f4f85487df14c9b8e87921e1fb96539b7c (patch) | |
tree | 22348c42c42369861ae21f5874aa61b9cb05b1ab /clang-tools-extra/test/clang-tidy/modernize-loop-convert-uppercase.cpp | |
parent | 478a7de18b9a65c47c2c7ae46e873c8638b45a9b (diff) | |
download | bcm5719-llvm-911951f4f85487df14c9b8e87921e1fb96539b7c.tar.gz bcm5719-llvm-911951f4f85487df14c9b8e87921e1fb96539b7c.zip |
Hand down referenced & globally mapped values to the subfunction
If a value is globally mapped (IslNodeBuilder::ValueMap) and
referenced in the code that will be put into a subfunction, we hand
down the new value to the subfunction.
This patch also removes code that handed down all invariant loads to
the subfunction. Instead, only needed invariant loads are given to the
subfunction. There are two possible reasons for an invariant load to
be handed down:
1) The invariant load is used in a block that is placed in the
subfunction but which is not the parent of the load. In this
case, the scalar access that will read the loaded value, will
cause its base pointer (the preloaded value) to be handed down to
the subfunction.
2) The invariant load is defined and used in a block that is placed
in the subfunction. With this patch we will hand down the
preloaded value to the subfunction as the invariant load is
globally mapped to that value.
llvm-svn: 249126
Diffstat (limited to 'clang-tools-extra/test/clang-tidy/modernize-loop-convert-uppercase.cpp')
0 files changed, 0 insertions, 0 deletions