llvm-6502/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 Fix comment typos. 2008-08-01 12:23:49 +00:00
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 Move dominator info printer into tool/opt/GraphPrinters.cpp 2008-06-30 17:32:58 +00:00
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 Keep track of *which* input constraint matches an output 2008-10-17 16:47:46 +00:00
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 Have LeakDetector use a SmallPtrSet instead of an std::set. 2008-08-14 20:40:10 +00:00
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 Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
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 Fold the useful features of alist and alist_node into ilist, and 2008-07-28 21:51:04 +00:00
Type.cpp delete a bunch of duplicated type printing logic, using the type printing 2009-02-28 23:01:57 +00:00
TypeSymbolTable.cpp Fix a bunch of 80col violations that arose from the Create API change. Tweak makefile targets to find these better. 2008-05-15 10:04:30 +00:00
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 implement some fixme's by making "autorenaming" in the value symbol table not 2008-06-27 21:26:26 +00:00
ValueTypes.cpp Added support for vector widening. 2008-12-18 20:03:17 +00:00
Verifier.cpp typo 2009-03-17 11:38:29 +00:00