llvm/lib/VMCore
Chris Lattner 722272df41 Add two new classes: WeakVH and AssertingVH. These are both "ValueHandles",
which are effectively smart pointers to Value*'s.  They are both very light
weight and simple, and react to values being destroyed or being RAUW'd.

WeakVN does a best effort to follow a value around, including through RAUW 
operations and will get nulled out of the value is destroyed.  This is useful
for the eventual "metadata that references a value" work, because it is a
reference to a value that does not show up on its use_* list.

AssertingVH is a pointer that compiles down to a dumb raw pointer when 
assertions are disabled.  When enabled, it emits an assertion if the 
pointed-to value is destroyed while it is still being referenced.  This
is very useful for Maps and other things, and should have caught the recent
bugs in CallGraph and Reassociate, for example.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68149 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-31 22:11:05 +00:00
..
AsmWriter.cpp Fix internal representation of fp80 to be the 2009-03-23 21:16:53 +00:00
Attributes.cpp Use the spiffy new getAlignmentFromAttrs function. 2009-01-11 17:02:06 +00:00
AutoUpgrade.cpp Reapply 63765. Patches for clang and llvm-gcc to follow. 2009-02-05 01:49:45 +00:00
BasicBlock.cpp simplify the way how traits get hold of the symbol table 2009-03-07 12:33:24 +00:00
CMakeLists.txt CMake: removed lib/VMCore/DebugInfoBuilder.cpp. 2009-01-08 00:18:52 +00:00
ConstantFold.cpp Apply a patch by Micah Villmow to fix AsmParser to accept vector 2009-03-14 17:09:17 +00:00
ConstantFold.h
Constants.cpp Fix infinite looping 2009-03-30 15:28:21 +00:00
Core.cpp C bindings for dyn_cast_or_null. 2008-12-19 18:39:45 +00:00
Dominators.cpp
Function.cpp further simplifications arising from peruse of the more declarative interface 2009-03-07 10:49:57 +00:00
Globals.cpp make GlobalValue::removeDeadConstantUsers() const. 2009-03-09 05:50:45 +00:00
InlineAsm.cpp
Instruction.cpp Simplify the logic of getting hold of a PHI predecessor block. 2009-01-23 19:40:15 +00:00
Instructions.cpp Revert r66920. It was causing failures in the self-hosting buildbot (in release 2009-03-13 21:15:59 +00:00
IntrinsicInst.cpp The fields for the stoppoint debug intrinsic have not changed, so update the 2008-12-19 19:56:36 +00:00
LeakDetector.cpp
Makefile Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
Mangler.cpp Add the private linkage. 2009-01-15 20:18:42 +00:00
Module.cpp "ghostify" the ilist<Function> sentinel 2009-03-27 22:28:33 +00:00
ModuleProvider.cpp
Pass.cpp Rename getAnalysisToUpdate to getAnalysisIfAvailable. 2009-01-28 13:14:17 +00:00
PassManager.cpp Use WriteAsOperand instead of manually decorating the name for this 2009-03-10 18:47:59 +00:00
PrintModulePass.cpp Eliminate several more unnecessary intptr_t casts. 2009-02-18 05:09:16 +00:00
SymbolTableListTraitsImpl.h
Type.cpp delete a bunch of duplicated type printing logic, using the type printing 2009-02-28 23:01:57 +00:00
TypeSymbolTable.cpp
Use.cpp Rearrange operands of the BranchInst, to be able to 2009-03-12 18:34:49 +00:00
Value.cpp Add two new classes: WeakVH and AssertingVH. These are both "ValueHandles", 2009-03-31 22:11:05 +00:00
ValueSymbolTable.cpp
ValueTypes.cpp
Verifier.cpp typo 2009-03-17 11:38:29 +00:00