[ubsan] Skip null checks on pointers to the start of an alloca
authorVedant Kumar <vsk@apple.com>
Mon, 17 Apr 2017 22:26:07 +0000 (22:26 +0000)
committerVedant Kumar <vsk@apple.com>
Mon, 17 Apr 2017 22:26:07 +0000 (22:26 +0000)
commit379d9c1dc6c019eacf851ba1acfaefe8e5f2a587
tree1ee446c7120839bf43d407ab602b8f230107e082
parent1ea8bd81096b42830bb4f20c891f5a34af385de6
[ubsan] Skip null checks on pointers to the start of an alloca

Pointers to the start of an alloca are non-null, so we don't need to
emit runtime null checks for them.

Testing: check-clang, check-ubsan.

This significantly reduces the amount of null checks we emit when
compiling X86ISelLowering.cpp. Here are the numbers from patched /
unpatched clangs based on r300371.

  -------------------------------------
  | Setup          | # of null checks |
  -------------------------------------
  | unpatched, -O0 |            45439 |
  | patched, -O0   |            25251 | (-44.4%)
  -------------------------------------

llvm-svn: 300508
clang/lib/CodeGen/CGExpr.cpp
clang/test/CodeGenCXX/ubsan-suppress-checks.cpp