History log of /external/llvm/include/llvm/Value.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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/include/llvm/Value.h
f1d0f7781e766df878bec4e7977fa3204374f394 26-Mar-2012 Craig Topper <craig.topper@gmail.com> Prune some includes and forward declarations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153429 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
27dd9cf5d1ec831a1cd0766580e6d1177a9800a3 23-Jan-2012 Chris Lattner <sabre@nondot.org> start the implementation of a new ConstantDataVector and ConstantDataArray
classes, per PR1324. Not all of their helper functions are implemented,
nothing creates them, and the rest of the compiler doesn't handle them yet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
0271dadee48ccfcb98ed7a7c7849ad3dd0882a44 18-Jan-2012 Jakub Staszak <kubastaszak@gmail.com> Remove unneeded include.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148360 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
78eb93c5916f36e74e73c10e44f4e5b9ca6b769c 11-Aug-2011 Chad Rosier <mcrosier@apple.com> Typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
db04b81014cadc6ecdbaaa918a89a180511c6855 08-Mar-2011 Chris Lattner <sabre@nondot.org> fix incorrect comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
46985a14409486293b689ca07dd07d7482734795 02-Feb-2011 Dan Gohman <gohman@apple.com> Fix reassociate to clear optional flags, such as nsw.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.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/Value.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/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
61c70e98ac3c7504d31dd9bc81c4e9cb998e9984 28-Aug-2010 Chris Lattner <sabre@nondot.org> remove unions from LLVM IR. They are severely buggy and not
being actively maintained, improved, or extended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
e16829b401409b398c9de9847c1d12eb931f7d63 30-Jul-2010 Dan Gohman <gohman@apple.com> Move MaximumAlignment to be a member of the Value class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109891 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
5d414b44fc7720a040357ec43f111f8ac53a59f4 28-Jul-2010 Dan Gohman <gohman@apple.com> Move MaximumAlignment to Value.h, now that GlobalValue.h needs it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
1ad25b605c9a0384998a63d72042a7a3caf83912 15-Jul-2010 Chris Lattner <sabre@nondot.org> add an accessor.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108408 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
44781a0a79e0d3b9f32c2fed4bf0971ff082e525 21-Jun-2010 Chris Lattner <sabre@nondot.org> make the Value constructor protected.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
6ed9d40aa113bba1101a9f74c661d0d11e229f50 29-May-2010 Nick Lewycky <nicholas@mxc.ca> Fix typo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105096 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
0179e977234fef45b1877eb93a3c7565cdd1862d 30-Mar-2010 Douglas Gregor <dgregor@apple.com> Switch isa_impl from a function template to a class template with a
static inline member function doit(). This enables the use of partial
specialization to override the last stage of the "isa" check.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
fdfeb6976f07ad10d809b922ed7376ba2a3539be 12-Feb-2010 Chris Lattner <sabre@nondot.org> Add support for a union type in LLVM IR. Patch by Talin!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
183912af7947e7c48da64d94b6fe78ebb09cc7ec 31-Dec-2009 Chris Lattner <sabre@nondot.org> Remove #include of metadata.h from intrinsicinst.h. The only
method that needs it (DbgValueInst::getValue) has been moved out
of line.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
081134741b40b342fb2f85722c9cea5d412489a8 29-Dec-2009 Chris Lattner <sabre@nondot.org> Final step in the metadata API restructuring: move the
getMDKindID/getMDKindNames methods to LLVMContext (and add
convenience methods to Module), eliminating MetadataContext.
Move the state that it maintains out to LLVMContext.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92259 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
5a96f93573439be771ce9609fa2a5754c94485b6 29-Dec-2009 Chris Lattner <sabre@nondot.org> sink twine.h down out of Value.h. It is annoying that you need
to #include Twine.h just to give a twine a default value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92247 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
cafe9bba32aeed16e8e3db28b4cd4ff13160438f 29-Dec-2009 Chris Lattner <sabre@nondot.org> add a layer of accessors around the Value::SubClassData member, and use
a convention (shadowing the setter with private forwarding function) to
prevent subclasses from accidentally using it.

This exposed some bogosity in ConstantExprs, which was propaging the
opcode of the constant expr into the NUW/NSW/Exact field in the
getWithOperands/getWithOperandReplaced methods.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92239 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
ce8447ccfeb8e90fc37f2eeb504d391a59c44a66 13-Nov-2009 Dan Gohman <gohman@apple.com> Move the FixedStackPseudoSourceValueVal enum value before InstructionVal
so that isa<Instructon> doesn't return true for FixedStackPseudoSourceValue
values. This fixes a variety of problems, including crashes with -debug
and -print-machineinstrs. Also, add a comment to warn about this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
efae4d379db51345aa949ba27a4a834681df9c30 12-Nov-2009 Daniel Dunbar <daniel@zuster.org> Remove my Value.h build fix.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87029 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
d7a18e420e1a95c06f551ded98531eb3ae97eaa9 12-Nov-2009 David Greene <greened@obbligato.org> Fix a build error by providing a missing enum value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87028 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
db99095cfe2690509a27820aa384bc528426e471 12-Nov-2009 Daniel Dunbar <daniel@zuster.org> Attempt to unbreak LLVM build, David G. please check.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
2ee11eccdde14c95c78773be76b02bb5fd09d7ee 28-Oct-2009 Chris Lattner <sabre@nondot.org> IR support for the new BlockAddress constant kind. This is
untested and there is no way to use it, next up: doing battle
with asmparser.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
9d89df169027035bf692b3d397bb93cff7bdc860 22-Oct-2009 Devang Patel <dpatel@apple.com> Hide MetadataContext implementation details.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
e30e678865b8dc1b69ef1c26e7567ffd1300553c 28-Sep-2009 Devang Patel <dpatel@apple.com> s/class Metadata/class MetadataContext/g


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
6c6c016b1b9711bc8968b51746d4b867e17905f4 23-Sep-2009 Devang Patel <dpatel@apple.com> Do not leave behind metadata while cloning an instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
cd26ec5f3c089b3b24f80ff200e94e681eb9e1ee 23-Sep-2009 Dan Gohman <gohman@apple.com> Give MachineMemOperand an operator<<, factoring out code from
two different places for printing MachineMemOperands.

Drop the virtual from Value::dump and instead give Value a
protected virtual hook that can be overridden by subclasses
to implement custom printing. This lets printing be more
consistent, and simplifies printing of PseudoSourceValue
values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82599 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
e3394d4a49db24aa802432e04d1054d83a052ff1 15-Sep-2009 Dan Gohman <gohman@apple.com> When a constant's type is refined, update the constant in place
instead of cloning and RAUWing it.

- Make AbstractTypeUser a friend of Value so that it can offer
its subclasses a way to update a Value's type in place. This
is better than a universally visible setType method on Value,
and it's sufficient for the immediate need.

- Eliminate the constant "convert" functions. This eliminates a
lot of logic duplication, and fixes a complicated bug where a
constant can't actually be cloned during the type refinement
process because some of the types that its folder needs are
half-destroyed, being in the middle of refinement themselves.

- Move the getValType functions from being static overloaded
functions in Constants.cpp to be members of class template
specializations in ConstantsContext.h. This means that the
code ends up getting instantiated twice, however it also
makes it possible to eliminate all "convert" functions, so
it's not a big net code size increase. And if desired, the
duplicate instantiations could be eliminated with some
reorganization.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
f8dbee7cea072eb63ae343759975109553697bcb 08-Sep-2009 Dan Gohman <gohman@apple.com> Reappy r80998, now that the GlobalOpt bug that it exposed on MiniSAT is fixed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81172 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
92a97a9166e359e195d949e63d7e24a4a33284cf 06-Sep-2009 Daniel Dunbar <daniel@zuster.org> Revert "Include optional subclass flags, such as inbounds, nsw, etc., ...", this
breaks MiniSAT on x86_64.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
859fff476dfe8d83abdf4621b1d20062c0daa85c 04-Sep-2009 Dan Gohman <gohman@apple.com> Include optional subclass flags, such as inbounds, nsw, etc., in the
Constant uniquing tables. This allows distinct ConstantExpr objects
with the same operation and different flags.

Even though a ConstantExpr "a + b" is either always overflowing or
never overflowing (due to being a ConstantExpr), it's still necessary
to be able to represent it both with and without overflow flags at
the same time within the IR, because the safety of the flag may
depend on the context of the use. If the constant really does overflow,
it wouldn't ever be safe to use with the flag set, however the use
may be in code that is never actually executed.

This also makes it possible to merge all the flags tests into a single test.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80998 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
58cfa3b13752579c86cf85270d49f9ced0942f2f 26-Aug-2009 Dan Gohman <gohman@apple.com> Rename Instruction::isIdenticalTo to Instruction::isIdenticalToWhenDefined,
and introduce a new Instruction::isIdenticalTo which tests for full
identity, including the SubclassOptionalData flags. Also, fix the
Instruction::clone implementations to preserve the SubclassOptionalData
flags. Finally, teach several optimizations how to handle
SubclassOptionalData correctly, given these changes.

This fixes the counterintuitive behavior of isIdenticalTo not comparing
the full value, and clone not returning an identical clone, as well as
some subtle bugs that could be caused by these.

Thanks to Nick Lewycky for reporting this, and for an initial patch!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80038 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
bdff548e4dd577a72094d57b282de4e765643b96 23-Aug-2009 Chris Lattner <sabre@nondot.org> eliminate the "Value" printing methods that print to a std::ostream.
This required converting a bunch of stuff off DOUT and other cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79819 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
12ddd409535b52a7fa5157ded9a4cedd161fedb6 11-Aug-2009 Benjamin Kramer <benny.kra@googlemail.com> Make LLVMContext and LLVMContextImpl classes instead of structs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78690 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
48b2f3e4850cd27d54224cd42da8a160d6b95984 05-Aug-2009 Owen Anderson <resistor@mac.com> Factor some of the constants+context related code out into a separate header, to make LLVMContextImpl.h
not hideous. Also, fix some MSVC compile errors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
f457d1316dec017cf204b54524878310c356bf64 29-Jul-2009 Devang Patel <dpatel@apple.com> Add NamedMDNode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
dd04246fa2065e9f489ddbb1dcd5e52d251678a3 29-Jul-2009 Devang Patel <dpatel@apple.com> Clarify getName() comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77383 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
3d2a56d38758943ee8070cacfd9e29754bdb59b3 28-Jul-2009 Daniel Dunbar <daniel@zuster.org> Add a comment on Value explaining the current getName() behavior.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77269 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
460f656475738d1a95a6be95346908ce1597df25 26-Jul-2009 Daniel Dunbar <daniel@zuster.org> Remove Value::getName{Start,End}, the last of the old Name APIs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
f0443c1eb44d737d9bd78962932fc80f74c6113c 26-Jul-2009 Daniel Dunbar <daniel@zuster.org> Remove Value::getNameLen


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
c993250dd2a4e4f6629179613b6b0757108319e7 26-Jul-2009 Daniel Dunbar <daniel@zuster.org> Some clients rely on getName{Start,End} not returning 0, even if the length is
0.
- I could have swore the prev change went through a make check cycle...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77106 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
104cf9e02b0ed94d4173869a598af6c6972a8660 23-Jul-2009 Devang Patel <dpatel@apple.com> Derive MDNode from MetadataBase instead of Constant. Emit MDNodes into METADATA_BLOCK in bitcode file.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
47128fe2969b90880c5ffdbeb8c699a06bbaa9f9 17-Jul-2009 Dan Gohman <gohman@apple.com> Add a method to clear optional optimization information from a Value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76215 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
21cc4460efa104e8591b05a90f20130291614344 04-Apr-2009 Nick Lewycky <nicholas@mxc.ca> Add support for embedded metadata to LLVM. This introduces two new types of
Constant, MDString and MDNode which can only be used by globals with a name
that starts with "llvm." or as arguments to a function with the same naming
restriction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
25f0ee5191f8460099cfa9897f7a1750b79bfa98 03-Apr-2009 Chris Lattner <sabre@nondot.org> correct patch


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
d72513417d146b667685527bd3f24335d7a4bce9 03-Apr-2009 Chris Lattner <sabre@nondot.org> add patch to go along with r68350


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.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/Value.h
c4ef55119285fa2f966ee6578a58371c3c368774 31-Mar-2009 Chris Lattner <sabre@nondot.org> shrink subclassid, liberating some bits for future (ab)use.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
aab3d88bc481fdc3081d2280dab4f7efd7e74a61 29-Mar-2009 Chris Lattner <sabre@nondot.org> Value* only has 2 bits free as well.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
0fed8bf91f3c73fcaa598bfdb26365a1c200e748 28-Oct-2008 Chris Lattner <sabre@nondot.org> fit in 80 cols


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
c9f7ef7e7a95ff95a779a057297e0973d21aca02 13-Oct-2008 Gabor Greif <ggreif@gmail.com> remove a deprecated internal interface

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
bfe2f407db4cfb27f7e0cebbffcd3db8d53f864c 13-Sep-2008 Gabor Greif <ggreif@gmail.com> minor correction

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56190 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
42387462303a8eb917569305d5390c8da64ac82f 24-Aug-2008 Chris Lattner <sabre@nondot.org> we should use 'class' for non-pod types instead of 'struct' to
make it easier to deal with the VC++ struct/class bug.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55290 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
a3f343f4cd453b33214ba892bfeb58706fcf8cea 24-Aug-2008 Cedric Venet <cedric.venet@laposte.net> Updating VC++ project.
Adding one include file and correct one declaration from class to struct in order to make llvm compile on VC2005.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
944fac71e082cc2664cc71b4d3f6c72bab7143fb 24-Aug-2008 Chris Lattner <sabre@nondot.org> Switch the asmprinter (.ll) and all the stuff it requires over to
use raw_ostream instead of std::ostream. Among other goodness,
this speeds up llvm-dis of kc++ with a release build from 0.85s
to 0.49s (88% faster).

Other interesting changes:
1) This makes Value::print be non-virtual.
2) AP[S]Int and ConstantRange can no longer print to ostream directly,
use raw_ostream instead.
3) This fixes a bug in raw_os_ostream where it didn't flush itself
when destroyed.
4) This adds a new SDNode::print method, instead of only allowing "dump".


A lot of APIs have both std::ostream and raw_ostream versions, it would
be useful to go through and systematically anihilate the std::ostream
versions.

This passes dejagnu, but there may be minor fallout, plz let me know if
so and I'll fix it.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
d0ebbff8a322b3322d5dbecf86d402f0835b76ce 27-Jun-2008 Chris Lattner <sabre@nondot.org> add a helper.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52835 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
0ad4d9be0310b79e47561abeef39daf322d06760 16-Jun-2008 Chris Lattner <sabre@nondot.org> add a const version of stripPointerCasts


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52305 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
0039adb5148f3a2c878c84f09268a58d0478e2ad 11-Jun-2008 Gabor Greif <ggreif@gmail.com> remove bogus comment

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52216 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
1baa88e3de8947b02d9ef4caa73e5860f048ec6e 29-May-2008 Dan Gohman <gohman@apple.com> Prune and tidy #includes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
13d57320bd212483463d4f8992d5787b29eda5df 19-May-2008 Bill Wendling <isanbard@gmail.com> Remove warnings about unused parameters and shadowed variables.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51266 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
efe65369a74871c3140a540a6c95ce5d1f080954 10-May-2008 Gabor Greif <ggreif@gmail.com> merge of use-diet branch to trunk

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
59dc98de2f79c027eb6860443daee260710b1405 14-Mar-2008 Gabor Greif <ggreif@gmail.com> move the Use destructor where it belongs to

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48376 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
4e35595368f9b62ffe0ef9aee57dd003a884a3f2 07-Mar-2008 Dan Gohman <gohman@apple.com> There is no killUse.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48034 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
69de1932b350d7cdfc0ed1f4198d6f78c7822a02 06-Feb-2008 Dan Gohman <gohman@apple.com> Re-apply the memory operand changes, with a fix for the static
initializer problem, a minor tweak to the way the
DAGISelEmitter finds load/store nodes, and a renaming of the
new PseudoSourceValue objects.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46827 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
334dc1f58d617dcff969a2e107febaae42bbc883 31-Jan-2008 Evan Cheng <evan.cheng@apple.com> Revert 46556 and 46585. Dan please fix the PseudoSourceValue problem and re-commit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
f38dc192dd378903048efbadb95b75cf41abfb63 30-Jan-2008 Dan Gohman <gohman@apple.com> Add a new PseudoSourceValue class, which will be used to help track
memory reference information in the backend. Most of this was written by
Florian Brander, cleanup and updating to TOT by me.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
7ed47a13356daed2a34cd2209a31f92552e3bdd8 29-Dec-2007 Chris Lattner <sabre@nondot.org> Don't attribute in file headers anymore. See llvmdev for the
discussion of this change. Boy are my fingers tired. ;-)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
8b0a8c84da2030ee8f4440d5b60a8033de691222 25-Apr-2007 Anton Korobeynikov <asl@math.spbu.ru> Implement aliases. This fixes PR1017 and it's dependent bugs. CFE part
will follow.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36435 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
a1a702cdd23221e6e3f36632be91150138958e9d 13-Apr-2007 Dan Gohman <gohman@apple.com> Rename Value::getValueType to getValueID, to avoid confusion with
other things named getValueType.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35964 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
53201869cdb92cfe298126ea9e6f5b763038d494 06-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Document the use of getValueType() more accurately, specifically explain
that the instruction opcode is added to the InstructionVal value and the
consequences of that.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34937 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
ac9dcb94dde5f166ee29372385c0e3b695227ab4 15-Feb-2007 Reid Spencer <rspencer@reidspencer.com> For PR1195:
Change use of "packed" term to "vector" in comments, strings, variable
names, etc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
9d6565a5b1fbc4286d6ee638d8f47a3171a9ed7e 15-Feb-2007 Reid Spencer <rspencer@reidspencer.com> For PR1195:
Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and
PackedTyID -> VectorTyID. No functional changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
6b6b6ef1677fa71b1072c2911b4c1f9524a558c9 11-Jan-2007 Zhou Sheng <zhousheng00@gmail.com> For PR1043:
Merge ConstantIntegral and ConstantBool into ConstantInt.
Remove ConstantIntegral and ConstantBool from LLVM.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
70d8d121eaa3a3982022f7146113416f9b3f26c1 04-Jan-2007 Chris Lattner <sabre@nondot.org> Now that setcondinst has been eliminated, we can mark Value::SubclassID
const and remove the ugly mutator methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
5c7e326585f3a543388ba871c3425f7664cd9143 17-Dec-2006 Bill Wendling <isanbard@gmail.com> Added an automatic cast to "std::ostream*" etc. from OStream. We then can
rework the hacks that had us passing OStream in. We pass in std::ostream*
instead, check for null, and then dispatch to the correct print() method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
e81561909d128c6e2d8033cb5465a49b2596b26a 07-Dec-2006 Bill Wendling <isanbard@gmail.com> Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are
now cerr, cout, and NullStream resp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
b5ebf15b2b2ce8989caf1a1114b05d80b0f9bd48 28-Nov-2006 Bill Wendling <isanbard@gmail.com> Added a temporary hack to get the llvm-streams to work for future checkins.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
b83eb6447ba155342598f0fabe1f08f5baa9164a 20-Oct-2006 Reid Spencer <rspencer@reidspencer.com> For PR950:
This patch implements the first increment for the Signless Types feature.
All changes pertain to removing the ConstantSInt and ConstantUInt classes
in favor of just using ConstantInt.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31063 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
bddcb9427cb36ac6609fef233eaac3c9b5e5a8f4 05-Jun-2006 Reid Spencer <rspencer@reidspencer.com> For PR778:
Move file-scoped documentation to class-scoped so it is more readily
accessible.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28689 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
6dbca0b6bcf1a53ad30850448e662b5c77985a62 26-Jan-2006 Chris Lattner <sabre@nondot.org> Allow use of isa<InlineAsm>(X) without #including InlineAsm.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
cc041ba03aed685400197fb938b7a583713d25af 24-Jan-2006 Chris Lattner <sabre@nondot.org> Initial checkin of the InlineAsm class


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
78df7f141c63e563f82de44ecdcb6bcfe3e633ad 10-Jan-2006 Reid Spencer <rspencer@reidspencer.com> Make ValueSymbolTable (temporarily) a friend of Value so it can mod the
Name of Value instances.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25174 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
e15ccf464cfa78423e34264c2047cb44d6974b65 17-Dec-2005 Jeff Cohen <jeffc@jolt-lang.org> Fix VC++ level 4 warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24750 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
b995c5e1185840ee8574f827d7c7cb0db8dc4242 08-Oct-2005 Chris Lattner <sabre@nondot.org> remove a comma to compile with pedantic gcc


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23667 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
225e8dd2f512e3e6840ba7cb1570fdc4d56a853f 27-Sep-2005 Chris Lattner <sabre@nondot.org> Split SimpleConstantVal up into its components, so each Constant subclass gets
a different enum value. This allows 'classof' for these to be really simple,
not needing to call getType() anymore.

This speeds up isa/dyncast/etc for constants, and also makes them smaller.
For example, the text section of a release build of InstCombine.cpp shrinks
from 230037 bytes to 216363 bytes, a 6% reduction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
f7cc47cdfe53350b8fc99551732b5656ef9b0f0a 17-Aug-2005 Chris Lattner <sabre@nondot.org> remove a dead enum value, making a comment above correct again


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
9769ab22265b313171d201b5928688524a01bd87 21-Apr-2005 Misha Brukman <brukman+llvm@gmail.com> Remove trailing whitespace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21408 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
9110286da14fc9dab998605c590e2ce5ac43308c 16-Mar-2005 Misha Brukman <brukman+llvm@gmail.com> Convert tabs to spaces


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
eaadf5827692ae713faa6b38175559568c3dba26 06-Mar-2005 Chris Lattner <sabre@nondot.org> Add a new method, allow symtab to poke name.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20468 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
d0478744b3b5232694d0f887b3210078de5266c4 05-Mar-2005 Chris Lattner <sabre@nondot.org> Remove the second argument to Value::setName, it is never needed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20457 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
977a39570fcade4dfed60124f67eabc51efa76c6 23-Feb-2005 Chris Lattner <sabre@nondot.org> Add new method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20287 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
8f0d40392658fd1ccc057198bd5a6f1c85be5425 05-Feb-2005 Chris Lattner <sabre@nondot.org> SubclassID is really a small field. Split it into half and let subclasses
play with the unused part.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
a26619748932b146a09773d51465d7b7dcdb7dd2 01-Feb-2005 Chris Lattner <sabre@nondot.org> Switch from using an ilist for uses to using a custom doubly linked list.
This list does not provide the ability to go backwards in the list (its
more of an unordered collection, stored in the shape of a list).

This change means that use iterators are now only forward iterators, not
bidirectional.

This improves the memory usage of use lists from '5 + 4*#use' per value to
'1 + 4*#use'. While it would be better to reduce the multiplied factor,
I'm not smart enough to do so. This list also has slightly more efficient
operators for manipulating list nodes (a few less loads/stores), due to not
needing to be able to iterate backwards through the list.

This change reduces the memory footprint required to hold 176.gcc from
66.025M -> 57.687M, a 14% reduction. It also speeds up the compiler,
7.73% in the case of bytecode loading alone (release build loading 176.gcc).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
b8d5b1211f982d65546d855130d99c42780a76a0 29-Jan-2005 Chris Lattner <sabre@nondot.org> Adjust to User.h changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
4251ce4b10a35552df67ea624b180ad247960eef 13-Dec-2004 Reid Spencer <rspencer@reidspencer.com> Added a size_type typedef to LLVM containers to make Visual Studio shut up
(and possibly to make LLVM more x86 64bit friendly).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18891 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
1fca5ff62bb2ecb5bfc8974f4dbfc56e9d3ca721 27-Oct-2004 Chris Lattner <sabre@nondot.org> Convert 'struct' to 'class' in various places to adhere to the coding standards
and work better with VC++. Patch contributed by Morten Ofstad!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
7eb8a523320d05d9318c957c9840cfbde3cf5b6d 16-Oct-2004 Chris Lattner <sabre@nondot.org> Add new UndefValueVal type


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17038 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
530036b5e89e41787056120666bf0128ea8addd8 23-Sep-2004 Reid Spencer <rspencer@reidspencer.com> Change Value from a "struct" to a "class" so that VC 7.1 doesn't generate
missing symbols when its referenced as a class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
b6197611d54de7f0ba50b185aa4fe6eea9ceb8ff 04-Aug-2004 Chris Lattner <sabre@nondot.org> New methods


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15462 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
ff8c1b3dc6766d534878613f6db511edb33ba44f 30-Jul-2004 Chris Lattner <sabre@nondot.org> I demand the ability to say 'if (isa<Value>(V))'!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
66a434692b63ac76c99a0d259c7fedc0b75a1d6a 19-Jul-2004 Chris Lattner <sabre@nondot.org> Add new enum entries for ConstantAggregateZeroVal/ConstantExprVal and
rename ConstantVal to SimpleConstantVal


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
b0104d07ee56e1d44a58b80eef153d73ed610a7a 18-Jul-2004 Reid Spencer <rspencer@reidspencer.com> Add a missing space to align comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14955 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
1488b34be5f30c056513cdfd4576053af92b68a0 18-Jul-2004 Reid Spencer <rspencer@reidspencer.com> bug 122:
- Add ValueListTy to TypeTy so that the bcreader can have its own User
category that won't get factored into any optimizations or cleanup.
- Correct an isa_impl to correctly include GlobalValue now that it isa
Constant.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
80d94b88e1cdcffba477864f4d26ae80c2877ab7 15-Jul-2004 Chris Lattner <sabre@nondot.org> Final fix for PR341: eliminate operator<<(ostream, Value*). Clients should
now send references to ostreams instead of pointers. Sending pointers to
ostreams will print their addresses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14849 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
268f2583b90ee28b4685a5772558ad0c6d3d4c18 12-Jul-2004 Chris Lattner <sabre@nondot.org> Add a missing #include


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14773 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
ba466362c4b82a0a52bb5d877c439b759d86eee0 06-Jul-2004 Reid Spencer <rspencer@reidspencer.com> Remove definition and use of OtherVal enumerator. This just fixes a thinko.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
da8440a6aeba3705095ebd919eea08fb2c462e67 04-Jul-2004 Reid Spencer <rspencer@reidspencer.com> - Remove enumerator TypeVal since Values can't be types any more
- Remove isa_impl relationship between Types and Values
- Add OtherVal so "other" users can interact with Values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
7da38ec915010576685200089c75a2135bd3fa97 27-Jun-2004 Chris Lattner <sabre@nondot.org> Eliminate the Instruction::iType field, folding it into the Value::VTy field.
This reduces the size of the instruction class by 4 bytes, and means that
isa<CallInst>(V) (for example) only needs to do one load from memory instead
of two.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
f6b784410103cd0da2de5797463da5830f8ac6bc 26-Jun-2004 Chris Lattner <sabre@nondot.org> Rearrange some code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
85b0195f0e619d7151824a08f33e6754a451e7fc 08-Jun-2004 Chris Lattner <sabre@nondot.org> Apparently a particular vendor compiler uses the struct/class tag to MANGLE
symbols with. Therefore, if you do not use struct/class consistently, you can
get LINK ERRORS. grr.

This fixes the link errors for libsupport and vmcore.

-Chris


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14070 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
c230978a82adff3ab9d6ae0426a942e431ce9c5e 26-Feb-2004 Chris Lattner <sabre@nondot.org> Annotations are evil. This makes Value not derive from Annotable, which makes
all dynamically allocated LLVM values 4 bytes smaller, eliminate some vtables, and
make Value's destructor faster.

This makes Function derive from Annotation now because it is the only core LLVM
class that still has an annotation stuck onto it: MachineFunction.
MachineFunction is obviously horrible and gross (like most other annotations), but
will be the subject of refactorings later in the future. Besides many fewer
Function objects are dynamically allocated that instructions blocks, constants,
types, etc... :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
9a0817971a71442d24a6aec0c5c66110176bdf95 10-Jan-2004 Chris Lattner <sabre@nondot.org> Minor cleanup


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
6fbcc26f1460eaee4e0eb8b426fc1ff0c7af11be 20-Oct-2003 John Criswell <criswell@uiuc.edu> Added LLVM copyright header (for lack of a better term).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
202884fd9b575396f7ca220755cc4e3dac9b5a97 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@9159 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
14d9ce7892c7c0008c7cc38894ee3f71e4104d94 15-Oct-2003 Chris Lattner <sabre@nondot.org> Add new hasOneUse() method. Remove explicit inline qualifiers


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9132 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
0dde36c4c70e2c16be7802e978fb7dd34a7125cb 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. This will also be more efficient in the
future.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8827 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
48486893f46d2e12e926682a3ecb908716bc66c4 30-Sep-2003 Chris Lattner <sabre@nondot.org> Standardize header file comments


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8782 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
94949dad0c83a651bede5b0fce79bd70bb16899e 29-Aug-2003 Chris Lattner <sabre@nondot.org> Add new method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8204 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
893f025262574d01de5585d64860673e13d77ee5 18-Jun-2003 Chris Lattner <sabre@nondot.org> Detemplatize the PATypeHandle class, which was only really instantiated on 'Type'.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6774 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
cb09cc268b510e99d40b3518c5a390369ae3ffd5 14-Jan-2003 Chris Lattner <sabre@nondot.org> Move annotation to support library


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
806fd40074b3a27234884e7f8fc096432ce25e30 09-Oct-2002 Chris Lattner <sabre@nondot.org> - Detemplatize UseTy<> in Value.h, because it's only instantiated for one
type!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
4e5e2edf6a786c094446eaae57ff4b9174baaf37 09-Oct-2002 Chris Lattner <sabre@nondot.org> - Remove Value::use_push_back & Value::use_remove


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4089 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
fb8c89fbd30fad104fce1095ebb3391d5e5e3421 23-Sep-2002 Chris Lattner <sabre@nondot.org> Group #includes better


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3887 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
b163f1c3e551cb3e5abd9bead0eae7a753502540 10-Sep-2002 Chris Lattner <sabre@nondot.org> Eliminate setType method
Now the only way to set the type of a value is in the ctor for an object


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
26199059268a05739c84ebf465fcdbf7ded861df 26-Aug-2002 Chris Lattner <sabre@nondot.org> Convert comments to Doxygen style


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
e2c677fd9cf412e77783b1e4d7eee57508a3e6db 24-Jul-2002 Chris Lattner <sabre@nondot.org> Disable the operator= in Value
Disable the copy ctor and operator= in Annotation.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3048 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
0d1fa552005ebfcd19411ae18b8766b9240cfe1a 25-Jun-2002 Chris Lattner <sabre@nondot.org> We must with with GCC 2.95 :(


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2787 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
4a9f9337511441af0624e754ad9b2b1262ee584d 25-Jun-2002 Anand Shukla <ashukla@cs.uiuc.edu> changes to make it compatible with 64bit gcc


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2786 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
18961504fc2b299578dba817900a0696cf3ccc4d 25-Jun-2002 Chris Lattner <sabre@nondot.org> *** empty log message ***


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2777 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
356b79320b053b77562b47c076c753ab4c4d60d7 28-Apr-2002 Chris Lattner <sabre@nondot.org> Module's are no longer Value's.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2347 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
e06e9146eeb48e3ebf0f30bdaf7d86a6e03946ad 09-Apr-2002 Chris Lattner <sabre@nondot.org> Move FunctionArgument out of iOther.h into Argument.h and rename class to
be 'Argument' instead of FunctionArgument.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2217 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
42a695c2f2627a04b1fc8e2160d608c39f1dd6ac 08-Apr-2002 Chris Lattner <sabre@nondot.org> * Move casting stuff out to Support/Casting.h
* Add top level virtual print function, disallows instantiating Value's
directly.
* Provide operator<< for values here, instead of in Assembly/Writer.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2168 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
19b0411c95335018f0d1c6b6f029983fc2d79761 26-Mar-2002 Chris Lattner <sabre@nondot.org> Transform uses of Method into uses of Function.
Rename MethodArgument to FunctionArgument
Fix some _really_ out of date comments


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
e7506a366e8bd56c97d10beb68e4db953aebaeca 23-Mar-2002 Chris Lattner <sabre@nondot.org> Rename Method to Function


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
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/include/llvm/Value.h
00de509022f3a3c72c128ace4ecb04e9acb0c6fd 18-Oct-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Remove extra assert in dyn_cast_or_null.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@856 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
3ef77fcd5545f24773797ecfa0dfa24802c239e6 15-Oct-2001 Chris Lattner <sabre@nondot.org> Add cast_or_null & dyn_cast_or_null


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@824 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
2a72820b43b94a4da0d51c1533b22ded37fc5c86 15-Oct-2001 Chris Lattner <sabre@nondot.org> Improve error messages on assertion failure.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
46c6371141c050e1599ba86d9d84447be3b4c786 15-Oct-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Cast NULL when requested.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@803 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
004adcafec3caa84a29926b877309cc8fdf21f96 13-Oct-2001 Chris Lattner <sabre@nondot.org> Add use_back() methods


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
ef9c23f2812322ae5c5f3140bfbcf92629d7ff47 03-Oct-2001 Chris Lattner <sabre@nondot.org> * Both Method & GlobalVariable now subclass GlobalValue
* ConstPoolPointerReference now represents a pointer to a GlobalValue
* Methods name references are now explicit pointers to methods
* Rename Value::GlobalVal to Value::GlobalVariableVal to avoid confusion


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
b00c582b6d40e6b9ff2d1ed4f5eaf7930e792ace 02-Oct-2001 Chris Lattner <sabre@nondot.org> Commit more code over to new cast style


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
1d87bcf4909b06dcd86320722653341f08b8b396 01-Oct-2001 Chris Lattner <sabre@nondot.org> Convert more code to use new style casts
Eliminate old style casts from value.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
cfe26c930ae691ff3012736555846c45087e1a9e 01-Oct-2001 Chris Lattner <sabre@nondot.org> Add more support for new style casts
Convert more code to use them


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
9636a91649f168f41b477cba705287665e054f79 01-Oct-2001 Chris Lattner <sabre@nondot.org> Add support for new style casts


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@694 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
7295eb4ea3e3a81e697600cbca681674e4b35a20 01-Oct-2001 Chris Lattner <sabre@nondot.org> Add support for newer cleaner isa, cast, dyn_cast


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@693 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
27cd2caca5abf368ed56ee50804bcf09ef41b2b5 19-Sep-2001 Chris Lattner <sabre@nondot.org> Remove debugging output stuff


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
20f8d5d093400bc7f33f25facd0b99b1e2d8c8c9 18-Sep-2001 Chris Lattner <sabre@nondot.org> Remove operator << to Assembly/Writer.h


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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h
70cc3397f84c2e1fd69c059a0ef89e398e847b00 10-Sep-2001 Chris Lattner <sabre@nondot.org> Implement global variable support


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@530 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
9d3e9f93e567d6737551a7545370859fae2f8b94 07-Sep-2001 Chris Lattner <sabre@nondot.org> * Values are AbstactTypeUsers to support abstract types
* SetName now takes extra parameter to support naming types and constants without handles


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@428 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
cda67e50867c41c75e1d864e33044e08c1c7fea7 23-Aug-2001 Chris Lattner <sabre@nondot.org> Add annotation support to value


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
dc4c3f2f5fc6132885d590631b54de0be2c659be 14-Jul-2001 Chris Lattner <sabre@nondot.org> Made the following changes:
* ValueHolder became a 3 argument template. This allows for BasicBlock to
use the value holder arg as a typesafe parent pointer.
* SymTabValue no longer inherits from Value
* Method does not inherit from only SymTabValue. Now it inherits from both
STV & Value.
* Module does not inherit from only SymTabValue. Now it inherits from both
STV & Value.
* Updated the SymTabValue.h file to reference SymTabValue instead of STDef
in several places
* Added isArraySelector & isStructSelector to GetElementPtr instruction


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
e02cb164b186edacb700f4b67d8f9e713b63d8de 28-Jun-2001 Chris Lattner <sabre@nondot.org> Add a new slew of functions to allow dynamic_cast<> like operation for
upcasting Value's to their subclasses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
143da691f066e24a9e5272e1cabea4c446ee8cc1 11-Jun-2001 Chris Lattner <sabre@nondot.org> Updates to support
* Changes in PHI node structure
* Fix to Predecessor iterator


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
bbcfc51f3b2c483a8212205dbfae3b59400b306d 07-Jun-2001 Chris Lattner <sabre@nondot.org> Fixes for BB iterators, additional methods added for DCE pass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Value.h
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/include/llvm/Value.h