diff options
| author | Peter Collingbourne <peter@pcc.me.uk> | 2015-02-24 23:17:02 +0000 |
|---|---|---|
| committer | Peter Collingbourne <peter@pcc.me.uk> | 2015-02-24 23:17:02 +0000 |
| commit | 1baeaa395a95d618fdd7d5a1fcea9ccc3a6ed996 (patch) | |
| tree | 0e0071bfb6eaaf846020b95ee9652c7502f6e16e /llvm/docs | |
| parent | 03f38362aa2bb98c6d3a4e66068e8cbac358a792 (diff) | |
| download | bcm5719-llvm-1baeaa395a95d618fdd7d5a1fcea9ccc3a6ed996.tar.gz bcm5719-llvm-1baeaa395a95d618fdd7d5a1fcea9ccc3a6ed996.zip | |
LowerBitSets: Introduce global layout builder.
The builder is based on a layout algorithm that tries to keep members of
small bit sets together. The new layout compresses Chromium's bit sets to
around 15% of their original size.
Differential Revision: http://reviews.llvm.org/D7796
llvm-svn: 230394
Diffstat (limited to 'llvm/docs')
| -rw-r--r-- | llvm/docs/BitSets.rst | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/docs/BitSets.rst b/llvm/docs/BitSets.rst index a65f421210f..c6ffdbdb8a1 100644 --- a/llvm/docs/BitSets.rst +++ b/llvm/docs/BitSets.rst @@ -17,8 +17,10 @@ global variable. This will cause a link-time optimization pass to generate bitsets from the memory addresses referenced from the elements of the bitset metadata. The pass will lay out the referenced globals consecutively, so their definitions must -be available at LTO time. An intrinsic, :ref:`llvm.bitset.test <bitset.test>`, -generates code to test whether a given pointer is a member of a bitset. +be available at LTO time. The `GlobalLayoutBuilder`_ class is responsible for +laying out the globals efficiently to minimize the sizes of the underlying +bitsets. An intrinsic, :ref:`llvm.bitset.test <bitset.test>`, generates code +to test whether a given pointer is a member of a bitset. :Example: @@ -64,3 +66,5 @@ generates code to test whether a given pointer is a member of a bitset. %d12 = call i1 @bar(i32* getelementptr ([2 x i32]* @d, i32 0, i32 1)) ; returns 1 ret void } + +.. _GlobalLayoutBuilder: http://llvm.org/klaus/llvm/blob/master/include/llvm/Transforms/IPO/LowerBitSets.h |

