diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2012-12-07 02:08:58 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2012-12-07 02:08:58 +0000 |
commit | 70d3bebc8bc857fcf3d7fac44bda884d5e2a7040 (patch) | |
tree | 02d3047cbe28a3ed9cbca567a5e16a3222cfd0d3 /lib/MC/ELFObjectWriter.cpp | |
parent | b02ed5b8eafd11500bbefb7206ecbf5bc3fc324a (diff) |
Add support to ValueTracking for determining that a pointer is non-null
by virtue of inbounds GEPs that preclude a null pointer.
This is a very common pattern in the code generated by std::vector and
other standard library routines which use allocators that test for null
pervasively. This is one step closer to teaching Clang+LLVM to be able
to produce an empty function for:
void f() {
std::vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
}
Which is related to getting them to completely fold SmallVector
push_back sequences into constants when inlining and other optimizations
make that a possibility.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169573 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC/ELFObjectWriter.cpp')
0 files changed, 0 insertions, 0 deletions