Anton Korobeynikov
a3c4db1161
Unbreak
...
llvm-svn: 81205
2009-09-08 07:30:03 +00:00
Evan Cheng
e1047f16e4
When remat'ing and destination virtual register has a sub-register index. Make sure the sub-register class matches the register class of the remat'ed instruction definition register class.
...
llvm-svn: 81204
2009-09-08 06:39:07 +00:00
Chris Lattner
6c02945d93
disable some irrelevant eh emission
...
llvm-svn: 81200
2009-09-08 06:26:40 +00:00
Chris Lattner
2e9f3b2865
fix PR4767, a crash because fp stackifier visited blocks in
...
depth first order, so it wouldn't process unreachable blocks.
When compiling at -O0, late dead block elimination isn't done
and the bad instructions got to isel.
llvm-svn: 81187
2009-09-08 04:55:44 +00:00
Dan Gohman
8f7b263087
Fix an abort on a store of an empty struct member. getValue returns
...
null in the case of an empty struct, so don't try to call getNumValues
on it.
llvm-svn: 81180
2009-09-08 01:44:02 +00:00
Dan Gohman
572ecc26b6
Fix a thinko: When lowering fneg with xor, bitcast the operands
...
from floating-point to integer first, and bitcast the result
back to floating-point. Previously, this test was passing by
falling back to SelectionDAG lowering. The resulting code isn't
as nice, but it's correct and CodeGen now stays on the fast path.
llvm-svn: 81171
2009-09-07 23:47:14 +00:00
Daniel Dunbar
ec3b6229d8
Don't depend on arch specific global prefix.
...
llvm-svn: 81084
2009-09-05 11:53:06 +00:00
Daniel Dunbar
a953c39b9e
Eliminate uses of %prcontext.
...
- I'd appreciate it if someone else eyeballs my changes to make sure I captured
the intent of the test.
llvm-svn: 81083
2009-09-05 11:35:16 +00:00
Bob Wilson
013dfaa93a
Stabilize the order of live intervals in the priority_queue used by the
...
linear scan reg alloc. This fixes a problem I ran into where extracting
a function from a larger file caused the generated code to change (masking
the problem I was trying to debug) because the allocator behaved differently.
This changes the results for two X86 regression checks. stack-color-with-reg
is improved, with one less instruction, but pr3495 is worse, with one more
copy. As far as I can tell, these tests were just getting lucky or unlucky,
so I've changed the expected results.
llvm-svn: 81060
2009-09-05 01:19:16 +00:00
Evan Cheng
46e40befe7
Run branch folding if if-converter make some transformations.
...
llvm-svn: 80994
2009-09-04 07:47:40 +00:00
Daniel Dunbar
2a64e85835
Remove stale greps.
...
llvm-svn: 80986
2009-09-04 05:07:52 +00:00
Bob Wilson
25410ac604
Convert tests to FileCheck.
...
llvm-svn: 80983
2009-09-04 04:07:19 +00:00
Bob Wilson
9e02907942
Convert a test to FileCheck.
...
llvm-svn: 80975
2009-09-04 00:32:31 +00:00
Dan Gohman
c24fb1af4f
LLVM currently represents floating-point negation as -0.0 - x. Fix
...
FastISel to recognize this pattern and emit a floating-point
negation using xor.
llvm-svn: 80963
2009-09-03 22:53:57 +00:00
Daniel Dunbar
75c14da75f
Remove dead greps.
...
llvm-svn: 80946
2009-09-03 20:59:02 +00:00
Dan Gohman
69e9573064
Recognize more opportunities to use SSE min and max instructions,
...
swapping the operands if necessary.
llvm-svn: 80940
2009-09-03 20:34:31 +00:00
Mon P Wang
24516ac0ca
Test cases for vector shifts changes r80935
...
Changed the old vector shift test to use FileCheck
llvm-svn: 80936
2009-09-03 19:57:35 +00:00
Evan Cheng
41e87f2f13
Reference to hidden symbols do not have to go through non-lazy pointer in non-pic mode. rdar://7187172.
...
llvm-svn: 80904
2009-09-03 07:04:02 +00:00
Chris Lattner
e460c8f660
merge all the basic linux/32 pic tests together into one test.
...
llvm-svn: 80902
2009-09-03 06:29:23 +00:00
Chris Lattner
51fec7f6f6
rename test
...
llvm-svn: 80901
2009-09-03 06:16:49 +00:00
Anton Korobeynikov
7125d63acf
More missed vdup patterns
...
llvm-svn: 80838
2009-09-02 21:21:28 +00:00
Bob Wilson
6972a16bbc
Add support for generating code for vst{234}lane intrinsics.
...
llvm-svn: 80707
2009-09-01 18:51:56 +00:00
Bob Wilson
75b2b04e1e
Fix incorrect declarations of intrinsics in this test.
...
llvm-svn: 80705
2009-09-01 18:50:43 +00:00
Bob Wilson
d638cc8869
Add test for vld{234}_lane instructions.
...
llvm-svn: 80658
2009-09-01 04:27:10 +00:00
Bob Wilson
03f5a5bfff
Fix pr4843: When an instruction has multiple destination registers that are
...
tied to different source registers, the TwoAddressInstructionPass needs to
be smarter. Change it to check before replacing a source register whether
that source register is tied to a different destination register, and if so,
defer handling it until a subsequent iteration.
llvm-svn: 80654
2009-09-01 04:18:40 +00:00
Jim Grosbach
4e0e9a4870
SJLJ is arm/darwin only for now. force the triple for the test
...
llvm-svn: 80651
2009-09-01 02:34:49 +00:00
Jim Grosbach
9a220088ac
Clean up LSDA name generation and use for SJLJ exception handling. This
...
makes an eggregious hack somewhat more palatable. Bringing the LSDA forward
and making it a GV available for reference would be even better, but is
beyond the scope of what I'm looking to solve at this point.
Objective C++ code could generate function names that broke the previous
scheme. This fixes that.
llvm-svn: 80649
2009-09-01 01:57:56 +00:00
David Goodwin
0fc3764297
Don't mark a register live at an undef use.
...
llvm-svn: 80621
2009-08-31 20:47:02 +00:00
Evan Cheng
493eee1fc7
Remove .n suffix for some 16-bit opcodes now that Darwin assembler is fixed.
...
llvm-svn: 80615
2009-08-31 20:14:07 +00:00
Chris Lattner
f32c2d890c
eliminate some uses of prcontext. Any help here would be appreciated :)
...
llvm-svn: 80520
2009-08-30 21:45:23 +00:00
Anton Korobeynikov
17529667db
Add missed pattern
...
llvm-svn: 80502
2009-08-30 19:06:39 +00:00
Anton Korobeynikov
a261afbf14
EXTRACT_VECTOR_ELEMENT can have result type different from element type.
...
Remove the assertion and generalize the code for ARM NEON stuff.
llvm-svn: 80498
2009-08-30 17:14:54 +00:00
Dan Gohman
f7b76078bb
CMOV_GR8 clobbers EFLAGS when its expansion involves an xor to set
...
a register to 0. This fixes PR4814.
llvm-svn: 80445
2009-08-29 22:19:15 +00:00
Anton Korobeynikov
b2e6f5eed4
Do not assert on too wide splats we don't support.
...
llvm-svn: 80409
2009-08-29 00:08:18 +00:00
Anton Korobeynikov
9fd6082c10
Add missed extract_element pattern
...
llvm-svn: 80408
2009-08-28 23:41:26 +00:00
Evan Cheng
d7a07ab112
Let Darwin linker auto-synthesize stubs and lazy-pointers. This deletes a bunch of nasty code in ARM asm printer.
...
llvm-svn: 80404
2009-08-28 23:18:09 +00:00
Evan Cheng
2d5d3700e9
v4, v5 does not support sxtb / sxth.
...
llvm-svn: 80322
2009-08-28 00:31:43 +00:00
Anton Korobeynikov
cb0fdc4505
scalar_to_vector is fully legal now (implemented as subreg accesses)
...
llvm-svn: 80249
2009-08-27 16:04:47 +00:00
Anton Korobeynikov
e17a92c545
Ok, sometimes it's profitable to turn scalar_to_vector stuff into subreg access.
...
Add a testcase.
llvm-svn: 80246
2009-08-27 14:51:42 +00:00
Evan Cheng
984f8efcaa
Fix PR4789. Teach eliminateFrameIndex how to handle VLDRQ and VSTRQ which cannot fold any immediate offset.
...
llvm-svn: 80191
2009-08-27 01:23:50 +00:00
Dan Gohman
60fae1b2a2
X86FastISel support for loading and storing values of type i1.
...
llvm-svn: 80186
2009-08-27 00:31:47 +00:00
Dan Gohman
613d152216
Expand i8 selects into control flow instead of 16-bit conditional
...
moves. This avoids the need to promote the operands (or implicitly
extend them, a partial register update condition), and can reduce
i8 register pressure. This substantially speeds up code such as
write_hex in lib/Support/raw_ostream.cpp.
subclass-coalesce.ll is too trivial and no longer tests what it was
originally intended to test.
llvm-svn: 80184
2009-08-27 00:14:12 +00:00
Bob Wilson
c7d92cfb15
Convert some more Neon tests to FileCheck.
...
llvm-svn: 80120
2009-08-26 18:11:50 +00:00
Dale Johannesen
ca67bcd630
Alter 79292 to produce output that actually assembles.
...
llvm-svn: 80119
2009-08-26 18:10:32 +00:00
Anton Korobeynikov
1c904039ce
Expand scalar_to_vector - we don't have any isel logic for it now
...
llvm-svn: 80107
2009-08-26 16:26:09 +00:00
Dan Gohman
6bd4a58365
Don't use INSERT_SUBREG to model anyext operations on x86-64, as it
...
leads to partial-register definitions. To help avoid redundant
zero-extensions, also teach the h-register matching patterns that
use movzbl to match anyext as well as zext.
llvm-svn: 80099
2009-08-26 14:59:13 +00:00
Anton Korobeynikov
6ee3a73ba1
Add dummy inline asm handling for 'r' constraint. This fixes PR4778
...
llvm-svn: 80085
2009-08-26 13:44:29 +00:00
Scott Michel
d9d9c7ef05
Updated i128 sext support for CellSPU backend, contributed by Ken Werner (IBM)
...
llvm-svn: 80042
2009-08-25 22:37:34 +00:00
Chris Lattner
8d793c7b81
remove some dead lines.
...
llvm-svn: 80031
2009-08-25 21:01:56 +00:00
Chris Lattner
102e6780cf
convert to filecheck style
...
llvm-svn: 80029
2009-08-25 20:57:38 +00:00