Chris Lattner
42b5580b97
Add constant replacement for insertelement/vectorshuffle constant exprs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27532 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-08 05:09:48 +00:00
Chris Lattner
00f1023cf8
Add shufflevector support, todo, implement better constant folding.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27510 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-08 01:18:18 +00:00
Evan Cheng
2352ce9cb6
Doh!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26705 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-11 00:13:10 +00:00
Evan Cheng
0937103368
Added a parameter to control whether Constant::getStringValue() would chop
...
off the result string at the first null terminator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26704 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-10 23:52:03 +00:00
Jim Laskey
21b6c9d647
Get rid of the multiple copies of getStringValue. Now a Constant:: method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26616 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-08 18:11:07 +00:00
Robert Bocchino
c152f9cd26
VMCore support for the insertelement operation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25408 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-17 20:07:22 +00:00
Robert Bocchino
bb90a7aa7b
Added constant folding support for the extractelement operation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25187 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-10 20:03:46 +00:00
Robert Bocchino
b52ee7f5ff
Added support for the extractelement operation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25181 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-10 19:05:34 +00:00
Chris Lattner
2054295796
Fix an assertion to allow constant folding of packed values
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25071 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-04 01:01:04 +00:00
Reid Spencer
14f497452f
Revert previous patch. Additional tests fail.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24968 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-22 21:46:37 +00:00
Reid Spencer
84c744fe58
Fix PR409:
...
Implement the suggested check to ensure that out-of-range float constants
don't get accepted by LLVM accidentally. Adjust the supporting test cases
as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24963 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-22 21:07:29 +00:00
Chris Lattner
71abaab1d2
add a hack to work around broken VC++ scoping rules. Thx to JeffC for pointing
...
this out to me
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23655 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-07 05:23:36 +00:00
Chris Lattner
a1e3f54396
refactor a bit of code.
...
When moving constant entries in 'Map' if the entry is the representative
constant for the abstractypemap, make sure to update it as well. This
fixes the bcreader failures from last night on several C++ apps.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23628 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-04 21:35:50 +00:00
Chris Lattner
23ec01fcc3
Minor speedup to avoid array searches given a Use*. This speeds up bc reading
...
of the python test from 1:00 to 54s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23627 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-04 18:47:09 +00:00
Chris Lattner
d0ff1adbdb
Change the signature of replaceUsesOfWithOnConstant. The bool was always
...
true dynamically. Finally, pass the Use* that replaceAllUsesWith has into
the method for future use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23626 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-04 18:13:04 +00:00
Chris Lattner
a55b30a225
For large constants (e.g. arrays and structs with many elements) just
...
creating the keys and doing comparisons to index into 'Map' takes a lot
of time. For these large constants, keep an inverse map so that 'remove'
and move operations are much faster.
This speeds up a release build of the bc reader on Eric's nasty python
bytecode file from 1:39 to 1:00s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23624 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-04 17:48:46 +00:00
Chris Lattner
d7a3fc6819
minor cleanup/fastpath for the bcreader. This speeds up the bcreader
...
from 1:41 -> 1:39 on the large python .bc file in a release build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23623 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-04 16:52:46 +00:00
Chris Lattner
c182a88aec
implement the struct version of the array speedup, speeding up the
...
testcase a bit more from 1:48 -> 1.40.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23619 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-04 01:17:50 +00:00
Chris Lattner
cea141f1d1
Change ConstantArray::replaceUsesOfWithOnConstant to attempt to update
...
constant arrays in place instead of reallocating them and replaceAllUsesOf'ing
the result. This speeds up a release build of the bcreader from:
136.987u 120.866s 4:24.38
to
49.790u 49.890s 1:40.14
... a 2.6x speedup parsing a large python bc file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23614 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-03 22:51:37 +00:00
Chris Lattner
5cbade9f83
move some methods, no other changes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23613 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-03 21:58:36 +00:00
Chris Lattner
dfdd6c5d7a
minor microoptimizations
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23612 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-03 21:56:24 +00:00
Chris Lattner
df0ef1d0fe
Split SimpleConstantVal up into its components, so each Constant subclass getsa 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@23467 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-27 06:09:08 +00:00
Jim Laskey
3a1eff732b
Move code dependency for MathExtras.h out of Constants.h.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22840 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17 20:06:22 +00:00
Jim Laskey
cb6682fa44
Culling out use of unions for converting FP to bits and vice versa.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22838 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17 19:34:49 +00:00
Misha Brukman
fd93908ae8
Remove trailing whitespace
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21427 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-21 23:48:37 +00:00
Alkis Evlogimenos
1cecd3a1d2
Add new function getPtrPtrFromArrayPtr().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20684 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-19 11:40:31 +00:00
Reid Spencer
9dbf1e5bb8
Fix a typo in an assertion comment.
...
Patch contributed by Vladimir Merzliakov.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20529 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-09 15:19:41 +00:00
Chris Lattner
0d1e40728d
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
2005-03-05 19:51:50 +00:00
Chris Lattner
ffdb920ec2
Constants never get names.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20459 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-05 19:01:59 +00:00
Chris Lattner
e467147b30
Adjust to changes in User class. Aggregate constants now must explicitly
...
manage their operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19890 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-29 00:34:39 +00:00
Misha Brukman
1bae291cb9
Fix grammar
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19854 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-27 06:46:38 +00:00
Chris Lattner
f5ac6c27ac
Allow getZeroExtend and getSignExtend to work with boolean inputs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19210 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 15:59:57 +00:00
Chris Lattner
fcdd82e4a9
Change this method to return ulong, not uint, for 64-bit targets.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18906 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-13 19:48:51 +00:00
Reid Spencer
574cdb32a0
Revert the recent patches to "fix" ConstantFP::isValueValidForType. None
...
of them seem to work everywhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18598 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-07 07:38:08 +00:00
Reid Spencer
e2432596ac
Provide a missing header file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18597 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-07 07:08:08 +00:00
Reid Spencer
79457c791e
Fix some comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18596 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-07 07:06:47 +00:00
Alkis Evlogimenos
eb61d60e1b
Fix check for valid floats. Also use and HUGE_VALF instead
...
of std::numeric_limits, because they work in more platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18593 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-07 06:46:50 +00:00
Reid Spencer
b9ce8b3f1b
For PR409: \
...
Test the range of float constants to ensure we are not attempting to create a \
float constant using a double value that is out of range for a float
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18585 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-06 22:18:37 +00:00
Chris Lattner
8a7ad2d2c5
Add hooks to free all memory allocated by the singleton factories in these
...
files. Patch contributed by Morten Ofstad!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17995 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-19 16:39:44 +00:00
Alkis Evlogimenos
56a2468b68
Gep indices must be of int, uint, long or ulong type.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17313 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-28 06:43:38 +00:00
Alkis Evlogimenos
6edde961e2
Make this actually work.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17199 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-24 03:02:16 +00:00
Alkis Evlogimenos
60ab140298
Add ConstantExpr::getSizeOf(Type*).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17196 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-24 01:41:10 +00:00
Chris Lattner
b9f18592a6
Implement UndefValue class
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17040 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-16 18:07:16 +00:00
Chris Lattner
7fa6e666ec
Allow creation of GEP constantexprs with a vector of value* operands as
...
well as a vector of constant*'s. It turns out that this is more efficient
and all of the clients want to do that, so we should cater to them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16923 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-11 22:52:25 +00:00
Alkis Evlogimenos
e0de1d64be
When creating constant arrays check that the initializer vector is the
...
same size as the one in the array type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16354 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-15 02:32:15 +00:00
Alkis Evlogimenos
cad90ad162
Add assertion descriptiosn on type mismatches when creating
...
ConstantArray and ConstantPacked objects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16261 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-10 04:16:59 +00:00
Reid Spencer
551ccae044
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
2004-09-01 22:55:40 +00:00
Brian Gaeke
715c90ba52
Packed types, brought to you by Brad Jones
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15938 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-20 06:00:58 +00:00
Chris Lattner
91b362bba9
Check constant expression validity more strictly
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15883 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17 17:28:46 +00:00
Chris Lattner
d2da229ce3
Add a hack to work around a problem my changes exposed
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15509 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-04 22:26:13 +00:00