Bill Wendling
ab7c8c091e
Add support for the __sync_sub_and_fetch atomics and friends for X86. The code
...
was already present, but not hooked up to anything.
llvm-svn: 55018
2008-08-19 23:09:18 +00:00
Dan Gohman
d5c84e8061
Fast-isel is now *minimally* functional. Add a testcase to
...
demonstrate the extent of its capabilities. Note that it
only attempts to operate on one of the blocks in this
testcase.
llvm-svn: 55016
2008-08-19 22:37:59 +00:00
Dale Johannesen
15b76de064
Add support for 8 and 16 bit forms of __sync
...
builtins on X86.
Change "lock" instructions to be on a separate line.
This is needed to work around a bug in the Darwin
assembler.
llvm-svn: 54999
2008-08-19 18:47:28 +00:00
Evan Cheng
6534c78383
Fix a (u)comiss intrinsic lowering bug. It was using anyext which can return junk in higher bits. Patch by Nate Begeman.
...
llvm-svn: 54903
2008-08-17 19:22:34 +00:00
Dan Gohman
b0f5e18201
Improve support for vector casts in LLVM IR and CodeGen.
...
llvm-svn: 54784
2008-08-14 20:04:46 +00:00
Dan Gohman
096cdc6059
Allow SelectionDAG to create EXTRACT_VECTOR_ELT nodes with
...
non-constant indices. Only a few of the peephole checks require
a constant index.
llvm-svn: 54764
2008-08-13 21:51:37 +00:00
Dan Gohman
6789ef32d7
Improve the grep commands for this test to be tolerant of ABI
...
differences, and to be more specific.
llvm-svn: 54648
2008-08-11 20:10:41 +00:00
Dan Gohman
a27ed39f05
Take the FrameOffset into account when computing the alignment
...
of stack objects. This fixes PR2656.
llvm-svn: 54646
2008-08-11 18:27:03 +00:00
Dan Gohman
ac992cdc1c
Add an EXTRACTPSmr pattern to match the pattern that
...
X86ISelLowering creates.
llvm-svn: 54544
2008-08-08 18:30:21 +00:00
Evan Cheng
4708df4776
It's not legal to output a GV in a coalesced section if it's used in an ARM PIC relative constantpool.
...
llvm-svn: 54519
2008-08-08 06:56:16 +00:00
Nick Lewycky
19a341cf57
Don't crash printing the asm for a ConstantExpr PtrToInt just because the int
...
is narrower than the pointer. This testcase emits:
.byte (((17) - 16) & 255)
llvm-svn: 54517
2008-08-08 06:34:07 +00:00
Bruno Cardoso Lopes
f8906a40ab
Support added for ctlz intrinsic, test case added.
...
llvm-svn: 54516
2008-08-08 06:16:31 +00:00
Bruno Cardoso Lopes
91abeb9458
[Last] Batch 7 of Mips CodeGen tests
...
llvm-svn: 54512
2008-08-08 04:12:42 +00:00
Bruno Cardoso Lopes
c4f524b9d1
Batch 6 of Mips CodeGen tests
...
llvm-svn: 54511
2008-08-08 04:11:30 +00:00
Bruno Cardoso Lopes
772cf1643c
Batch 5 of Mips CodeGen tests
...
llvm-svn: 54510
2008-08-08 04:09:57 +00:00
Bruno Cardoso Lopes
7d4b844ee8
Batch 4 of Mips CodeGen tests
...
llvm-svn: 54509
2008-08-08 04:08:30 +00:00
Bruno Cardoso Lopes
06380b7221
Batch 3 of Mips CodeGen tests
...
llvm-svn: 54508
2008-08-08 04:05:51 +00:00
Bruno Cardoso Lopes
96efb82258
Batch 2 of Mips CodeGen tests
...
llvm-svn: 54507
2008-08-08 04:03:25 +00:00
Bruno Cardoso Lopes
42b4e15d50
Batch 1 of Mips CodeGen tests, more coming...
...
I had a lot of simple local codegen tests and they are now ready to be placed
in test/CodeGen.
llvm-svn: 54506
2008-08-08 03:58:34 +00:00
Anton Korobeynikov
52d0ff92cc
Print section flags ok on platforms, which use '@' as comment string. Fix test.
...
llvm-svn: 54460
2008-08-07 09:55:06 +00:00
Dan Gohman
74fa421281
Re-enable elimination of unnecessary SUBREG_TO_REG instructions in
...
LowerSubregs, and fix an x86-64 isel bug that this exposed.
SUBREG_TO_REG for x86-64 implicit zero extension is only safe for
isel to generate when the source is known to always have zeros in
the high 32 bits. The EXTRACT_SUBREG instruction does not clear
the high 32 bits.
llvm-svn: 54444
2008-08-07 02:54:50 +00:00
Dan Gohman
1674a7c2f3
Add an extra example that shouldn't get an and instruction.
...
llvm-svn: 54443
2008-08-07 02:23:06 +00:00
Dan Gohman
cc784f1662
Re-introduce the 8-bit subreg zext-inreg patterns for x86-32,
...
this time using MOV32to32_ and MOV16to16_. Thanks to Evan for
suggesting this.
llvm-svn: 54418
2008-08-06 18:27:21 +00:00
Evan Cheng
f4d1119fbd
Fix PR2620: Fix X86cmppd selection code so it expects operands to be v2f64.
...
llvm-svn: 54376
2008-08-05 22:19:15 +00:00
Evan Cheng
a07795a0c3
Fix PR2596: out of bound reference.
...
llvm-svn: 54375
2008-08-05 21:51:46 +00:00
Owen Anderson
d1185e4da3
Update the remaining tests not to use -disable-correct-folding, and remove two
...
that couldn't be updated.
llvm-svn: 54359
2008-08-05 18:19:14 +00:00
Owen Anderson
117b0e405d
One more -disable-correct-folding case removed.
...
llvm-svn: 54358
2008-08-05 18:08:56 +00:00
Owen Anderson
c5fd801d85
Remove another -disable-correct-folding use.
...
llvm-svn: 54357
2008-08-05 18:05:58 +00:00
Owen Anderson
f845ea8d52
Eliminate another use of -disable-correct-folding.
...
llvm-svn: 54356
2008-08-05 18:03:01 +00:00
Owen Anderson
4c7ea0c270
This check is unnecessary, and getting rid of it removes a use of -disable-correct-folding.
...
llvm-svn: 54355
2008-08-05 17:52:54 +00:00
Owen Anderson
7fca48d0bd
Remove the need for -disable-correct-folding from this test.
...
llvm-svn: 54354
2008-08-05 17:49:52 +00:00
Evan Cheng
754148a2ec
Fix PR2568: Fix bug that cause redudant kill marker after its live interval has been extended due to coalescing.
...
llvm-svn: 54346
2008-08-05 07:10:38 +00:00
Owen Anderson
231111faf9
Update these tests to work by disabling the new correct CFG generation. This flag should ONLY be used to for tests like these.
...
llvm-svn: 54334
2008-08-04 23:55:29 +00:00
Dan Gohman
60ea311ec8
Fix SDISel lowering of PHI nodes to use ComputeValueVTs.
...
This allows it to work correctly on aggregate values.
This fixes PR2623.
llvm-svn: 54331
2008-08-04 23:42:46 +00:00
Dan Gohman
af429b3e52
Fix SDISel lowering of zeroinitializer and undef to use ComputeValueVTs.
...
This allows it to work correctly on nested aggregate values.
This fixes PR2625.
llvm-svn: 54330
2008-08-04 23:30:41 +00:00
Dale Johannesen
c1ae4b8c08
Make sse2 explicit, for non-x86 hosts.
...
llvm-svn: 54251
2008-07-31 20:16:33 +00:00
Dan Gohman
f691fc703d
Improve dagcombining for sext-loads and sext-in-reg nodes.
...
llvm-svn: 54239
2008-07-31 00:50:31 +00:00
Dan Gohman
4ca56a8993
Don't look for leaf values to store when lowering stores of
...
empty structs. This fixes PR2612.
llvm-svn: 54226
2008-07-30 18:36:51 +00:00
Dan Gohman
6f3fa16fd9
I missed this file in r54223. movzbl is now used instead
...
of movzbw here.
llvm-svn: 54224
2008-07-30 18:23:34 +00:00
Dan Gohman
efb5d2ce6e
Reapply r54147 with a constraint to only use the 8-bit
...
subreg form on x86-64, to avoid the problem with x86-32
having GPRs that don't have 8-bit subregs.
Also, change several 16-bit instructions to use
equivalent 32-bit instructions. These have a smaller
encoding and avoid partial-register updates.
llvm-svn: 54223
2008-07-30 18:09:17 +00:00
Mon P Wang
fb483982f5
Added support for overloading intrinsics (atomics) based on pointers
...
to different address spaces. This alters the naming scheme for those
intrinsics, e.g., atomic.load.add.i32 => atomic.load.add.i32.p0i32
llvm-svn: 54195
2008-07-30 04:36:53 +00:00
Duncan Sands
c3d73fbfc0
Fix PR2609. If a label is deleted, then it needs
...
to be marked invalid regardless of whether it is
a debug, an exception handling or (hopefully) a
GC label.
llvm-svn: 54172
2008-07-29 20:56:02 +00:00
Dan Gohman
ebe629a4b2
Revert 54147.
...
llvm-svn: 54148
2008-07-29 01:02:18 +00:00
Dan Gohman
1816900fd1
Add x86 isel patterns to match what would be a ZERO_EXTEND_INREG operation,
...
which is represented in codegen as an 'and' operation. This matches them
with movz instructions, instead of leaving them to be matched by and
instructions with an immediate field.
llvm-svn: 54147
2008-07-28 22:18:25 +00:00
Dan Gohman
a5a50a8853
Fix embedded CRLF characters.
...
llvm-svn: 54125
2008-07-27 18:37:58 +00:00
Nate Begeman
1396e3d206
Fix test RUN line
...
llvm-svn: 54040
2008-07-25 19:08:59 +00:00
Nate Begeman
5523d40e4b
Disable mov{L, LP, HP, HLP, *DUP} shuffles for mmx
...
mmx needs its own fancy shuffle logic based on unpack; for now we get correct but awful code.
Also commit Mon Ping's VSETCC patch
llvm-svn: 54039
2008-07-25 19:05:58 +00:00
Dan Gohman
6d394147f2
This test needs -aggressive-remat enabled.
...
llvm-svn: 54015
2008-07-25 15:25:32 +00:00
Evan Cheng
d4eb684258
Teach ARM isLegalAddressingMode to handle unknown type without crashing. This fixes pr2589.
...
llvm-svn: 54004
2008-07-25 00:55:17 +00:00
Dan Gohman
680e1bd958
Enable rematerialization of constants using AliasAnalysis::pointsToConstantMemory,
...
and knowledge of PseudoSourceValues. This unfortunately isn't sufficient to allow
constants to be rematerialized in PIC mode -- the extra indirection is a
complication.
llvm-svn: 54000
2008-07-25 00:02:30 +00:00