diff options
author | whitequark <whitequark@whitequark.org> | 2017-10-15 12:29:09 +0000 |
---|---|---|
committer | whitequark <whitequark@whitequark.org> | 2017-10-15 12:29:09 +0000 |
commit | ae12efab208e3d016ad0911fc00232efee377c95 (patch) | |
tree | bed24fc93715ef683793422536ee10ee397f7d9d /llvm/test/Transforms/MergeFunc | |
parent | b2ce9ffede511a22b5d244d344272f212553b900 (diff) | |
download | bcm5719-llvm-ae12efab208e3d016ad0911fc00232efee377c95.tar.gz bcm5719-llvm-ae12efab208e3d016ad0911fc00232efee377c95.zip |
[MergeFunctions] Merge small functions if possible without a thunk.
This can result in significant code size savings in some cases,
e.g. an interrupt table all filled with the same assembly stub
in a certain Cortex-M BSP results in code blowup by a factor of 2.5.
Differential Revision: https://reviews.llvm.org/D34806
llvm-svn: 315853
Diffstat (limited to 'llvm/test/Transforms/MergeFunc')
-rw-r--r-- | llvm/test/Transforms/MergeFunc/merge-small-unnamed-addr.ll | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/test/Transforms/MergeFunc/merge-small-unnamed-addr.ll b/llvm/test/Transforms/MergeFunc/merge-small-unnamed-addr.ll new file mode 100644 index 00000000000..256f6864761 --- /dev/null +++ b/llvm/test/Transforms/MergeFunc/merge-small-unnamed-addr.ll @@ -0,0 +1,14 @@ +; RUN: opt -S -mergefunc < %s | FileCheck %s + +; CHECK-NOT: @b + +@x = constant { void ()*, void ()* } { void ()* @a, void ()* @b } +; CHECK: { void ()* @a, void ()* @a } + +define internal void @a() unnamed_addr { + ret void +} + +define internal void @b() unnamed_addr { + ret void +} |