History log of /external/llvm/lib/VMCore/Value.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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/lib/VMCore/Value.cpp
3ecb447f52d169dea6663b95b5b5b43e9bb5826b 10-Apr-2012 Bill Wendling <isanbard@gmail.com> The MDString class stored a StringRef to the string which was already in a
StringMap. This was redundant and unnecessarily bloated the MDString class.

Because the MDString class is a "Value" and will never have a "name", and
because the Name field in the Value class is a pointer to a StringMap entry, we
repurpose the Name field for an MDString. It stores the StringMap entry in the
Name field, and uses the normal methods to get the string (name) back.

PR12474


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154429 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
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/lib/VMCore/Value.cpp
274d377ea68195989c3238fe96ce2ca812a12faf 15-Mar-2012 Chandler Carruth <chandlerc@gmail.com> Extend the inline cost calculation to account for bonuses due to
correlated pairs of pointer arguments at the callsite. This is designed
to recognize the common C++ idiom of begin/end pointer pairs when the
end pointer is a constant offset from the begin pointer. With the
C-based idiom of a pointer and size, the inline cost saw the constant
size calculation, and this provides the same level of information for
begin/end pairs.

In order to propagate this information we have to search for candidate
operations on a pair of pointer function arguments (or derived from
them) which would be simplified if the pointers had a known constant
offset. Then the callsite analysis looks for such pointer pairs in the
argument list, and applies the appropriate bonus.

This helps LLVM detect that half of bounds-checked STL algorithms
(such as hash_combine_range, and some hybrid sort implementations)
disappear when inlined with a constant size input. However, it's not
a complete fix due the inaccuracy of our cost metric for constants in
general. I'm looking into that next.

Benchmarks showed no significant code size change, and very minor
performance changes. However, specific code such as hashing is showing
significantly cleaner inlining decisions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
84dfc32ff906271c373819595e60a173624e1184 10-Mar-2012 Chandler Carruth <chandlerc@gmail.com> Refactor some methods to look through bitcasts and GEPs on pointers into
a common collection of methods on Value, and share their implementation.
We had two variations in two different places already, and I need the
third variation for inline cost estimation.

Reviewed by Duncan Sands on IRC, but further comments here welcome.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152490 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
37abc488a0527bb682af5aa6c4f376b5b99d67e4 23-Jan-2012 Nick Lewycky <nicholas@mxc.ca> Make Value::isDereferenceablePointer() handle unreachable code blocks. (This
returns false in the event the computation feeding into the pointer is
unreachable, which maybe ought to be true -- but this is at least consistent
with undef->isDereferenceablePointer().) Fixes PR11825!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
4da7f90b1780e4d1ba38da64c849b9c2b1c67071 05-Dec-2011 Benjamin Kramer <benny.kra@googlemail.com> Add a little heuristic to Value::isUsedInBasicBlock to speed it up for small basic blocks.

- Calling getUser in a loop is much more expensive than iterating over a few instructions.
- Use it instead of the open-coded loop in AddrModeMatcher.
- 5% speedup on ARMDisassembler.cpp Release builds.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
2bbb7e3ca609dcd2eb2ae3b98d85fe002baf653e 15-Nov-2011 Benjamin Kramer <benny.kra@googlemail.com> Remove Value::getNameStr. It has been deprecated for a while and provides no additional value over getName().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144657 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
a7b0cb759433c715065440ee2a963a04db7f2b0b 15-Nov-2011 Benjamin Kramer <benny.kra@googlemail.com> Remove all remaining uses of Value::getNameStr().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144648 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
db125cfaf57cc83e7dd7453de2d509bc8efd0e5e 18-Jul-2011 Chris Lattner <sabre@nondot.org> land David Blaikie's patch to de-constify Type, with a few tweaks.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
678f9e05c949bc565b736b0bb4337bffb0f3c687 15-Jul-2011 Chris Lattner <sabre@nondot.org> remove the old and dangerous uncheckedReplaceAllUsesWith method,
which was just replaceAllUsesWith without some assertions. It was
needed back when type refinement was alive.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
1afcace3a3a138b1b18e5c6270caa8dae2261ae2 09-Jul-2011 Chris Lattner <sabre@nondot.org> Land the long talked about "type system rewrite" patch. This
patch brings numerous advantages to LLVM. One way to look at it
is through diffstat:
109 files changed, 3005 insertions(+), 5906 deletions(-)

Removing almost 3K lines of code is a good thing. Other advantages
include:

1. Value::getType() is a simple load that can be CSE'd, not a mutating
union-find operation.
2. Types a uniqued and never move once created, defining away PATypeHolder.
3. Structs can be "named" now, and their name is part of the identity that
uniques them. This means that the compiler doesn't merge them structurally
which makes the IR much less confusing.
4. Now that there is no way to get a cycle in a type graph without a named
struct type, "upreferences" go away.
5. Type refinement is completely gone, which should make LTO much MUCH faster
in some common cases with C++ code.
6. Types are now generally immutable, so we can use "Type *" instead
"const Type *" everywhere.

Downsides of this patch are that it removes some functions from the C API,
so people using those will have to upgrade to (not yet added) new API.
"LLVM 3.0" is the right time to do this.

There are still some cleanups pending after this, this patch is large enough
as-is.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134829 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
95c3e48f9557adb6064d580684bb14cacec2f826 23-Jun-2011 Jay Foad <jay.foad@gmail.com> Reinstate r133513 (reverted in r133700) with an additional fix for a
-Wshorten-64-to-32 warning in Instructions.h.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
e59fbc04ad343435705c28b3cf7038d65fe4af0a 23-Jun-2011 Eric Christopher <echristo@apple.com> Revert r133513:

"Reinstate r133435 and r133449 (reverted in r133499) now that the clang
self-hosted build failure has been fixed (r133512)."

Due to some additional warnings.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133700 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
cd35e09a4a3c640b9da0b1dfe3548a605c929ae5 21-Jun-2011 Jay Foad <jay.foad@gmail.com> Reinstate r133435 and r133449 (reverted in r133499) now that the clang
self-hosted build failure has been fixed (r133512).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
a88a0ca8082006b37d14d8aee4a644b20bae8bc9 21-Jun-2011 Chad Rosier <mcrosier@apple.com> Revert r133435 and r133449 to appease buildbots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133499 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
72f5f313d87558958696ce69593d82efcdfa9128 20-Jun-2011 Jay Foad <jay.foad@gmail.com> Change how PHINodes store their operands.

Change PHINodes to store simple pointers to their incoming basic blocks,
instead of full-blown Uses.

Note that this loses an optimization in SplitCriticalEdge(), because we
can no longer walk the use list of a BasicBlock to find phi nodes. See
the comment I removed starting "However, the foreach loop is slow for
blocks with lots of predecessors".

Extend replaceAllUsesWith() on a BasicBlock to also update any phi
nodes in the block's successors. This mimics what would have happened
when PHINodes were proper Users of their incoming blocks. (Note that
this only works if OldBB->replaceAllUsesWith(NewBB) is called when
OldBB still has a terminator instruction, so it still has some
successors.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133435 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
3928af6ac47f9abef7dff32823a5fd41743c8fbc 23-Jan-2011 Chris Lattner <sabre@nondot.org> teach Value::isDereferenceablePointer that byval arguments are always
dereferencable, noticed by inspection.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124085 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
bdbe342e8602e38c7eadb4f0c2664e7e30bff768 16-Jan-2011 Jay Foad <jay.foad@gmail.com> Move the implementation of the User class into a new source file,
User.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123575 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
8e68c3873549ca31533e2e3e40dda3a43cb79566 23-Dec-2010 Jeffrey Yasskin <jyasskin@google.com> Change all self assignments X=X to (void)X, so that we can turn on a
new gcc warning that complains on self-assignments and
self-initializations.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122458 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
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/lib/VMCore/Value.cpp
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/lib/VMCore/Value.cpp
5034dd318a9dfa0dc45a3ac01e58e60f2aa2498d 15-Dec-2010 Dan Gohman <gohman@apple.com> Move Value::getUnderlyingObject to be a standalone
function so that it can live in Analysis instead of
VMCore.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
67b6464377a444a15a1a26fb8ca7cd54fc056de8 11-Nov-2010 Nick Lewycky <nicholas@mxc.ca> Doxygenify


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118846 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
4d70a2949007edeaad4662d5cdcb2d272cb2b2ff 11-Nov-2010 Dan Gohman <gohman@apple.com> Factor out Instruction::isSafeToSpeculativelyExecute's code for
testing for dereferenceable pointers into a helper function,
isDereferenceablePointer. Teach it how to reason about GEPs
with simple non-zero indices.

Also eliminate ArgumentPromtion's IsAlwaysValidPointer,
which didn't check for weak externals or out of range gep
indices.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
2c11046fa186a4489bfd562cd81ff8a4883cb223 27-Jul-2010 Duncan Sands <baldrick@free.fr> After updating value handles for RAUW, check that no weak or tracking handles
are still on the list. This might happen if a CallbackVH created some new value
handles for the old value when doing RAUW. Barf if it occurs, since it is almost
certainly a mistake.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109495 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
ffe8c8871a1c7119440b2b02dce746901794fa5e 24-Jul-2010 Duncan Sands <baldrick@free.fr> Clarify that if a new value handle is added while dropping value handles
hanging off a value, then the dropping code will intentionally not drop
it too (since this is almost certainly a bug).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109337 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
17aa92c92a925b4a674440c7ef088c223990e854 22-Jul-2010 Dan Gohman <gohman@apple.com> Make NamedMDNode not be a subclass of Value, and simplify the interface
for creating and populating NamedMDNodes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
50f424c3d079d4774bb323de1e0b77cf4627be69 28-Jun-2010 Dan Gohman <gohman@apple.com> Fix Value::stripPointerCasts and BasicAA to avoid trouble on
code in unreachable blocks, which have have use-def cycles.
This fixes PR7514.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
60ad781c61815ca5b8dc2a45a102e1c8af65992f 26-Mar-2010 Gabor Greif <ggreif@gmail.com> rename use_const_iterator to const_use_iterator for consistency's sake

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99564 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
47c5188789bc40671504ed1fa3a44765cefba44f 16-Feb-2010 Duncan Sands <baldrick@free.fr> Introduce isOpaqueTy and use it rather than isa<OpaqueType>. Also, move some
methods to try to have the type predicates be more logically positioned.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
1df9859c40492511b8aa4321eb76496005d3b75b 16-Feb-2010 Duncan Sands <baldrick@free.fr> There are two ways of checking for a given type, for example isa<PointerType>(T)
and T->isPointerTy(). Convert most instances of the first form to the second form.
Requested by Chris.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
032742972f69c014dd5e985753c06a7fe3d08704 25-Jan-2010 Bob Wilson <bob.wilson@apple.com> Change Value::getUnderlyingObject to have the MaxLookup value specified as a
parameter with a default value, instead of just hardcoding it in the
implementation. The limit of MaxLookup = 6 was introduced in r69151 to fix
a performance problem with O(n^2) behavior in instcombine, but the scalarrepl
pass is relying on getUnderlyingObject to go all the way back to an AllocaInst.
Making the limit part of the method signature makes it clear that by default
the result is limited and should help avoid similar problems in the future.
This fixes pr6126.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94433 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
b357e06f672996400343d38b08014a5b6a7d5b2d 13-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> Introduce Twine::toStringRef, a variant of toVector which avoids the copy if the
twine can be represented as a single StringRef. Use the new methode to simplify
some twine users.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93317 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
f012705c7e4ca8cf90b6b734ce1d5355daca5ba5 05-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> Avoid going through the LLVMContext for type equality where it's safe to dereference the type pointer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
6892c7a92d0d2132b8361f7324824a680d09134c 05-Jan-2010 David Greene <greened@obbligato.org> Change errs() to dbgs().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
a43a3f2379360a766725a4138ee9aff4df41b486 29-Dec-2009 Chris Lattner <sabre@nondot.org> When doing v1->RAUW(v2), don't do anything to metadata. We don't know
why one was replaced with the other. Even in the specific case of
debug information, it doesn't make sense to transfer the location over,
this will just result in jumbled loc info.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
3990b121cf4a0b280ed3e54cf13870cbf4259e78 29-Dec-2009 Chris Lattner <sabre@nondot.org> This is a major cleanup of the instruction metadata interfaces that
I asked Devang to do back on Sep 27. Instead of going through the
MetadataContext class with methods like getMD() and getMDs(), just
ask the instruction directly for its metadata with getMetadata()
and getAllMetadata().

This includes a variety of other fixes and improvements: previously
all Value*'s were bloated because the HasMetadata bit was thrown into
value, adding a 9th bit to a byte. Now this is properly sunk down to
the Instruction class (the only place where it makes sense) and it
will be folded away somewhere soon.

This also fixes some confusion in getMDs and its clients about
whether the returned list is indexed by the MDID or densely packed.
This is now returned sorted and densely packed and the comments make
this clear.

This introduces a number of fixme's which I'll follow up on.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92235 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
c4775e4b973aaf6695dc00a3403b8b64f5257568 01-Nov-2009 Chris Lattner <sabre@nondot.org> remove a bunch of locking from LLVMContextImpl. Since only one thread
can be banging on a context at a time, this isn't needed. Owen, please
review.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
4e34a3912ad5c1a4f82c18bffa98898d5a4ea4c4 17-Oct-2009 Daniel Dunbar <daniel@zuster.org> Remove unnecessary include.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
740d0db812a31a8df4ff1b7d6cfb25a3725f5e01 13-Oct-2009 Devang Patel <dpatel@apple.com> Copy metadata when value is RAUW'd. It is debatable whether this is the right approach for custom metadata data in general. However, right now the only custom data user, "dbg", expects this behavior while FE is constructing llvm IR with debug info.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
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/lib/VMCore/Value.cpp
460a786b349cceb79917cb76712ec4941bef69cc 22-Sep-2009 Daniel Dunbar <daniel@zuster.org> Fix commento.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
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/lib/VMCore/Value.cpp
ce99a6e49ee5f849c33aa1a989b4cc08c71c3c9b 20-Sep-2009 Daniel Dunbar <daniel@zuster.org> Strip trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
d8c8e01fe8e30dc332f07d3216b2fad55741e1cf 17-Sep-2009 Benjamin Kramer <benny.kra@googlemail.com> Initialize HasMetadata to zero.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82145 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
937b1e92a9862862722732cb0f72d5ade77ac4c8 16-Sep-2009 Devang Patel <dpatel@apple.com> Add llvm::Metadata to manage metadata used in a context.
This interface will be used to attach metadata with an instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82060 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
aac1bfb99a7a43ce145748f41f64f970f5499de6 27-Aug-2009 Dan Gohman <gohman@apple.com> Teach getUnderlyingObject and skipPointerCasts about GlobalAliases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
5149932068f535e1ff13b91c9669f55718c60a07 20-Aug-2009 Daniel Dunbar <daniel@zuster.org> Add a fast path for setName("") on an unnamed value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79492 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
e476004b94582c64a0fabaa0e251a0f070909843 19-Aug-2009 Daniel Dunbar <daniel@zuster.org> Make a SmallVector size more reasonable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79403 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
4d919438898d542850449235da7f6dc55e6ca152 18-Aug-2009 Owen Anderson <resistor@mac.com> Privatize the ValueHandle global map. Because this is used so heavily throughout the code base, locking all accesses to
it is not practical performance-wise.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79355 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
1d0be15f89cb5056e20e2d24faa8d6afb1573bca 13-Aug-2009 Owen Anderson <resistor@mac.com> Push LLVMContexts through the IntegerType APIs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
a1244304925a5ae80e671af3a3a2ad4679071bfa 11-Aug-2009 Dan Gohman <gohman@apple.com> Fix a typo in an assertion string.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
4f95d2bda4235d36acd95688d0744d7363214706 05-Aug-2009 Chris Lattner <sabre@nondot.org> revert r78048, it isn't worth using assertingvh here.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78119 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
0a0193edf9152bdc47a49a1a513d6e9cbf723131 04-Aug-2009 Chris Lattner <sabre@nondot.org> switch ValueMap to using AssertingVH. This is an old patch I had laying
around in a tree I forgot about.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78048 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
28bc9d88260a3e153ead4311c9129e3d3ad07736 29-Jul-2009 Devang Patel <dpatel@apple.com> Keep track of named mdnodes in a Module using an ilist.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
0a9f7b9c3ebe7d0ec033462e1a7c9101279956f9 28-Jul-2009 Devang Patel <dpatel@apple.com> Rename MDNode.h header. It defines MDnode and other metadata classes.
New name is Metadata.h.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
4fa4990bdcb1fc2aa7831b1e6b113998366b2918 26-Jul-2009 Daniel Dunbar <daniel@zuster.org> Make sure getName().data() is always null terminated.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
499027fb4826e25919f2ea154ca4db73842560af 26-Jul-2009 Daniel Dunbar <daniel@zuster.org> Rewrite getName{Start,End,Len} in terms of getName(), instead of vice-versa.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
07f6903cbefe268d7fbf7f17fc8c1cddae16db5a 26-Jul-2009 Daniel Dunbar <daniel@zuster.org> Simplify.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
3f53fa9a51c4ce7ba81170ca7ab2e49bd37281b0 26-Jul-2009 Daniel Dunbar <daniel@zuster.org> Remove Value::setName(const char*, unsigned).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
d1319ef308ffe3e5de2f90ee11892ff43adbea13 26-Jul-2009 Daniel Dunbar <daniel@zuster.org> Remove Value::setName(const char*).
- Split into a separate patch because there is a slight functionality change,
it is no longer valid to call setName(0), which was equivalent to
setName(""). I'm hoping no one depends on this...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
03d7651c3652e1f0cc86e79b26585d86818da9cf 26-Jul-2009 Daniel Dunbar <daniel@zuster.org> Remove Value::{isName, getNameRef}.

Also, change MDString to use a StringRef.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
6e0d1cb30957a636c53158d3089e6fb88348a57a 25-Jul-2009 Daniel Dunbar <daniel@zuster.org> Initial update to VMCore to use Twines for string arguments.
- The only meat here is in Value.{h,cpp} the rest is essential 'const
std::string &' -> 'const Twine &'.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77048 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
b95c2fd2700a92a7b857ebd1ecf6c7d561d676d2 24-Jul-2009 Daniel Dunbar <daniel@zuster.org> Move more to raw_ostream.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76964 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
e6c42dd6d3cc1e0a8a11224a11bcfbd8c60c6fff 23-Jul-2009 Daniel Dunbar <daniel@zuster.org> Add llvm::Value::getNameRef, for help in API migration.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
e54abc90fe9942ef3902040a7ac475ce0c369dc9 22-Jul-2009 Devang Patel <dpatel@apple.com> Introduce MetadataBase, a base class for MDString and MDNode.
Derive MDString directly from MetadataBase.
Introduce new bitcode block to hold metadata.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76759 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
e922c0201916e0b980ab3cfe91e1413e68d55647 22-Jul-2009 Owen Anderson <resistor@mac.com> Get rid of the Pass+Context magic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
f2411744214dad8c71044aac2977ca77e9ebf028 20-Jul-2009 Dan Gohman <gohman@apple.com> Revert the addition of hasNoPointerOverflow to GEPOperator.
Getelementptrs that are defined to wrap are virtually useless to
optimization, and getelementptrs that are undefined on any kind
of overflow are too restrictive -- it's difficult to ensure that
all intermediate addresses are within bounds. I'm going to take
a different approach.

Remove a few optimizations that depended on this flag.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76437 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
8fdedc0918229cfa887b82f8e0316a52ae1b0228 18-Jul-2009 Dan Gohman <gohman@apple.com> Fix this accidentally inverted condition.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
016de81177ec5c950f1668be4a48992bc1ee0d75 18-Jul-2009 Dan Gohman <gohman@apple.com> Convert more code to use Operator instead of explicitly handling both
ConstantExpr and Instruction. This involves duplicating some code
between GetElementPtrInst and GEPOperator, but it's not a lot.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
3a7a68c10880c2a28387617b42d14d774e218727 18-Jul-2009 Dan Gohman <gohman@apple.com> Make BasicAliasAnalysis and Value::getUnderlyingObject use
GEPOperator's hasNoPointer0verflow(), and make a few places in instcombine
that create GEPs that may overflow clear the NoOverflow value. Among
other things, this partially addresses PR2831.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
9491c16e14f9fb56d5d71cd855c2d8c315fbb5ae 17-Jul-2009 Dan Gohman <gohman@apple.com> Add a SubclassOptionalData field to Value. See the doxygen comment for
details.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76189 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
c23197a26f34f559ea9797de51e187087c039c42 14-Jul-2009 Torok Edwin <edwintorok@gmail.com> llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
73097623650346be7fb01b773894bc3d8ea7ac8d 09-Jul-2009 Jeffrey Yasskin <jyasskin@google.com> Fix the AssertingVH unittests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75060 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
dac237e18209b697a8ba122d0ddd9cad4dfba1f8 08-Jul-2009 Torok Edwin <edwintorok@gmail.com> Implement changes from Chris's feedback.
Finish converting lib/Target.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
ab7c09b6b6f4516a631fd6788918c237c83939af 08-Jul-2009 Torok Edwin <edwintorok@gmail.com> Start converting to new error handling API.
cerr+abort -> llvm_report_error
assert(0)+abort -> LLVM_UNREACHABLE (assert(0)+llvm_unreachable-> abort() included)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
a9d1f2c559ef4b2549e29288fe6944e68913ba0f 07-Jul-2009 Owen Anderson <resistor@mac.com> Have scoped mutexes take referenes instead of pointers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74931 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
bcf9737f1e8ca39efc4f7a4638d0836cad7ba4e1 18-Jun-2009 Owen Anderson <resistor@mac.com> Simplify by using no-op-when-not-multithreaded locks.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73719 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
e3cd5ca7e79f4359e8a101c211fc9c117eb62347 18-Jun-2009 Owen Anderson <resistor@mac.com> Move Threading.[h|cpp] from Support to System.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73707 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
f2aac28d3040f9c716b4597ec90d237f27883866 17-Jun-2009 Owen Anderson <resistor@mac.com> Protect the ValueHandle table.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73620 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
fe095f39e7009c51d1c86769792ccbcad8cdd2ec 04-May-2009 Mike Stump <mrs@apple.com> Restore minor deletion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70892 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
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/lib/VMCore/Value.cpp
300e36503ca6f0599d64d0e5d4705a1030dac6a1 15-Apr-2009 Nick Lewycky <nicholas@mxc.ca> Limit the number of times we're willing to chase pointers. Removes an O(n^2)
problem from instcombine.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
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/lib/VMCore/Value.cpp
ae5a20a9177650525b40ed88c8326a398e6caa8a 12-Mar-2009 Gabor Greif <ggreif@gmail.com> Rearrange operands of the BranchInst, to be able to
access each with a fixed negative index from op_end().

This has two important implications:
- getUser() will work faster, because there are less iterations
for the waymarking algorithm to perform. This is important
when running various analyses that want to determine callers
of basic blocks.
- getSuccessor() now runs faster, because the indirection via OperandList
is not necessary: Uses corresponding to the successors are at fixed
offset to "this".

The price we pay is the slightly more complicated logic in the operator
User::delete, as it has to pick up the information whether it has to free
the memory of an original unconditional BranchInst or a BranchInst that
was originally conditional, but has been shortened to unconditional.
I was not able to come up with a nicer solution to this problem. (And
rest assured, I tried *a lot*).

Similar reorderings will follow for InvokeInst and CallInst. After that
some optimizations to pred_iterator and CallSite will fall out naturally.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66815 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
f08bf1193c390bfe4b25d8533f146742d0277d06 29-Dec-2008 Duncan Sands <baldrick@free.fr> Make stripPointerCasts and getUnderlyingObject
non-recursive.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61479 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
44b838d5b5514b861801934ad58052e9f226e535 13-Dec-2008 Chris Lattner <sabre@nondot.org> These messages should always be emitted when NDEBUG is unset, not when
NDEBUG is unset and -debug is passed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
01c8e0233d086354b55d2047506ac6a8fc3c9f65 02-Dec-2008 Chris Lattner <sabre@nondot.org> Comment typeo fix, thanks Duncan!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60429 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
c7f7c1dc5067a36c8ae337610dcbbe55d525c80c 02-Dec-2008 Chris Lattner <sabre@nondot.org> add a little helper function that does PHI translation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60405 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
5d0392c6b370758750b397e254a6c6f028479969 01-Oct-2008 Duncan Sands <baldrick@free.fr> Factorize code: remove variants of "strip off
pointer bitcasts and GEP's", and centralize the
logic in Value::getUnderlyingObject. The
difference with stripPointerCasts is that
stripPointerCasts only strips GEPs if all
indices are zero, while getUnderlyingObject
strips GEPs no matter what the indices are.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56922 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
c4f72dd6e759a170808ecfc6be784f8598367484 26-Sep-2008 Bill Wendling <isanbard@gmail.com> Make pointer parameter const for isUsedInBasicBlock.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56625 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
6f4266506bca785828bacda55bd5db9172f990c6 19-Sep-2008 Gabor Greif <ggreif@gmail.com> backing out my last commit, it was not intended to go on the trunk

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
6c2c95d0acd867add034d93d4b909ddd75d61b14 19-Sep-2008 Gabor Greif <ggreif@gmail.com> first shot at removing Use::Val
untested, Use::swap() is definitely not done yet

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
1bf9a18834b338484c0a494110cff9cc407be381 24-Jul-2008 Evan Cheng <evan.cheng@apple.com> Rename instance variables, parameter argument names to eliminate a bunch of compilation warnings with -Wshadow.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
a1aabe422f139daebf9cada3d45a611687465ac5 21-Jun-2008 Chris Lattner <sabre@nondot.org> fix some warnings when assertions are disabled.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52587 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
502a4f5162498ec420e3cb22f667808d726dd7da 12-Jun-2008 Evan Cheng <evan.cheng@apple.com> Do not speculatively execute an instruction by hoisting it to its predecessor BB if any of its operands are defined but not used in BB. The transformation will prevent the operand from being sunk into the use block.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
ff155f03bd5d4a8fbeff09ad854582a37cdaa228 15-May-2008 Nate Begeman <natebegeman@mac.com> Move the operator new and operator delete out of line. This fixes an issue with
operator new() referring to the static initTags function, which has to be in the
same linkage unit as any file including User.h.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51136 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
0b12ecf6ff6b5d3a144178257b6206f0c4788792 08-May-2008 Anton Korobeynikov <asl@math.spbu.ru> Turn StripPointerCast() into a method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
b04adddd50dfa4c3fbdad3b15d601402254c1ff5 07-May-2008 Anton Korobeynikov <asl@math.spbu.ru> Make StripPointerCast a common function (should we mak it method of Value instead?)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50775 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
5c5f1095ec4587865fc2b25534fcd1ed14ad8b82 30-Apr-2008 Chris Lattner <sabre@nondot.org> fix a bug in my previous patch, a classic =/== bug.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50483 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
12e6d200597bb5d61ed56ccf9d70a52614956a70 30-Apr-2008 Chris Lattner <sabre@nondot.org> add a method for comparing to see if a value has a specified name.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50465 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
1038222a9bda953e8c2d32bad468b72b6c90bde9 01-Mar-2008 Nick Lewycky <nicholas@mxc.ca> Print the name, not a pointer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47796 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
db71d63467bdb7b629641fee3272b47bd028e09f 21-Feb-2008 Devang Patel <dpatel@apple.com> Let invoke return aggregate value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47425 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
bb4f8d40458eb086cb901e19c4be0777e2a73dce 21-Feb-2008 Devang Patel <dpatel@apple.com> Let function call return aggregate.
Now, we have very first multiple return value testcase!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47424 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
ae9f3a3b7c915f725aef5a7250e88eaeddda03c6 20-Feb-2008 Anton Korobeynikov <asl@math.spbu.ru> Unbreak build with gcc 4.3: provide missed includes and silence most annoying warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
4ee451de366474b9c228b4e5fa573795a715216d 29-Dec-2007 Chris Lattner <sabre@nondot.org> Remove attribution from file headers, per discussion on llvmdev.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
afba8fe662d65b25b4baf46bb26cc18e1f9cc0a5 10-Dec-2007 Gordon Henriksen <gordonhenriksen@mac.com> Reverting dtor devirtualization patch.
_sabre_: it has a major problem: by the time ~Value is run, all of the "parts" of the derived classes have been destroyed
_sabre_: the vtable lives to fight another day

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
d418239da7952236cefc20d592e46912672732b7 10-Dec-2007 Chris Lattner <sabre@nondot.org> fix some warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44756 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
429c8221cc2ec64ba617636a6dd0c0a26ee85c9d 10-Dec-2007 Chris Lattner <sabre@nondot.org> Fix a big problem in the recent dtor refactoring work, now it passes 2007-11-19-InlineAsm.ll



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44755 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
ed455c8fa25dd37a13b33f0afa66be03ac49b5bb 09-Dec-2007 Gordon Henriksen <gordonhenriksen@mac.com> Devirtualizing Value destructor (PR889). Patch by Pawel Kunio!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44747 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
cb406c25973b4e88a6c10ad839ef1beeb3664715 03-Oct-2007 Dan Gohman <gohman@apple.com> Use empty() member functions when that's what's being tested for instead
of comparing begin() and end().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
d7c4ca100932089aeee4a2596715b22fef95194f 28-Sep-2007 Chris Lattner <sabre@nondot.org> Make Value::getNameLen not crash on an empty name, fixing PR1712.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42444 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
2d691333acec66118ede55b6d7ec7a3083bc1e01 21-Aug-2007 Chris Lattner <sabre@nondot.org> simplify code, improve a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
71996e73d8050d2b8805b14a48ab635155b11a12 10-Aug-2007 Chris Lattner <sabre@nondot.org> add Value::getNameStart/getNameLen() accessors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
91857da2f53d9abc620cf944465d2899c517a5b5 20-Mar-2007 Chris Lattner <sabre@nondot.org> Fix a nasty memory leak, caused by my revamp of the value symbol table.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35195 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
ca5183d445954a9b2a570d6bbba1bc2b00ad6442 05-Mar-2007 Jeff Cohen <jeffc@jolt-lang.org> Unbreak VC++ build.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
0878c310596d564e75657bf3c771431b4ef7eea5 15-Feb-2007 Chris Lattner <sabre@nondot.org> rewrite Value::takeName to take advantage of the new symtab stuff. This
causes it to require no allocations and no symtab lookups in the common
case. This speeds up instcombine 9.2% on 447.dealII.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34324 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
924b1ca9ee02b648149d76b62e30f5d9c0ebbf27 15-Feb-2007 Chris Lattner <sabre@nondot.org> Add a new Value::getNameStr method, which is preferred over getName.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34310 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
ec79b3da13ae9ba09f52e177bd71fcc5669d61a5 13-Feb-2007 Chris Lattner <sabre@nondot.org> add a setName variant that takes a null-terminated string. This can be
used to avoid std::string allocations in common cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
042ad36871d67a2db48bf41a8dbde3a5676fc96f 12-Feb-2007 Chris Lattner <sabre@nondot.org> Add new setName accessor which doesn't require creating a string.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34197 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
dec628eead87b20773c98a00830580df211acc98 12-Feb-2007 Chris Lattner <sabre@nondot.org> Switch ValueSymbolTable to use StringMap<Value*> instead of std::map<std::string, Value*>
as its main datastructure. There are many improvements yet to be made, but
this speeds up opt --std-compile-opts on 447.dealII by 7.3%.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
ea7acb859111a7f55c497e0b7cf569ac81e97208 11-Feb-2007 Chris Lattner <sabre@nondot.org> fix uninitialized variable


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34182 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
f41916e75dc9c622fa81b91eb6a5e0a36fa13754 11-Feb-2007 Chris Lattner <sabre@nondot.org> add an optimization for the case where the src has no name


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34174 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
7216811ea22d68cbf8df092cda8e64e13e394ac8 11-Feb-2007 Chris Lattner <sabre@nondot.org> add a helper method: Value::takeName


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34171 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
56920a0eccb281e4f7cc71cb69c0d23c9d531a84 07-Feb-2007 Chris Lattner <sabre@nondot.org> eliminate ValueSymbolTable::rename, it has no advantage over using remove+insert.
Make insert/remove assert if used incorrectly instead of returning a bool.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
ef9b9a793949469cdaa4ab6d0173136229dcab7b 05-Feb-2007 Reid Spencer <rspencer@reidspencer.com> For PR411:
This patch replaces the SymbolTable class with ValueSymbolTable which does
not support types planes. This means that all symbol names in LLVM must now
be unique. The patch addresses the necessary changes to deal with this and
removes code no longer needed as a result. This completes the bulk of the
changes for this PR. Some cleanup patches will follow.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
78d033e086e19e016273de014f9214aa6f3f844b 06-Jan-2007 Reid Spencer <rspencer@reidspencer.com> For PR411:
Take an incremental step towards type plane elimination. This change
separates types from values in the symbol tables by finally making use
of the TypeSymbolTable class. This yields more natural interfaces for
dealing with types and unclutters the SymbolTable class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
2e3def1177c462e14b20ddad71adf5c6b7c3e867 17-Nov-2006 Bill Wendling <isanbard@gmail.com> Removed iostream #includes. Replaced std::cerr with DOUT.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
d0ff1adbdb4b7b565b7f8f191aac0731e80aa1ef 04-Oct-2005 Chris Lattner <sabre@nondot.org> Change the signature of replaceUsesOfWithOnConstant. The bool was always
true dynamically. Finally, pass the Use* that replaceAllUsesWith has into
the method for future use.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
fd93908ae8b9684fe71c239e3c6cfe13ff6a2663 22-Apr-2005 Misha Brukman <brukman+llvm@gmail.com> Remove trailing whitespace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
04cb800c324ef661017aff474e266ed7f2cddb90 06-Mar-2005 Chris Lattner <sabre@nondot.org> This fixes PR531, a crash when running the CBE on a bytecode file.

The problem is that Function::renameLocalSymbols is iterating through
the symbol table planes, occasionally calling setName to rename a value
(which used to do a symbol table remove/insert pair).

The problem is that if there is only a single value in a particular type
plane that the remove will nuke the symbol table plane, and the insert
will create and insert a new one. This hoses Function::renameLocalSymbols
because it has an iterator to the old plane, under the (very reasonable)
assumption that simply renaming a value won't cause the type plane to
disappear.

This patch fixes the bug by making the rename operation a single atomic
operation, which has a side effect of making the whole thing faster too. :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
0d1e40728d668085257b78657b381e1f13d77d52 05-Mar-2005 Chris Lattner <sabre@nondot.org> remove all of the various setName implementations, consolidating them into
Value::setName, which is no longer virtual.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
8daf056c90c2590709090b0c27045e1a45803461 23-Feb-2005 Chris Lattner <sabre@nondot.org> new method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20288 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
905547b02bd45f0997521533bf3cf474647ac095 05-Feb-2005 Chris Lattner <sabre@nondot.org> Initialize new field.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
29d1ca6c424df225b9fd48473f0d6419fdd44bd7 01-Feb-2005 Chris Lattner <sabre@nondot.org> Updates for new use list changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19961 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
961ca77e5b813acaa773bed2c009057806d67ac4 16-Oct-2004 Misha Brukman <brukman+llvm@gmail.com> Add a space between the type and name of value when printing error message


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
551ccae044b0ff658fe629dd67edd5ffe75d10e8 02-Sep-2004 Reid Spencer <rspencer@reidspencer.com> Changes For Bug 352
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
89756ea10980cac3b8017afa41608957ad1bfc81 25-Jul-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Use name.empty() instead of testing against equality with the empty
string.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15191 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
83949fcf7c3e417a73f2bb3e6c78a74274407099 25-Jul-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Disallow creation of named values of type void.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15190 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
4ec2e4c57896fa6e301f5f5a02669287c3116393 18-Jul-2004 Reid Spencer <rspencer@reidspencer.com> bug 122:
- Correct isa<Constant> for GlobalValue subclass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14933 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
5c45e6db391bb2dfe361236403c4979f421c726c 07-Jul-2004 Chris Lattner <sabre@nondot.org> Fix regressions in these testcases:
Regression.Assembler.2002-01-24-BadSymbolTableAssert
Regression.Assembler.2002-01-24-ValueRefineAbsType

Found through the nightly tester :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
a9e7781b3b8e457946491529816feab73c66d774 06-Jul-2004 Chris Lattner <sabre@nondot.org> Find bugs sooner rather than later. In this case, don't allow the creation
of instructions that don't have a first-class or void type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
e2fac77ad355b732da347e51234f02579da62bb6 04-Jul-2004 Reid Spencer <rspencer@reidspencer.com> - #include <iostream> since its not in Value.h any more.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
62372c2ee7fdb67f69910af20378f8a6aff77ede 27-Jun-2004 Chris Lattner <sabre@nondot.org> User ctor is now inline


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
3d4bd5aa8de96e5ab9382db6a083eb86ddc54f89 26-Jun-2004 Chris Lattner <sabre@nondot.org> Instancevar was renamed


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14428 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
31f8499e83dc4dccbb57ea7e76d1fd49b7010d0c 21-Nov-2003 Chris Lattner <sabre@nondot.org> Finegrainify namespacification


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
d0fde30ce850b78371fd1386338350591f9ff494 11-Nov-2003 Brian Gaeke <gaeke@uiuc.edu> Put all LLVM code into the llvm namespace, as per bug 109.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
c4856f37f0c59386368e1fc5313a0ac88baedb7b 05-Nov-2003 Chris Lattner <sabre@nondot.org> If we're not checking, don't check!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9732 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
b576c94c15af9a440f69d9d03c2afead7971118c 20-Oct-2003 John Criswell <criswell@uiuc.edu> Added LLVM project notice to the top of every C++ source file.
Header files will be on the way.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
c3cc71abbcac9a5d172e64002e2262c8f1a41967 16-Oct-2003 Chris Lattner <sabre@nondot.org> Completely rewrite support for the Value::use_* list. Now, all operations on
this list (except use_size()) are constant time. Before the killUse method
(used whenever something stopped using a value) was linear time, and thus
very very slow for large programs.

This speeds GCCAS up _substantially_ on large programs: almost 2x for 176.gcc:

176.gcc: 77.07s -> 37.38s
177.mesa: 7.59s -> 5.57s
252.eon: 21.02s -> 19.52s (*)
253.perlbmk: 11.40s -> 13.05s
254.gap: 7.25s -> 7.42s

252.eon would speed up a whole lot more, but optimization time is being
dominated by the inlining pass, which needs to be fixed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
4e84e7720c333112da24bd4e9d4c7bfb4d446016 06-Oct-2003 Chris Lattner <sabre@nondot.org> Users can never be null


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8895 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
32002198432e8d701bca76e35a06bfbca94f0701 02-Oct-2003 Chris Lattner <sabre@nondot.org> There is no reason for Value to be an AbstractTypeUser. This just makes things
significantly more complete. Instead, just make DerivedType's AbstractTypeUser's,
and make Value contain a PATypeHolder.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8828 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
287d11191f8470add8deaad90e2c40a953a4c4f5 29-Aug-2003 Chris Lattner <sabre@nondot.org> Fix bug: Linker/2003-08-28-TypeResolvesGlobal3.ll
Use new replaceAllUsesWith stuff in a way that works even though types have not yet been propagated


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
2bc065b63a8377456ddbe149621b3daf15f052a4 29-Aug-2003 Chris Lattner <sabre@nondot.org> Refactor code to make it useful outside of Constants.cpp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
a89ab2c35548fb05c9b4df48c60539886568116d 25-Jun-2003 Chris Lattner <sabre@nondot.org> Make assertion more descriptive


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
0779388ff830e0636f3071e70546e33d3b645f54 13-Feb-2003 Chris Lattner <sabre@nondot.org> This speeds up processing LLVM a _lot_, 17% in the case of loading and destroying "vortex"


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5553 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
28eca8bb5692dced9f51a99c96078cbd67e230c6 10-Oct-2002 Chris Lattner <sabre@nondot.org> - Make Value::replaceAllUsesWith work with constants correctly. This fixes
bug FuncResolve/2002-08-19-ResolveGlobalVars.ll and gzip looks better.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
61d295aa291ae66eec95f60a12bacddbefb2f6a2 09-Oct-2002 Chris Lattner <sabre@nondot.org> - Remove Value::use_remove


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
d1c657e2c7d1e0afb66ffce14775a88b5d52c593 09-Oct-2002 Chris Lattner <sabre@nondot.org> Fix NASTY N^2 behavior that was causing the gzip benchmark to take forever to
assemble. Now we scan the use-list from the back when removing users instead
of from the front.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4086 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
d1e693f2a3883dacf213aa2b477540c57b53b714 08-Sep-2002 Chris Lattner <sabre@nondot.org> Enable "garbage detection" of LLVM objects. Now users should be obnoxious
warnings. If they accidentally leak LLVM Value's.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3620 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
fe8041ae397ebbcc311469aa39dfb79f8191b412 25-Jul-2002 Chris Lattner <sabre@nondot.org> *** empty log message ***


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3065 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
3e009942ed6d5b075377ea8eb34c2daa8d8c5f77 30-Jun-2002 Chris Lattner <sabre@nondot.org> *** empty log message ***


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
d05e22cb6f7b5dfbc50d95ddc0165674320c0e01 26-Jun-2002 Anand Shukla <ashukla@cs.uiuc.edu> changes for 64bit gcc


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
67e08db3b97e83637c596e3ef4866e64552762cc 28-Apr-2002 Chris Lattner <sabre@nondot.org> The contents of the SymTabValue class have been incorporated into the
Module and Function classes directly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
e7eaf17158a0c752b8826066996de71030818d67 12-Apr-2002 Chris Lattner <sabre@nondot.org> Fix pure virtual function called exception!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
1907aba9f4a2e4b9abb41657a37c3ea8be35248c 08-Apr-2002 Chris Lattner <sabre@nondot.org> Move include/llvm/ValueHolderImpl.h to lib/VMCore/ValueHolderImpl.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
25d15a7ff75f04a26c9643e849807895ab67babd 08-Apr-2002 Chris Lattner <sabre@nondot.org> Remove some gross code by using the Value::dump method to do debug dumps


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
6a6931e287dd4837b967dd42d45a8a11455f4fcd 04-Apr-2002 Chris Lattner <sabre@nondot.org> Make the release build work


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
150dcb9e2d290c95f40ba9616863b77ff8511df6 21-Mar-2002 Chris Lattner <sabre@nondot.org> Add an assertion to catch a misuse of replaceAllUsesWith


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
02d429d1dba1c990cdbda3dd69eba2a0f5cb8a4a 25-Jan-2002 Chris Lattner <sabre@nondot.org> Check in fix for bug: test/Regression/Assembler/ValueRefineAbsType.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1582 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
697954c15da58bd8b186dbafdedd8b06db770201 20-Jan-2002 Chris Lattner <sabre@nondot.org> Changes to build successfully with GCC 3.02


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1503 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
82d18aa0e42a4858c2cb7c15934cc3e567432490 13-Dec-2001 Chris Lattner <sabre@nondot.org> Add debugging to make a more useful message if a value gets constructed with a null type


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1443 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
e9bb2df410f7a22decad9a883f7139d5857c1520 03-Dec-2001 Chris Lattner <sabre@nondot.org> Rename ConstPoolVal -> Constant
Rename ConstPool* -> Constant*
Rename ConstPoolVals.h -> ConstantVals.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
5efec2890119801f870159a59b15b116df0d070b 28-Sep-2001 Chris Lattner <sabre@nondot.org> Make error report a little more useful


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@657 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
c04bf0724af43f0a8f9142632634dd3160a7a52f 19-Sep-2001 Chris Lattner <sabre@nondot.org> Okay, make the member function work.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@643 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
45f598806bc84c4cc5e9e12457610dffb13638d4 19-Sep-2001 Chris Lattner <sabre@nondot.org> Remove global debug output fns that have been superceded by a member func


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@642 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
bcbb6b3fac7259e8364b462c3fb6f4379e3508e5 18-Sep-2001 Chris Lattner <sabre@nondot.org> Fix up code a bit, remove operator<< to Assembly/Writer.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
bb6a8c08493199745aa3cf8c7ca5b468b3ec5a8e 18-Sep-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Added debugging support.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
46cbff625eb9593cf9ddac415c39311a54aa27fa 14-Sep-2001 Chris Lattner <sabre@nondot.org> Chris seems fond of #include <vector>. Fix these. Also convert use list in
Value to a vector instead of a list.

Move SchedGraph.h & SchedPriorities.h into lib/CodeGen/InstrScheduling


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
36bd82aa470ed0007cdb19abc556aacf8790823f 07-Sep-2001 Chris Lattner <sabre@nondot.org> Support abstract types
Remove constant pool support


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
a3d3c2b64545c00f70453642e5d84b028dfce671 14-Jul-2001 Chris Lattner <sabre@nondot.org> * ValueHolder now takes 3 arguments
* Added a few methods to ConstantPool
* ConstPoolVal no longer derives from Value
* Method & Module multiply inherit from SymTabValue & Value now
* Added a GetElementPtrInst::isStructSelector() method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
c8b25d40cbec063b1ca99cc1adf794399c6d05c0 07-Jul-2001 Chris Lattner <sabre@nondot.org> Changed the fundemental architecture of Operands for Instructions. Now
Operands are maintained as a vector<Use> in the User class, and operator
iterators are provided as before. Getting an operand no longer requires
a virtual function call.

WARNING: getOperand(x) where x >= getNumOperands() will now assert instead
of returning null!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
7b8ec2d752c07df070479ba235b8b1147d009f0f 29-Jun-2001 Chris Lattner <sabre@nondot.org> Add a check to avoid allowing V->replaceAllUsesWith(V)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
7fc9fe34390c66ca58646d09a87f7dbaacb6c1f8 28-Jun-2001 Chris Lattner <sabre@nondot.org> Miscellaneous cleanups:
* Convert post to pre-increment for for loops
* Use generic programming more
* Use new Value::cast* instructions
* Use new Module, Method, & BasicBlock forwarding methods
* Use new facilities in STLExtras.h
* Use new Instruction::isPHINode() method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
ee976f33713016a96e3fbb394b7d0c5465be25d7 11-Jun-2001 Chris Lattner <sabre@nondot.org> Updates to support
* Changes in PHI node structure


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp
009505452b713ed2e3a8e99c5545a6e721c65495 06-Jun-2001 Chris Lattner <sabre@nondot.org> Initial revision


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Value.cpp