Evan Cheng [Wed, 28 Mar 2007 08:26:40 +0000 (08:26 +0000)]
Move rematerialization out of beta.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35419
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhou Sheng [Wed, 28 Mar 2007 05:15:57 +0000 (05:15 +0000)]
Use UnknownBIts[BitWidth-1] instead of UnknownBIts & SignBits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35418
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Wed, 28 Mar 2007 04:45:02 +0000 (04:45 +0000)]
Fix problem with llvm-config that prevented JIT from being used on x86_64
systems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35416
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 28 Mar 2007 03:23:22 +0000 (03:23 +0000)]
Delete the remanant of an obsolete comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35415
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhou Sheng [Wed, 28 Mar 2007 03:02:21 +0000 (03:02 +0000)]
Remove unused APInt variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35414
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 28 Mar 2007 02:46:29 +0000 (02:46 +0000)]
Undocument the implementation keyword
Docuemnt the checkpoint keyword
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35413
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 28 Mar 2007 02:38:26 +0000 (02:38 +0000)]
Remove use of implementation keyword.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35412
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 28 Mar 2007 02:37:40 +0000 (02:37 +0000)]
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35411
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 28 Mar 2007 02:36:42 +0000 (02:36 +0000)]
Replace the "implementation" keyword with "checkpoint". This more accurately
describes its function as check against unresolved types and definitions.
This is handy for forcing error messages in assembly test cases or otherwise
ensuring that everything is resolved at that point in the assembly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35410
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 28 Mar 2007 02:34:53 +0000 (02:34 +0000)]
The implementation keyword was replaced with checkpoint.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35409
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhou Sheng [Wed, 28 Mar 2007 02:19:03 +0000 (02:19 +0000)]
Clean up codes in ComputeMaskedBits():
1. Line out nested use of zext/trunc.
2. Make more use of getHighBitsSet/getLowBitsSet.
3. Use APInt[] != 0 instead of "(APInt & SignBit) != 0".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35408
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 28 Mar 2007 01:55:52 +0000 (01:55 +0000)]
Scale 1 is always ok.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35407
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 28 Mar 2007 01:53:55 +0000 (01:53 +0000)]
Remove isLegalAddressImmediate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35406
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 28 Mar 2007 01:53:20 +0000 (01:53 +0000)]
No need to generate the implementation keyword any more. Its frivolous.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35405
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 28 Mar 2007 01:52:40 +0000 (01:52 +0000)]
implementation keyword is going .. going .. gone.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35404
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 28 Mar 2007 01:49:39 +0000 (01:49 +0000)]
GEP index sinking fixes:
1) Take address scale into consideration. e.g. i32* -> scale 4.
2) Examine all the users of GEP.
3) Generalize to inter-block GEP's (no longer uses loopinfo).
4) Don't do xform if GEP has other variable index(es).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35403
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 28 Mar 2007 01:43:43 +0000 (01:43 +0000)]
don't use 'not' when we can use a positive test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35402
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 28 Mar 2007 01:43:35 +0000 (01:43 +0000)]
new test case for PR1280
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35401
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 28 Mar 2007 01:36:16 +0000 (01:36 +0000)]
For PR1280:
When converting an add/xor/and triplet into a trunc/sext, only do so if the
intermediate integer type is a bitwidth that the targets can handle.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35400
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 28 Mar 2007 01:35:28 +0000 (01:35 +0000)]
For PR1280:
Remove test cases for and/xor/add -> trunc/sext that use bit widths that
the targets cannot code gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35399
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 28 Mar 2007 01:32:57 +0000 (01:32 +0000)]
Added a test case for PR1279.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35398
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 28 Mar 2007 01:31:33 +0000 (01:31 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35397
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 28 Mar 2007 01:30:37 +0000 (01:30 +0000)]
Fix for PR1279. Dead def has a live interval of length 1. Copy coalescing should
not violate that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35396
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 28 Mar 2007 01:27:12 +0000 (01:27 +0000)]
upgrade a random test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35395
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 28 Mar 2007 01:02:54 +0000 (01:02 +0000)]
Remove cruft I put in there...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35394
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 28 Mar 2007 00:58:40 +0000 (00:58 +0000)]
Fix a problem building llvm-gcc on amd64-unknown-freebsd6.2, due to the
system assembler not groking legal instructions like "leal (,%esi,8), %ecx".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35393
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 28 Mar 2007 00:57:11 +0000 (00:57 +0000)]
Unbreak mmx arithmetic. It was barfing trying to do v8i8 arithmetic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35392
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 28 Mar 2007 00:03:10 +0000 (00:03 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35391
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Tue, 27 Mar 2007 23:19:39 +0000 (23:19 +0000)]
Fixing doxygen.cfg target. I'm not a makefile expert, so hopefully this correct.Tested doxygen generation on zion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35390
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 27 Mar 2007 21:20:36 +0000 (21:20 +0000)]
Add the "unpack low packed data" instructions. This should be the last of
the MMX instructions that are needed...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35389
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 27 Mar 2007 20:50:46 +0000 (20:50 +0000)]
Use SmallPtrSet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35388
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 27 Mar 2007 20:27:25 +0000 (20:27 +0000)]
Test that a VIEW_CONVERT_EXPR used as an lvalue has the right type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35387
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 27 Mar 2007 20:23:56 +0000 (20:23 +0000)]
Add better support for keywords.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35386
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 27 Mar 2007 20:22:40 +0000 (20:22 +0000)]
Fix so that pandn is emitted instead of an xor/and combo. Add integer
comparison operators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35385
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 27 Mar 2007 20:21:31 +0000 (20:21 +0000)]
Add support for integer comparison builtins.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35384
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 27 Mar 2007 16:44:48 +0000 (16:44 +0000)]
Unbreaks non-debug builds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35383
91177308-0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Tue, 27 Mar 2007 16:33:08 +0000 (16:33 +0000)]
"The C standards do say that "char" may either be a "signed char" or "unsigned
char" and it is up to the compilers implementation or the platform which is
followed."
http://www.arm.linux.org.uk/docs/faqs/signedchar.php
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35382
91177308-0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Tue, 27 Mar 2007 16:19:21 +0000 (16:19 +0000)]
bugfix: sometimes the spiller puts a load between the "mov lr, pc" and "bx" of a CALL_NOLINK.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35381
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 27 Mar 2007 12:05:48 +0000 (12:05 +0000)]
Remove dead code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35380
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 27 Mar 2007 11:29:11 +0000 (11:29 +0000)]
Split big monster into small helpers. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35379
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 27 Mar 2007 06:06:15 +0000 (06:06 +0000)]
For PR1276:
Allow doxygen documentation to be rebuilt manually with "make regendoc"
separately from "make install".
Patch by Scott Michel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35378
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 27 Mar 2007 02:49:31 +0000 (02:49 +0000)]
For PR601:
Add a little flesh to the document skeleton.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35377
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 27 Mar 2007 00:53:36 +0000 (00:53 +0000)]
SDISel does not preserve all, it changes CFG and other info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35376
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 27 Mar 2007 00:48:28 +0000 (00:48 +0000)]
Don't call getOperandConstraint() if operand index is greater than
TID->numOperands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35375
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 27 Mar 2007 00:16:08 +0000 (00:16 +0000)]
Spell check.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35374
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 26 Mar 2007 23:58:26 +0000 (23:58 +0000)]
Implement some minor review feedback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35373
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 26 Mar 2007 23:48:52 +0000 (23:48 +0000)]
Another test case for PR1271 where bad shift masks were generated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35372
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 26 Mar 2007 23:45:51 +0000 (23:45 +0000)]
For PR1271:
Fix another incorrectly converted shift mask.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35371
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 26 Mar 2007 23:19:29 +0000 (23:19 +0000)]
Reduce malloc/free traffic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35370
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 26 Mar 2007 23:18:28 +0000 (23:18 +0000)]
It is not possible to determie dominance between two PHI nodes
based on their ordering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35369
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 26 Mar 2007 23:17:19 +0000 (23:17 +0000)]
Use std::vector<DFCalculateWorkObject> instead of
std::vector<DFCalculateWorkObject *> to reduce malloc/free traffic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35368
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 26 Mar 2007 22:58:35 +0000 (22:58 +0000)]
Test case for PR1266.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35367
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 26 Mar 2007 22:41:48 +0000 (22:41 +0000)]
findRegisterUseOperand() changed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35366
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 26 Mar 2007 22:40:42 +0000 (22:40 +0000)]
Fix for PR1266. Don't mark a two address operand IsKill.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35365
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 26 Mar 2007 22:38:01 +0000 (22:38 +0000)]
For PR1277:
Implement error handling for bytecode parsing.
Patch by Scott Michel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35364
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 26 Mar 2007 22:37:45 +0000 (22:37 +0000)]
Change findRegisterUseOperand() to return operand index instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35363
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 26 Mar 2007 22:23:54 +0000 (22:23 +0000)]
Fix reversed logic in getRegsUsed. Rename RegStates to RegsAvailable to
hopefully forestall similar errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35362
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 26 Mar 2007 20:40:50 +0000 (20:40 +0000)]
eliminate use of std::set
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35361
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 26 Mar 2007 20:09:02 +0000 (20:09 +0000)]
Add a comment to explain a folding transform.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35360
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 26 Mar 2007 18:04:38 +0000 (18:04 +0000)]
Fix this test case to match output after a bug was fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35359
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 26 Mar 2007 17:44:01 +0000 (17:44 +0000)]
Get better debug output by having modified instructions print both the
original and new instruction. A slight performance hit with ostringstream
but it is only for debug.
Also, clean up an uninitialized variable warning noticed in a release build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35358
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 26 Mar 2007 17:18:58 +0000 (17:18 +0000)]
Get the number of bits to set in a mask correct for a shl/lshr transform.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35357
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 26 Mar 2007 10:59:13 +0000 (10:59 +0000)]
Fix testsuite hang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35355
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 26 Mar 2007 09:32:31 +0000 (09:32 +0000)]
For PR601:
Initial skeleton for pass documentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35354
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 26 Mar 2007 08:03:33 +0000 (08:03 +0000)]
Promote to v1i64 type...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35353
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 26 Mar 2007 07:55:58 +0000 (07:55 +0000)]
Updated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35352
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 26 Mar 2007 07:53:08 +0000 (07:53 +0000)]
Add support for the v1i64 type. This makes better code for this:
#include <mmintrin.h>
extern __m64 C;
void baz(__v2si *A, __v2si *B)
{
*A = C;
_mm_empty();
}
We get this:
_baz:
call "L1$pb"
"L1$pb":
popl %eax
movl L_C$non_lazy_ptr-"L1$pb"(%eax), %eax
movq (%eax), %mm0
movl 4(%esp), %eax
movq %mm0, (%eax)
emms
ret
GCC gives us this:
_baz:
pushl %ebx
call L3
"L00000000001$pb":
L3:
popl %ebx
subl $8, %esp
movl L_C$non_lazy_ptr-"L00000000001$pb"(%ebx), %eax
movl (%eax), %edx
movl 4(%eax), %ecx
movl 16(%esp), %eax
movl %edx, (%eax)
movl %ecx, 4(%eax)
emms
addl $8, %esp
popl %ebx
ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35351
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 26 Mar 2007 07:12:51 +0000 (07:12 +0000)]
SIGN_EXTEND_INREG requires one extra operand, a ValueType node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35350
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 26 Mar 2007 05:32:16 +0000 (05:32 +0000)]
Test case for PR1271 involving construction of a bad mask to replace a
shift instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35349
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 26 Mar 2007 05:25:00 +0000 (05:25 +0000)]
For PR1271:
Fix SingleSource/Regression/C/2003-05-21-UnionBitFields.c by changing a
getHighBitsSet call to getLowBitsSet call that was incorrectly converted
from the original lshr constant expression.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35348
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 26 Mar 2007 03:01:27 +0000 (03:01 +0000)]
Look through bitcast when finding IVs. (Chris' patch really.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35347
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 26 Mar 2007 01:45:35 +0000 (01:45 +0000)]
Start value symbol tables out small (space for 16 elts), not huge (space for 512).
This is particularly useful for the JIT, which lazily deserializes functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35346
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 25 Mar 2007 22:01:14 +0000 (22:01 +0000)]
Add "feature" testcase for new switch lowering code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35345
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 25 Mar 2007 21:58:42 +0000 (21:58 +0000)]
Compute getLowBitsSet correctly. Using the complement of a 64-bit value
and shifting down without regard for the bitwidth of the APInt can lead
to incorrect initialization values. Instead, check for the word size case
(to avoid undef results from shift) and then do (1 << loBitsSet) - 1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35344
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 25 Mar 2007 21:30:41 +0000 (21:30 +0000)]
Add a test case for PR1271 (necessary, but not sufficient).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35343
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 25 Mar 2007 21:11:44 +0000 (21:11 +0000)]
For PR1271:
Remove a use of getLowBitsSet that caused the mask used for replacement of
shl/lshr pairs with an AND instruction to be computed incorrectly. Its not
clear exactly why this is the case. This solves the disappearing shifts
problem, but it doesn't fix Regression/C/2003-05-21-UnionBitFields. It
seems there is more going on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35342
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Mar 2007 20:43:09 +0000 (20:43 +0000)]
implement Transforms/InstCombine/cast2.ll:test3 and PR1263
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35341
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Mar 2007 20:42:40 +0000 (20:42 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35340
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 25 Mar 2007 19:55:33 +0000 (19:55 +0000)]
Some cleanup from review:
* Don't assume shift amounts are <= 64 bits
* Avoid creating an extra APInt in SubOne and AddOne by using -- and ++
* Add another use of getLowBitsSet
* Convert a series of if statements to a switch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35339
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 25 Mar 2007 15:07:15 +0000 (15:07 +0000)]
First step of switch lowering refactoring: perform worklist-driven
strategy, emit JT's where possible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35338
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 25 Mar 2007 13:44:26 +0000 (13:44 +0000)]
Fix authorship
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35337
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Mar 2007 05:47:04 +0000 (05:47 +0000)]
fold constantexprs more aggressively, fixing PR1265
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35336
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 25 Mar 2007 05:33:51 +0000 (05:33 +0000)]
Refactor several ConstantExpr::getXXX calls with ConstantInt arguments
using the facilities of APInt. While this duplicates a tiny fraction of
the constant folding code, it also makes the code easier to read and
avoids large ConstantExpr overhead for simple, known computations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35335
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Mar 2007 05:10:46 +0000 (05:10 +0000)]
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35334
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhou Sheng [Sun, 25 Mar 2007 05:01:29 +0000 (05:01 +0000)]
1. Avoid unnecessary APInt construction if possible.
2. Use isStrictlyPositive() instead of isPositive() in two places where
they need APInt value > 0 not only >=0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35333
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Mar 2007 05:00:54 +0000 (05:00 +0000)]
Implement support for vector operands to inline asm, implementing
CodeGen/X86/2007-03-24-InlineAsmVectorOp.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35332
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Mar 2007 05:00:23 +0000 (05:00 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35331
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Mar 2007 04:46:28 +0000 (04:46 +0000)]
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35330
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Mar 2007 04:44:03 +0000 (04:44 +0000)]
Fix CodeGen/PowerPC/2007-03-24-cntlzd.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35329
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Mar 2007 04:43:51 +0000 (04:43 +0000)]
test that the ppc backend can do 64-bit cntlz
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35328
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Mar 2007 04:35:41 +0000 (04:35 +0000)]
implement initial support for the silly X constraint. Testcase here: CodeGen/X86/2007-03-24-InlineAsmXConstraint.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35327
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Mar 2007 04:35:23 +0000 (04:35 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35326
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 25 Mar 2007 04:26:16 +0000 (04:26 +0000)]
Make more uses of getHighBitsSet and get rid of some pointless & of an
APInt with its type mask.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35325
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Mar 2007 02:18:14 +0000 (02:18 +0000)]
Implement CodeGen/X86/2007-03-24-InlineAsmMultiRegConstraint.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35324
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Mar 2007 02:17:58 +0000 (02:17 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35323
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Mar 2007 02:14:49 +0000 (02:14 +0000)]
switch TargetLowering::getConstraintType to take the entire constraint,
not just the first letter. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35322
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 25 Mar 2007 02:03:12 +0000 (02:03 +0000)]
More APIntification:
* Convert the last use of a uint64_t that should have been an APInt.
* Change ComputeMaskedBits to have a const reference argument for the Mask
so that recursions don't cause unneeded temporaries. This causes temps
to be needed in other places (where the mask has to change) but this
change optimizes for the recursion which is more frequent.
* Remove two instances of &ing a Mask with getAllOnesValue. Its not
needed any more because APInt is accurate in its bit computations.
* Start using the getLowBitsSet and getHighBits set methods on APInt
instead of shifting. This makes it more clear in the code what is
going on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35321
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Mar 2007 02:01:03 +0000 (02:01 +0000)]
Allow the b/h/w/k constraints to be applied to values that have multiple alternatives, and end up not being registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35320
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Mar 2007 01:57:35 +0000 (01:57 +0000)]
enforce the proper range for the i386 N constraint.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35319
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Mar 2007 01:44:57 +0000 (01:44 +0000)]
Fix test/CodeGen/X86/2007-03-24-InlineAsmPModifier.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35318
91177308-0d34-0410-b5e6-
96231b3b80d8