summaryrefslogtreecommitdiffstats
path: root/llvm/docs
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2015-02-24 23:17:02 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2015-02-24 23:17:02 +0000
commit1baeaa395a95d618fdd7d5a1fcea9ccc3a6ed996 (patch)
tree0e0071bfb6eaaf846020b95ee9652c7502f6e16e /llvm/docs
parent03f38362aa2bb98c6d3a4e66068e8cbac358a792 (diff)
downloadbcm5719-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.rst8
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
OpenPOWER on IntegriCloud