Chris Lattner
cd6afe938b
add a helper method for code that wants to handle vector
...
constants by element without caring how they are formed.
llvm-svn: 53382
2008-07-10 00:28:34 +00:00
Evan Cheng
2005804de6
- Re-apply 52748 and friends with fix. GetConstantStringInfo() returns an empty string for ConstantAggregateZero case which surprises selectiondag.
...
- Correctly handle memcpy from constant string which is zero-initialized.
llvm-svn: 52891
2008-06-30 07:31:25 +00:00
Anton Korobeynikov
6f260767ec
Revert (52748 and friends):
...
Move GetConstantStringInfo to lib/Analysis. Remove
string output routine from Constant. Update all
callers. Change debug intrinsic api slightly to
accomodate move of routine, these now return values
instead of strings.
This unbreaks llvm-gcc bootstrap.
llvm-svn: 52884
2008-06-29 17:57:03 +00:00
Eric Christopher
4f05c48718
Move GetConstantStringInfo to lib/Analysis. Remove
...
string output routine from Constant. Update all
callers. Change debug intrinsic api slightly to
accomodate move of routine, these now return values
instead of strings.
llvm-svn: 52748
2008-06-26 00:31:12 +00:00
Bill Wendling
1866fa680f
Remove warnings about unused parameters and shadowed variables.
...
llvm-svn: 51266
2008-05-19 20:15:12 +00:00
Chris Lattner
e0b1ee937a
Don't attribute in file headers anymore. See llvmdev for the
...
discussion of this change. Boy are my fingers tired. ;-)
llvm-svn: 45411
2007-12-29 19:59:42 +00:00
Gordon Henriksen
8430f1ff9a
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
llvm-svn: 44760
2007-12-10 02:14:30 +00:00
Gordon Henriksen
a18a78e6e5
Devirtualizing Value destructor (PR889). Patch by Pawel Kunio!
...
llvm-svn: 44747
2007-12-09 22:46:10 +00:00
Chris Lattner
145fdc7e2a
add a Constant::getAllOnesValue helper function, which works on integers
...
AND vectors.
llvm-svn: 37586
2007-06-15 06:10:53 +00:00
Dan Gohman
2d4b1767ab
Rename Value::getValueType to getValueID, to avoid confusion with
...
other things named getValueType.
llvm-svn: 35964
2007-04-13 18:12:09 +00:00
Evan Cheng
7513c95267
Added ContainsRelocations() to check if a constant might only be resolvable at load time.
...
llvm-svn: 35014
2007-03-08 00:59:12 +00:00
Chris Lattner
5a58a65c10
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%.
llvm-svn: 34193
2007-02-12 05:18:08 +00:00
Bill Wendling
7f6a73eb5c
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.
llvm-svn: 32636
2006-12-17 05:15:13 +00:00
Chris Lattner
5b4ca99562
add a method to determine whether evaluation of a constant can trap.
...
llvm-svn: 31059
2006-10-20 00:27:06 +00:00
Chris Lattner
7e0e7c7bc9
remove dead method
...
llvm-svn: 30640
2006-09-28 00:37:43 +00:00
Reid Spencer
370c74131e
For PR778:
...
Move file-scoped documentation to class-scoped so it is more readily
accessible.
llvm-svn: 28689
2006-06-05 16:29:06 +00:00
Evan Cheng
57c206232d
Added a parameter to control whether Constant::getStringValue() would chop
...
off the result string at the first null terminator.
llvm-svn: 26704
2006-03-10 23:52:03 +00:00
Jim Laskey
a1ad999bba
Get rid of the multiple copies of getStringValue. Now a Constant:: method.
...
llvm-svn: 26616
2006-03-08 18:11:07 +00:00
Jeff Cohen
19d804b6d6
Fix VC++ level 4 warnings. Because a base class has declared these private, VC++ complains it cannot automatically generate this methods.
...
llvm-svn: 24751
2005-12-17 00:19:22 +00:00
Chris Lattner
6d5166d861
Remove some dead argument names which irritates GCC at certain warning levels.
...
llvm-svn: 23979
2005-10-25 17:59:28 +00:00
Chris Lattner
536a465ceb
Change the signature of replaceUsesOfWithOnConstant to take a Use* and not
...
take the bool. The bool is always true dynamically.
llvm-svn: 23625
2005-10-04 18:12:13 +00:00
Chris Lattner
92616caa1a
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.
llvm-svn: 23466
2005-09-27 06:08:32 +00:00
Misha Brukman
3f0aa3dbf8
Remove trailing whitespace
...
llvm-svn: 21408
2005-04-21 20:19:05 +00:00
Chris Lattner
b177010d51
remove all of the various setName implementations, consolidating them into
...
Value::setName, which is no longer virtual.
llvm-svn: 20464
2005-03-05 19:51:50 +00:00
Chris Lattner
93642ede7d
Remove the second argument to Value::setName, it is never needed.
...
llvm-svn: 20457
2005-03-05 18:59:36 +00:00
Chris Lattner
1567599aae
Adjust to user changes.
...
llvm-svn: 19886
2005-01-29 00:32:00 +00:00
Chris Lattner
783a12cad5
Add static functions to clear singleton maps. Patch contributed by
...
Morten Ofstad!
llvm-svn: 17994
2004-11-19 16:39:04 +00:00
Chris Lattner
56508557cf
UndefValue's are constants
...
llvm-svn: 17034
2004-10-16 18:05:10 +00:00
Chris Lattner
9b6089d893
Now that ConstantPointerRef is gone, it is the case that all operands of constants
...
are themselves constants. This should allow us to reduce a significant amount
of casting in the sourcebase.
llvm-svn: 15459
2004-08-04 02:43:00 +00:00
Misha Brukman
f1dcfcbb96
Tabs to spaces.
...
llvm-svn: 15010
2004-07-19 21:22:02 +00:00
Chris Lattner
64444580a8
eliminate isConstantExpr, changes to isa<Constant> implementation
...
llvm-svn: 14985
2004-07-19 00:58:02 +00:00
Reid Spencer
cb46bb8158
Extend constructor so that it can support GlobalValue's (with names).
...
Make GlobalValue a "classof" Constant
Fix the classof(Value*) to include GlobalValue's
llvm-svn: 14918
2004-07-17 23:26:12 +00:00
Chris Lattner
db6e86b1ed
remove *THANKFULLY* dead method
...
llvm-svn: 12213
2004-03-08 06:10:32 +00:00
Brian Gaeke
d25f86d683
Put all LLVM code into the llvm namespace, as per bug 109.
...
llvm-svn: 9903
2003-11-11 22:41:34 +00:00
John Criswell
16c6cda9d5
Added LLVM copyright header (for lack of a better term).
...
llvm-svn: 9304
2003-10-20 20:19:47 +00:00
Chris Lattner
4e4c763dfc
Standardize header file comments
...
llvm-svn: 8782
2003-09-30 18:37:50 +00:00
Chris Lattner
51f4550b50
Allow for "unsafe" replaceAllUsesWith operatations, for use during type resolution
...
llvm-svn: 8208
2003-08-29 05:36:05 +00:00
Chris Lattner
6c12776232
Remove a ton of extraneous #includes
...
llvm-svn: 6842
2003-06-22 03:08:05 +00:00
John Criswell
4781723de6
Included assert.h so that the code compiles under newer versions of GCC.
...
llvm-svn: 6682
2003-06-11 14:01:36 +00:00
Chris Lattner
5b41b28fb6
- Dramatically simplify the Constant::mutateReferences implementation,
...
allowing it to be called on all constant types (structures/arrays)
llvm-svn: 4160
2002-10-14 03:30:23 +00:00
Chris Lattner
0acdba0025
- Add new Constant::replaceUsesOfWithOnConstant which has an end result
...
similar to User::replaceUsesOfWith but actually does the right thing for
constants.
llvm-svn: 4102
2002-10-09 23:12:25 +00:00
Chris Lattner
69f833618d
Convert comments to Doxygen style
...
llvm-svn: 3507
2002-08-25 22:54:55 +00:00
Chris Lattner
8f4f2153e5
- ConstantPointerRefs are now automatically removed from the module table
...
when they are destroyed, which makes Constant::destroyConstant an actually
useful external interface. Expose these methods publicly.
- Implement destroyConstant on ConstPointerNull so that destroyConstant can
be used on any derived type constant safely.
llvm-svn: 3378
2002-08-18 00:39:59 +00:00
Vikram S. Adve
db83123c94
Add a couple of virtual functions to support subclass ConstantExpr.
...
Note that a ConstantExpr can be of any type, so classof() in most
other subclasses (that discriminate by type) have to check that it
is also not a ConstantExpr. This is why isConstantExpr() is needed.
llvm-svn: 2890
2002-07-14 22:46:32 +00:00
Chris Lattner
321a8cf4ba
Split ConstantVals.h into Constant.h and Constants.h
...
llvm-svn: 2378
2002-04-28 19:55:58 +00:00