Commit Graph

11000 Commits

Author SHA1 Message Date
Rafael Espindola
55fb102130 Include the section address in the computation of the relocation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115509 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-04 15:59:01 +00:00
Rafael Espindola
01263d35d4 Correctly compute the relocation when it is not in the first fragment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115506 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-04 15:28:43 +00:00
Anton Korobeynikov
e7beda183d va_args support for Win64.
Patch by Cameron!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115480 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-03 22:52:07 +00:00
Anton Korobeynikov
6af61ca789 Properly emit stack probe on win64 (for non-mingw targets).
Based on the patch by Cameron Esfahani!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115479 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-03 22:02:38 +00:00
Eli Friedman
d32d85e5ba Add 3DNowA instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115477 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-03 20:23:13 +00:00
Chris Lattner
ece290226a unbreak buildbot
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115476 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-03 20:02:48 +00:00
Chris Lattner
591d76ea5a the immediate field of pshufw is actually an 8-bit field, not a 8-bit field that is sign extended. This fixes PR8288
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115473 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-03 19:09:13 +00:00
Chris Lattner
cc07d7116a add support for the prefetch/prefetchw instructions, move femms into
the right file.  The assembler supports all the 3dnow instructions now,
but not the "3dnowa" ones.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115468 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-03 18:42:30 +00:00
Chris Lattner
f132fa0e74 what the heck, add support for the rest of the 3dNow! binary operations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115467 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-03 18:24:18 +00:00
Chris Lattner
548abfcbd6 Implement support for the bizarre 3DNow! encoding (which is unlike anything
else in X86), and add support for pavgusb.  This is apparently the
only instruction (other than movsx) that is preventing ffmpeg from building
with clang.

If someone else is interested in banging out the rest of the 3DNow! 
instructions, it should be quite easy now.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115466 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-03 18:08:05 +00:00
Bill Wendling
8e956f7e3e Add test to make sure that the MMX intrinsic calls make it out the other end in
tact.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115458 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-03 03:30:30 +00:00
Bill Wendling
4066010302 Auto-upgrade tests for the new MMX intrinsic calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115456 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-03 01:12:20 +00:00
Rafael Espindola
9d8b7555cd Implement a very basic PIC case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115454 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-03 00:46:57 +00:00
Chris Lattner
d476914607 fix a regression introduced in r115243, in which the instruction
backing int_x86_ssse3_pshuf_w got removed.  This caused PR8280.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115422 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-02 21:32:15 +00:00
Chris Lattner
b539b76038 actually, move the elf tests into the existing elf dir.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115416 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-02 18:53:48 +00:00
Chris Lattner
90b12590b6 consolidate ELF tests into asmparser tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115415 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-02 18:52:57 +00:00
Chris Lattner
9ab044f20b move ARM MC tests up one level.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115414 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-02 18:52:05 +00:00
Bill Wendling
43c78cda10 Need to specify SSE4 for machines which don't have SSE4. The code checked for is generated by SSE4. Otherwise, we get something else.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115352 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-01 21:39:35 +00:00
Owen Anderson
7267e14327 Now that the profitable bits of EnableFullLoadPRE have been enabled by default, rip out the remainder.
Anyone interested in more general PRE would be better served by implementing it separately, to get real
anticipation calculation, etc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115337 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-01 20:02:55 +00:00
Devang Patel
27f46cd639 Fix code gen crash reported in PR 8235. We still lose debug info for the unused argument here. This is a known limitation recorded debuginfo-tests/trunk/dbg-declare2.ll function 'f6' test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115323 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-01 19:00:44 +00:00
Bill Wendling
273ac840bc We must check for something.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115309 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-01 10:20:10 +00:00
Bill Wendling
c160218081 Disable tests until I can figure out why they're failing on just two machines but not others.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115308 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-01 10:01:10 +00:00
Bill Wendling
cc958c928f Try adding an mtriple.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115307 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-01 09:40:50 +00:00
Kalle Raiskila
8258135c90 Zap some redundant 'ori $?, $?, 0' from SPU.
Also remove some code that died in the process.
One now non-existant ori is checked for.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115306 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-01 09:20:01 +00:00
Bill Wendling
b1170f0e62 FileCheck-ize this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115304 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-01 08:55:48 +00:00
Bill Wendling
2b0ab5c370 FileCheck-ize this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115303 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-01 08:50:12 +00:00
Chris Lattner
6eff75104e fix PR8267 - Instcombine shouldn't optimizer away volatile memcpy's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115296 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-01 05:51:02 +00:00
Chris Lattner
e94aa76d2a upgrade this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115295 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-01 05:47:16 +00:00
Chris Lattner
2831a19495 fix rdar://8494845 + PR8244 - a miscompile exposed by my patch in r101350
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115294 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-01 05:36:09 +00:00
Dale Johannesen
b0ab5d04dd One more +sse2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115293 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-01 05:08:18 +00:00
Chris Lattner
3286db670c move X86 subdir up a level
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115292 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-01 04:32:20 +00:00
Dale Johannesen
5db1eea91a Mark all these as needing SSE2. Should fix PPC and
maybe even Linux.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115291 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-01 04:17:55 +00:00
Dale Johannesen
81a0b9e41c Disable these tests for now; it's not obvious why they fail on Linux.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115257 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-01 00:59:21 +00:00
Dale Johannesen
9efef89b80 Make test not sensitive to register choice.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115250 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-01 00:16:17 +00:00
Dale Johannesen
0488fb649a Massive rewrite of MMX:
The x86_mmx type is used for MMX intrinsics, parameters and
return values where these use MMX registers, and is also
supported in load, store, and bitcast.

Only the above operations generate MMX instructions, and optimizations
do not operate on or produce MMX intrinsics. 

MMX-sized vectors <2 x i32> etc. are lowered to XMM or split into
smaller pieces.  Optimizations may occur on these forms and the
result casted back to x86_mmx, provided the result feeds into a
previous existing x86_mmx operation.

The point of all this is prevent optimizations from introducing
MMX operations, which is unsafe due to the EMMS problem.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115243 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 23:57:10 +00:00
NAKAMURA Takumi
929910925d test/CodeGen/X86/sibcall.ll: Add explicit triplets and remove XFAIL: apple-darwin8.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115215 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 22:02:06 +00:00
Owen Anderson
722cc1f414 We do want to allow LoadPRE to perform LICM-like transformations: we already consider PHI nodes to be negligible for
code size (making this transform code size neutral), and it allows us to hoist values out of loops, which is always
a good thing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115205 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 20:53:04 +00:00
Jakob Stoklund Olesen
7eb589d3f9 Try again to disable critical edge splitting in CodeGenPrepare.
The bug that broke i386 linux has been fixed in r115191.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115204 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 20:51:52 +00:00
Rafael Espindola
7eae36b38b Factor some logic into ShouldRelocOnSymbol. This simplifies the code and
fixes some cases where we were producing relocations with at symbol that
should use a section instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115194 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 20:18:35 +00:00
Jakob Stoklund Olesen
2622f4622c When isel is emitting instructions for an x86 target without CMOV, the CFG is
edited during emission.

If the basic block ends in a switch that gets lowered to a jump table, any
phis at the default edge were getting updated wrong. The jump table data
structure keeps a pointer to the header blocks that wasn't getting updated
after the MBB is split.

This bug was exposed on 32-bit Linux when disabling critical edge splitting in
codegen prepare.

The fix is to uipdate stale MBB pointers whenever a block is split during
emission.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115191 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 19:44:31 +00:00
Chris Lattner
1344488d65 more cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115178 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 17:29:05 +00:00
Chris Lattner
27c5215fbd merge and clean up tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115177 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 17:24:05 +00:00
Chris Lattner
a879dc717e merge two tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115175 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 17:18:22 +00:00
Chris Lattner
e73774dbb0 rename test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115174 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 17:16:49 +00:00
Chris Lattner
84d7ffdede generalize test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115172 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 17:15:42 +00:00
Chris Lattner
9e46d78809 rename test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115171 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 17:14:55 +00:00
Chris Lattner
ebfa86b434 merge two tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115170 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 17:14:30 +00:00
Chris Lattner
905f2e0669 preemptively add the rest of the non-n fpstack instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115168 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 17:11:29 +00:00
Chris Lattner
5660904a2c merge two tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115165 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 17:05:37 +00:00
Chris Lattner
198b9797b4 fix this to not be completely broken.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115164 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 17:04:59 +00:00