Chris Lattner
29e3b2ba77
Add support for constant expr shifts
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9735 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-05 19:53:03 +00:00
Chris Lattner
653de272c2
Fix bug: instcombine/2003-10-23-InstcombineNullFail.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9403 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-23 05:21:48 +00:00
Chris Lattner
389dbfbd8b
Fix problem which effected linking apache
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9335 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-21 17:39:59 +00:00
John Criswell
b576c94c15
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
2003-10-20 19:43:21 +00:00
Chris Lattner
9eacf8aac8
Add a sanity check for constant expression casts
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8951 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-07 22:19:19 +00:00
Chris Lattner
ed468e37a1
Type tables are now AbstractTypeUsers. This allows them to merge together
...
constants as necessary due to type resolution. With this change, the
following spec benchmarks now link: 176.gcc, 177.mesa, 252.eon,
253.perlbmk, & 300.twolf. IOW, all SPEC INT and FP benchmarks now link.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8853 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-05 00:17:43 +00:00
Chris Lattner
70b06fc717
Minor random speedup: make Constant::getNullValue only call ConstantFOO::get
...
once!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8845 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-03 19:34:51 +00:00
Chris Lattner
9ad4dac582
These methods are dead, remove them. Because the bodies will soon be
...
ressurected, just ifdef them out for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8840 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-03 18:39:57 +00:00
Chris Lattner
3200219843
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
2003-10-02 19:44:40 +00:00
Chris Lattner
23f3a49aec
Implement "unsafe" replaceAllUsesWWith stuff for use during type resolution.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8209 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-29 05:36:46 +00:00
Chris Lattner
2bc065b63a
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
2003-08-29 05:09:37 +00:00
Misha Brukman
ef6a6a69ff
The word dependent' has no
a'.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8030 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-21 22:14:26 +00:00
Chris Lattner
8164d6535a
Fix linking bug in xboard
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7952 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-18 16:54:48 +00:00
Chris Lattner
61972242f3
Fix a bug that brian reported
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7428 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-30 19:04:37 +00:00
Chris Lattner
c07736a397
Simplify code by using ConstantInt::getRawValue instead of checking to see
...
whether the constant is signed or unsigned, then casting
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7252 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23 15:22:26 +00:00
Chris Lattner
037d258319
Fix bug: InstCombine/2003-06-22-ConstantExprCrash.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6857 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-22 20:48:30 +00:00
Chris Lattner
6b0b2db326
Fix bug: Linker/2003-06-02-TypeResolveProblem2.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6699 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-16 12:11:33 +00:00
Chris Lattner
b84388937c
* Make assertion message useful
...
* Kill dead conditional
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6544 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-02 17:42:47 +00:00
Chris Lattner
bf44ecccdb
Fix bug: Linker/2003-06-02-TypeResolveProblem.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6542 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-02 17:25:46 +00:00
Chris Lattner
9608c81d01
Fix problem with last checkin.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6328 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-25 16:15:32 +00:00
Chris Lattner
02ec5ede6c
Fix Bug: Linker/2003-04-26-NullPtrLinkProblem.ll
...
This was a problem with constants having their types resolved to some new type,
but there was already a constant of the new type created. Before, these types
were never merged together, now they are.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6314 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-23 20:03:32 +00:00
Chris Lattner
f31f583b15
Add support for shift constant expressions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6260 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-21 17:49:25 +00:00
Chris Lattner
608f4b0287
Fix bug: Assembler/2003-05-15-AssemblerProblem.llx
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6234 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-15 19:37:21 +00:00
Chris Lattner
3b9922f99c
Remove unnecessary casts
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6201 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-14 17:51:05 +00:00
Chris Lattner
9bc02a4deb
Eliminate using declarations
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6179 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-13 21:37:02 +00:00
Chris Lattner
d628f6a9a4
Don't build constantexprs that could be folded
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5801 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-17 19:24:48 +00:00
Chris Lattner
fb242b6edc
Change the interface to constant expressions to allow automatic folding
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5793 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-16 22:40:51 +00:00
Chris Lattner
1680312867
Fix ConstantUInt::isAllOnesValue
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5734 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 22:39:02 +00:00
Chris Lattner
27accf7692
Remove #include
...
Extend getNullValue to work with struct and array types
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5718 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-06 21:02:18 +00:00
Chris Lattner
34048e2ace
- Dramatically simplify the Constant::mutateReferences implementation,
...
allowing it to be called on all constant types (structures/arrays)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4160 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-14 03:30:23 +00:00
Chris Lattner
0b16ae209a
- Rename Instruction::First*Op to *OpsBegin, and Num*Ops to *OpsEnd to
...
reflect the fact that it's a range being defined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4147 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-13 19:39:16 +00:00
Chris Lattner
c251f9e0ae
- Add new Constant::replaceUsesOfWithOnConstant which has an end result
...
similar to User::replaceUsesOfWith but actually does the right thing for
constants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4102 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-09 23:12:25 +00:00
Chris Lattner
d43c7d2077
Fix bug: Assembler/2002-10-08-LargeArrayPerformance.ll by using
...
std::vector::reserve when possible
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4085 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-08 23:33:52 +00:00
Chris Lattner
fa3068813b
include/llvm/DataTypes.h includes this #define so we don't need it anymore
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3708 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-13 22:24:57 +00:00
Chris Lattner
562219de55
Give better assertion message for error conditions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3680 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-11 01:21:04 +00:00
Chris Lattner
0c4e886dbf
- Renamed Type::isIntegral() to Type::isInteger()
...
- Added new method Type::isIntegral() that is the same as isInteger, but
also accepts bool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3574 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-03 01:08:28 +00:00
Chris Lattner
93aeea3748
Add support for turning an array of characters into a string.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3509 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-26 17:53:56 +00:00
Chris Lattner
41661fdb2e
- 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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3379 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-18 00:40:04 +00:00
Chris Lattner
ad333484ea
Remove support for Not ConstantExpr. This simplifies the unary case to only
...
have to support the cast instruction, so the function is renamed to getCast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3328 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 18:24:09 +00:00
Chris Lattner
227b86c5fb
Return null on failure, instead of aborting.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3308 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 17:12:13 +00:00
Chris Lattner
9fb96412ae
- Rename ConstantGenericIntegral -> ConstantIntegral
...
- Add new methods to ConstantIntegral: getMaxValue, getMinValue,
getAllOnesValue
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3299 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-13 17:50:20 +00:00
Chris Lattner
994b9f337b
- Added a new superclass of ConstantBool/ConstantInt: ConstantGenericIntegral
...
- Moved InstCombine: isMaxValue, isMinValue, isAllOnesValue to Constants.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3293 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-12 21:21:21 +00:00
Chris Lattner
c188eeb08c
Cleanup ConstantExpr handling:
...
* Correctly delete TypeHandles in AsmParser. In addition to not leaking
memory, this prevents a bug that could have occurred when a type got
resolved that the constexpr was using
* Check for errors in the AsmParser instead of hitting assertion failures
deep in the code
* Simplify the interface to the ConstantExpr class, removing unneccesary
parameters to the ::get* methods.
* Rename the 'getelementptr' version of ConstantExpr::get to
ConstantExpr::getGetElementPtr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3161 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 18:54:25 +00:00
Chris Lattner
fe8041ae39
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3065 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-24 22:08:53 +00:00
Chris Lattner
6183b92b2c
* ConstExpr::getelementptr now takes a vector of Constants not Values
...
* Assert things instead of printing an error and returning null.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2949 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-18 00:14:50 +00:00
Anand Shukla
4d2da0d7a7
added std:: to cerr and endl
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2914 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-16 00:02:17 +00:00
Vikram S. Adve
d0b1bb01f2
Ensure ConstExpr constants are unique using a
...
map of <opcode, operands> to ConstExpr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2909 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-15 18:19:33 +00:00
Vikram S. Adve
345e0cfb86
Added subclass ConstantExpr to represent expressions consructed from
...
constants using operators such as cast, getelementptr, add, shl, etc.
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2901 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-14 23:13:17 +00:00
Chris Lattner
3e009942ed
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2813 91177308-0d34-0410-b5e6-96231b3b80d8
2002-06-30 16:25:25 +00:00
Anand Shukla
60a786e9e9
added include<iostream> for cerr
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2800 91177308-0d34-0410-b5e6-96231b3b80d8
2002-06-25 22:04:00 +00:00