Reid Spencer
56427031f6
Fix a #include to resolve IntegerType class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33385 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 22:45:50 +00:00
Reid Spencer
bc0895a596
Add a #include to resolve IntegerType class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33384 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 22:45:05 +00:00
Evan Cheng
4be24ed9ce
Add test case extracted from lencod. Spiller was infinite looping in GetRegForReload().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33383 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 22:43:14 +00:00
Evan Cheng
3c82cab9aa
GetRegForReload() now keeps track which registers have been considered and rejected during its quest to find a suitable reload register. This avoids an infinite loop in case like this:
...
t1 := op t2, t3
t2 <- assigned r0 for use by the reload but ended up reuse r1
t3 <- assigned r1 for use by the reload but ended up reuse r0
t1 <- desires r1
sees r1 is taken by t2, tries t2's reload register r0
sees r0 is taken by t3, tries t3's reload register r1
sees r1 is taken by t2, tries t2's reload register r0 ...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33382 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 22:40:14 +00:00
Reid Spencer
a867cf0265
Unbreak Darwin.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33375 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 22:04:24 +00:00
Reid Spencer
02f20d3d9b
Help the lli interpreter find the stderr/stdin/stdout symbols. These are
...
needed for output to be generated. On Linux these are both global vars and
macro definitions so we have to special case Linux.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33374 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 21:41:04 +00:00
Reid Spencer
81e3954dc9
Handle each of stderr/stdin/stdout separately.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33373 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 21:30:39 +00:00
Reid Spencer
ab60be7a00
Remove dead methods in the ValTypes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33372 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 21:25:12 +00:00
Reid Spencer
55af2b59bb
For this transform: store V, (cast P) -> store (cast V), P
...
don't allow the transform if V and the pointer's element type are different
width integer types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33371 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 21:20:31 +00:00
Reid Spencer
c10305743c
For PR1043:
...
This is the final patch for this PR. It implements some minor cleanup
in the use of IntegerType, to wit:
1. Type::getIntegerTypeMask -> IntegerType::getBitMask
2. Type::Int*Ty changed to IntegerType* from Type*
3. ConstantInt::getType() returns IntegerType* now, not Type*
This also fixes PR1120.
Patch by Sheng Zhou.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33370 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 21:13:56 +00:00
Reid Spencer
011cf09ddd
Make this test actually test what its supposed to test.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33369 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 21:06:38 +00:00
Evan Cheng
34b12d24a0
Code clean up. Use def : pat instead of defining new instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33368 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 20:27:35 +00:00
Andrew Lenharth
a9ebd2b91f
fix build on amd64
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33367 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 20:17:59 +00:00
Evan Cheng
970a419633
isDarwin -> isTargetDarwin
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33366 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 19:28:01 +00:00
Evan Cheng
5be54b00bd
Restructure code a bit to make use of continue (simplifying things). Generalize
...
the .zerofill directive emission to not be darwin-specific.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33365 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 19:25:36 +00:00
Evan Cheng
e433ea9dce
Darwin doesn't support .bss, but it does have .zerofill
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33364 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 19:23:47 +00:00
Evan Cheng
1a3771e30e
Introduce TargetType's ELF and Darwin.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33363 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 19:22:40 +00:00
Evan Cheng
8e1185bd5c
Modify emission of jump tables on darwin to emit an extra "l" label that
...
delimits the boundaries of jump tables. This lets the linker's dead code
stripping optimization do a better job.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33362 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 18:59:56 +00:00
Evan Cheng
42d7ccfd8e
Remove this xform:
...
(shl (add x, c1), c2) -> (add (shl x, c2), c1<<c2)
Replace it with:
(add (shl (add x, c1), c2), ) -> (add (add (shl x, c2), c1<<c2), )
This fixes test/CodeGen/ARM/smul.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33361 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 17:51:44 +00:00
Reid Spencer
b6a7aa7e9d
Add the check for udis86 to support disassembly.
...
Regenerated for Anton Korobeynikov.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33360 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 17:41:47 +00:00
Lauro Ramos Venancio
471ffaffd8
Fix section definition.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33359 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 17:33:22 +00:00
Anton Korobeynikov
8cd4c3e653
Adding disassembler interface and external hook to udis86 library.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33358 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 17:25:17 +00:00
Reid Spencer
03c056a617
icmp doesn't support comparison of packed types.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33357 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 17:11:12 +00:00
Zhou Sheng
9160a841ac
Cover non-byte-width BATs situation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33356 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 14:30:59 +00:00
Zhou Sheng
4da6420a07
Cover more arithmetics for arbitrary bitwidth integers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33355 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 14:26:57 +00:00
Evan Cheng
02b985c50f
ARM test cases contributed by Apple.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33354 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 09:20:23 +00:00
Evan Cheng
a8e2989ece
ARM backend contribution from Apple.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33353 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 07:51:42 +00:00
Nick Lewycky
bd92d81d22
Needed to build on PPC Linux.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33352 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 04:36:02 +00:00
Zhou Sheng
96b366d4ca
Add one test case for Arbitrary BitWidth Integers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33348 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 01:35:08 +00:00
Reid Spencer
021830bb03
Back out last changes for dataLayout. Much more work is needed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33347 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 00:07:16 +00:00
Reid Spencer
4b70161b69
For PR761:
...
Implement reading and writing of the Module's data layout string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33346 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 23:24:24 +00:00
Evan Cheng
ae19abc2cc
- Target PIC style is no longer affected by relocation model.
...
- In x86-64 mode, symbols with external linkage (not just symbols which are
defined externally) requires GOT indirect reference.
- Stylistic code clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33345 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 22:27:12 +00:00
Chris Lattner
93d9eb8263
remove an execution test from llvm/test
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33344 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 22:24:04 +00:00
Chris Lattner
696ee0ab15
Fix InstCombine/2007-01-18-VectorInfLoop.ll, a case where instcombine
...
infinitely loops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33343 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 22:16:33 +00:00
Chris Lattner
e68266dc76
new testcase that causes instcombine to infinitely loop
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33342 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 22:16:03 +00:00
Reid Spencer
9fd6be776b
Update copyright for 2007.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33339 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 21:33:56 +00:00
John Criswell
a2f1262ff0
Welcome 2007.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33338 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 21:22:36 +00:00
Reid Spencer
7515396096
Clean up some code around the store V, (cast P) -> store (cast V), P
...
transform. Change some variable names so it is clear what is source and
what is dest of the cast. Also, add an assert to ensure that the integer
to integer case is asserting if the bitwidths are different. This prevents
illegal casts from being formed and catches bitwidth bugs sooner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33337 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 18:54:33 +00:00
Reid Spencer
b5f378e11b
Use a cheaper computation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33336 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 18:14:49 +00:00
Reid Spencer
8205972a5a
Fix a regression in the last patch. When constructing a BitMask, be careful
...
not to overflow 64-bits and end up with a 0 mask. This caused i64 values to
always be stored as 0 with lots of consequential damage to nightly test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33335 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 18:01:32 +00:00
Chris Lattner
afd7a08a76
move contents of PR587 to here.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33333 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 07:34:57 +00:00
Reid Spencer
7808dcba05
Provide an isPowerOf2ByteWidth method for the IntegerType class. This will
...
mostly be used by back ends that wish to distinguish between integer types
that fit evenly within a natural integer type and those that don't.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33328 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 02:59:54 +00:00
Bill Wendling
39e9c09763
The zerofill directive needs a newline after it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33327 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 02:30:19 +00:00
Reid Spencer
65367b26bf
Use the new maskToBitWidth function to ensure that the results of
...
computations do not overflow the intended bit width.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33326 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 02:12:51 +00:00
Reid Spencer
90935f608d
Add an inline helper function that masks a GenericValue to a specified
...
bit width.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33325 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 02:12:10 +00:00
Evan Cheng
071b9d5d7c
Minor code clean up.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33323 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 01:49:58 +00:00
Reid Spencer
547dcf2467
Make shl instruction mask its result to the correct bitsize. This is
...
sufficient to get llvm-test/SingleSource/UnitTests/Integer/general-test.ll
working with lli in interpreter mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33321 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 01:32:46 +00:00
Reid Spencer
23e28836ed
Two changes:
...
1. Fix logic for executeGEP. Only 32-bit and 64-bit integer types are
acceptable as indices.
2. Ensure that all integer cast operations truncate their result to the
integer size of the operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33318 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 01:25:42 +00:00
Reid Spencer
f89aec655f
Make sure we truncate stored values to their bit width.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33317 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 01:24:02 +00:00
Bill Wendling
c904a5b925
Have the OutputBuffer take the is64Bit and isLittleEndian booleans.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33316 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 01:23:11 +00:00