llvm-6502/lib
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
..
Analysis getEntryFor() may invalidate DenseMap iterator. 2009-03-30 18:34:47 +00:00
Archive Add the private linkage. 2009-01-15 20:18:42 +00:00
AsmParser Fix a bug in our autoupgrade support: in an argument list to a function 2009-03-25 06:36:36 +00:00
Bitcode Fix internal representation of fp80 to be the 2009-03-23 21:16:53 +00:00
CodeGen Fully general expansion of integer shift of any size. 2009-03-31 19:39:24 +00:00
CompilerDriver -write-graph now can be used with -o. 2009-03-27 12:57:14 +00:00
Debugger Oops...I committed too much. 2009-03-13 04:39:26 +00:00
ExecutionEngine fix one more fp80 case (used only by Interpreter) 2009-03-24 18:16:17 +00:00
Linker Apply ODR linkage changes accidentally dropped during 2009-03-08 13:35:23 +00:00
Support move a large method out of line. 2009-03-28 02:08:47 +00:00
System Add llvm::sys::getHostTriple and remove 2009-03-31 17:30:15 +00:00
Target i128 shift libcalls are not available on x86. 2009-03-31 19:38:51 +00:00
Transforms Throttle back "fold select into operand" transformation. InstCombine should not generate selects of two constants unless they are selects of 0 and 1. 2009-03-31 20:42:45 +00:00
VMCore Add two new classes: WeakVH and AssertingVH. These are both "ValueHandles", 2009-03-31 22:11:05 +00:00
Makefile Reorganize llvmc code. 2009-03-02 09:01:14 +00:00