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
|