llvm-project/llvm/unittests/Analysis
Manoj Gupta 77eeac3d9e llvm: Add support for "-fno-delete-null-pointer-checks"
Summary:
Support for this option is needed for building Linux kernel.
This is a very frequently requested feature by kernel developers.

More details : https://lkml.org/lkml/2018/4/4/601

GCC option description for -fdelete-null-pointer-checks:
This Assume that programs cannot safely dereference null pointers,
and that no code or data element resides at address zero.

-fno-delete-null-pointer-checks is the inverse of this implying that
null pointer dereferencing is not undefined.

This feature is implemented in LLVM IR in this CL as the function attribute
"null-pointer-is-valid"="true" in IR (Under review at D47894).
The CL updates several passes that assumed null pointer dereferencing is
undefined to not optimize when the "null-pointer-is-valid"="true"
attribute is present.

Reviewers: t.p.northover, efriedma, jyknight, chandlerc, rnk, srhines, void, george.burgess.iv

Reviewed By: efriedma, george.burgess.iv

Subscribers: eraman, haicheng, george.burgess.iv, drinkcat, theraven, reames, sanjoy, xbolva00, llvm-commits

Differential Revision: https://reviews.llvm.org/D47895

llvm-svn: 336613
2018-07-09 22:27:23 +00:00
..
AliasAnalysisTest.cpp llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
AliasSetTrackerTest.cpp [AST] Fix a bug in aliasesUnknownInst. Make sure we are comparing the unknown instructions in the alias set and the instruction interested in. 2017-06-25 12:55:11 +00:00
BlockFrequencyInfoTest.cpp Remove redundant includes from unittests. 2017-12-13 21:31:05 +00:00
BranchProbabilityInfoTest.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
CFGTest.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
CGSCCPassManagerTest.cpp [PM] Switch the CGSCC debug messages to use the standard LLVM debug 2017-08-11 05:47:13 +00:00
CMakeLists.txt Add a PhiValuesAnalysis pass to calculate the underlying values of phis 2018-06-28 14:13:06 +00:00
CallGraphTest.cpp
GlobalsModRefTest.cpp GlobalsModRef: Ensure optnone+readonly/readnone attributes are respected 2017-06-07 21:37:39 +00:00
LazyCallGraphTest.cpp [unittests] Change std::sort to llvm::sort in response to r327219 2018-04-07 01:29:45 +00:00
LoopInfoTest.cpp
MemoryBuiltinsTest.cpp
MemorySSA.cpp llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
OrderedBasicBlockTest.cpp [OrderedBasicBlock] Return false for comesBefore(A, A) 2017-06-02 13:10:31 +00:00
PhiValuesTest.cpp [PhiValues] Adjust unit test to invalidate instructions before deleting them 2018-06-28 15:17:07 +00:00
ProfileSummaryInfoTest.cpp Remove redundant includes from unittests. 2017-12-13 21:31:05 +00:00
ScalarEvolutionTest.cpp [SCEV] Do not cache S -> V if S is not equivalent of V 2018-01-09 06:47:14 +00:00
SparsePropagation.cpp [SparsePropagation] Enable interprocedural analysis 2017-10-16 17:44:17 +00:00
TBAATest.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
TargetLibraryInfoTest.cpp [SimplifyLibcalls] Replace locked IO with unlocked IO 2018-05-16 11:39:52 +00:00
UnrollAnalyzer.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
ValueLatticeTest.cpp [ValueLattice] Return false if value range did not change in mergeIn. 2018-06-27 12:57:51 +00:00
ValueTrackingTest.cpp Infer lowest bits of an integer Multiply when the low bits of the operands are known 2017-12-09 23:25:57 +00:00