History log of /external/llvm/include/llvm/Support/ValueHandle.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
7b6783a03f16376e8e2d0d9791f090ef32727c8f 14-Aug-2012 Nadav Rotem <nrotem@apple.com> LICM uses AliasSet information to hoist and sink instructions. However, other passes, such as LoopRotate
may invalidate its AliasSet because SSAUpdater does not update the AliasSet properly.
This patch teaches SSAUpdater to notify AliasSet that it made changes.
The testcase in PR12901 is too big to be useful and I could not reduce it to a normal size.

rdar://11872059 PR12901



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161803 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
4e4c3408a5a1cc72b739a4b448329a281c379c55 19-May-2012 Benjamin Kramer <benny.kra@googlemail.com> Move CallbackVHs dtor inline, it can be devirtualized in many cases. Move the other virtual methods out of line as they are only called from within Value.cpp anyway.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157123 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
5252c432dd93147fa70a536be58a15ef329de0b7 08-Apr-2012 Bill Wendling <isanbard@gmail.com> Allow subclasses of the ValueHandleBase to store information as part of the
value pointer by making the value pointer into a pointer-int pair with 2 bits
available for flags.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
3b77f56194952bc3767c11e8b216906d404fcb2c 20-Dec-2010 Owen Anderson <resistor@mac.com> Revert r122114 (CallbackVH observing use-list changes) because it caused severe slowdowns on the Linux self-host configuration.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
9390983b083413fff389d6ab956c82b175d4885e 18-Dec-2010 Eric Christopher <echristo@apple.com> Header warning patrol.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
a479b2325635544fb2c955c4d7e8b6ea9582120f 18-Dec-2010 Owen Anderson <resistor@mac.com> Add support to CallbackVH to receive notification when a Value's use-list changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122114 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
070c07f2c881c9f005c411fb113011a2d5af4057 15-Apr-2010 Dan Gohman <gohman@apple.com> Fix TrackingVH to handle const Value subclasses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
870cfcf9a6189b65a8ee805b93a2c737c0183e62 31-Mar-2010 Chris Lattner <sabre@nondot.org> add new apis for getting/setting !dbg metadata on
instructions. In addition to being a convenience,
they are faster than the old apis, particularly when
not going from an MDKindID like people should be
doing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99982 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
ec39f095f5abaf1ec90d7c6c46454032cda36e1c 31-Mar-2010 Chris Lattner <sabre@nondot.org> Fix a major source of compile-time slowness at -O0 -g by optimizing
the storage of !dbg metadata kinds in the instruction themselves.
The on-the-side hash table works great for metadata that not-all
instructions get, or for metadata that only exists when optimizing.
But when compile-time is everything, it isn't great.

I'm not super thrilled with the fact that this plops a TrackingVH in
Instruction, because it grows it by 3 words. I'm investigating
alternatives, but this should be a step in the right direction in any
case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
4bbf4ee1491637c247e195e19e3e4a8ee5ad72fa 15-Dec-2009 Chris Lattner <sabre@nondot.org> Remove isPod() from DenseMapInfo, splitting it out to its own
isPodLike type trait. This is a generally useful type trait for
more than just DenseMap, and we really care about whether something
acts like a pod, not whether it really is a pod.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91421 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
ebbcef945d33af5252486c1655ec6afdba4f97a7 19-Oct-2009 Jeffrey Yasskin <jyasskin@google.com> Clean up the JITResolver stub/callsite<->function maps.

The JITResolver maps Functions to their canonical stubs and all callsites for
lazily-compiled functions to their target Functions. To make Function
destruction work, I'm going to need to remove all callsites on destruction, so
this patch also adds the reverse mapping for that.

There was an incorrect assumption in here that the only stub for a function
would be the one caused by needing to lazily compile it, while x86-64 far calls
and dlsym-stubs could also cause such stubs, but I didn't look for a test case
that the assumption broke.

This also adds DenseMapInfo<AssertingVH> so I can use DenseMaps instead of
std::maps.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
3a8ff4c8b67d12689cb5fc9c0e9606f4530e6f41 18-Oct-2009 Eric Christopher <echristo@apple.com> More warnings patrol: Another unused argument and more implicit
conversions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
6a9291ad55cf3b3731d3512eb5aa72ac7cdf02f9 12-Oct-2009 Jeffrey Yasskin <jyasskin@google.com> Fix http://llvm.org/PR5160, to let CallbackVHs modify other ValueHandles on the
same Value without breaking things.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
f6811274e18a73e7ba84a820a28cc2549a4fab44 10-Oct-2009 Chris Lattner <sabre@nondot.org> add some WeakVH::operator='s. Without these, assigning
a Value* to a WeakVH was constructing a temporary WeakVH
(due to the implicit assignment operator). This avoids
that cost.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83704 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
e5b18362dbafc8ee44ae864664fffe47066f685a 22-Sep-2009 Daniel Dunbar <daniel@zuster.org> Add a TrackingVH value handle.

This is designed for tracking a value even when it might move (like WeakVH), but it is an error to delete the referenced value (unlike WeakVH0. TrackingVH is templated like AssertingVH on the tracked Value subclass, it is an error to RAUW a tracked value to an incompatible type.

For implementation reasons the latter error is only diagnosed on accesses to a mis-RAUWed TrackingVH, because we don't want a virtual interface in a templated class.

The former error is also only diagnosed on access, so that clients are allowed to delete a tracked value, as long as they don't use it. This makes it easier for the client to reason about destruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
f612ff6cfbf3a59842732f0280807c0714ab9025 19-Sep-2009 Daniel Dunbar <daniel@zuster.org> Strip trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82332 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
7e32c4fa72f8663abce1121965c3065f5dfa6747 19-Sep-2009 Daniel Dunbar <daniel@zuster.org> RHS of assignment should be const reference.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82331 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
0d5bd59553375dc85ac04c81ef48ef74c9e7193e 07-Aug-2009 Jeffrey Yasskin <jyasskin@google.com> To catch bugs like the one fixed in
http://llvm.org/viewvc/llvm-project?view=rev&revision=78127, I'm changing the
ExecutionEngine's global mappings to hold AssertingVH<const GlobalValue>. That
way, if unregistering a mapping fails to actually unregister it, we'll get an
assert. Running the jit nightly tests didn't uncover any actual instances of
the problem.

This also uncovered the fact that AssertingVH<const X> didn't work, so I fixed
that too.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78400 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
29384efb76a85e84f87c9bf898262d7f1069c38c 31-Jul-2009 Dan Gohman <gohman@apple.com> Teach ValueHandleBase to treat DenseMap's special Empty and Tombstone
values the same way it treats null pointers. This is needed to allow
CallbackVH to be used as a key in a DenseMap.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
e8b3e02dce297304389ef7dffae818943d07d640 30-Jul-2009 Devang Patel <dpatel@apple.com> Fix comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77603 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
0ec4146db70916c31281e091bb3b447aab497246 06-May-2009 Dan Gohman <gohman@apple.com> Add simplify_type specializations to allow WeakVH, AssertingVH, and
CallbackVH to participate in dyn_cast, isa, etc. without needing
an explicit conversion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
ff9977f8cdd5275448ca19736cd14a6e20c0dac4 05-May-2009 Dan Gohman <gohman@apple.com> Add an explicit keyword.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
c09b12c62208f09de9d107b320f5420ae6e4fc38 02-May-2009 Dan Gohman <gohman@apple.com> Apply Jeffrey Yasskin's CallbackVH patch, with minor tweaks from me
to make the copy constructor and destructor protected, and corresponding
adjustments to the unittests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70644 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
487fa01673a1d13331b7173e9e6812e72dd4361e 27-Apr-2009 Jeffrey Yasskin <jyasskin@google.com> Add tests for WeakVH and AssertingVH. These pointed out that the overloads for
the comparison operators were not only unnecessary in the presence of the
implicit conversion; they caused ambiguous overload errors. So I deleted them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
7c533169226213a6089a887b4f80f41004e10128 19-Apr-2009 Nick Lewycky <nicholas@mxc.ca> Fix missing text in doxygen documentation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69529 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
b7a00daa1165576dd2bb9d17970c249d536f4a82 03-Apr-2009 Chris Lattner <sabre@nondot.org> Work around an apparent GCC miscompilation by specializing different,
this fixes a regression on some compilers from r68147.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
6caced956460ec360c79dc7d20e872fba1b73583 03-Apr-2009 Chris Lattner <sabre@nondot.org> add missing *


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68350 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
b160f5d36d9d0ed0305e98096f4df430d07ee44f 01-Apr-2009 Chris Lattner <sabre@nondot.org> add a converting operator


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68158 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ValueHandle.h
722272df41d8de9c7683811b7bd8e901ee2f2785 01-Apr-2009 Chris Lattner <sabre@nondot.org> 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
/external/llvm/include/llvm/Support/ValueHandle.h