Jim Grosbach
5ce30430a4
Register re-use for scavenged frame indices must check for re-deginition
...
of the register in the instruction which kills the scavenged value.
llvm-svn: 84641
2009-10-20 16:33:57 +00:00
Dan Gohman
e0ace5c4eb
Make TranslateX86CC return COND_INVALID instead of aborting when it
...
encounters an OEQ or UNE comparison, and update its callers to check
for this return status and recover. This fixes a problem resulting from
the LowerOperation hooks being called from LegalizeVectorOps, because
LegalizeVectorOps only lowers vectors, so OEQ and UNE comparisons may
still be at large. This fixes PR5092.
llvm-svn: 84640
2009-10-20 16:22:37 +00:00
Torok Edwin
bdcd45a9d6
Fix PR5258, jump-threading creating invalid PHIs.
...
When an incoming value for a PHI is updated, we must also updated all other
incoming values for the same BB to match, otherwise we create invalid PHIs.
llvm-svn: 84638
2009-10-20 15:42:00 +00:00
Torok Edwin
3801e755cc
Fix PR4313: IPSCCP was not setting the lattice value for the invoke instruction
...
when the invoke had multiple return values: it set the lattice value only on the
extractvalue.
This caused the invoke's lattice value to remain the default (undefined), and
later propagated to extractvalue's operand, which incorrectly introduces
undefined behavior.
llvm-svn: 84637
2009-10-20 15:15:09 +00:00
Benjamin Kramer
dee347a8e8
Random #include pruning.
...
llvm-svn: 84632
2009-10-20 11:44:38 +00:00
Sanjiv Gupta
28330ebddc
This file is replaeced by PIC16Section.h.
...
llvm-svn: 84628
2009-10-20 09:16:32 +00:00
Daniel Dunbar
0d8b79cc2e
NNT: Implement "config mode", use -config path/to/llvm-config
...
- This runs the nightly test and does all the submission logic, but using the
LLVM build specified by the llvm-config.
- Useful for, among other things, testing NNT itself.
llvm-svn: 84620
2009-10-20 07:30:54 +00:00
Daniel Dunbar
738ce34659
NNT: Remove unused BUILDTYPE argument.
...
llvm-svn: 84619
2009-10-20 07:30:46 +00:00
Chris Lattner
2a04686991
implement some more easy hooks.
...
llvm-svn: 84614
2009-10-20 06:22:33 +00:00
Chris Lattner
8137f1aef2
Implement some hooks, make printOperand abort if unknown modifiers are
...
present.
llvm-svn: 84613
2009-10-20 06:15:28 +00:00
Chris Lattner
dfe75a5667
t2MOVi32imm is currently always lowered by the Thumb2ITBlockPass.
...
llvm-svn: 84611
2009-10-20 05:58:02 +00:00
Daniel Dunbar
0d83671555
PowerPC ifdef'ing considered more complicated than one might like.
...
llvm-svn: 84603
2009-10-20 05:33:23 +00:00
Daniel Dunbar
87b361d3d6
Wire up the ARM MCInst printer, for llvm-mc.
...
llvm-svn: 84600
2009-10-20 05:15:36 +00:00
Dan Gohman
b1528d73d1
Re-apply r84295, with fixes to how the loop "top" and "bottom" blocks are
...
tracked. Instead of trying to manually keep track of these locations
while doing complex modifications, just recompute them when they're needed.
This fixes a bug in which the TopMBB and BotMBB were not correctly updated,
leading to invalid transformations.
llvm-svn: 84598
2009-10-20 04:50:37 +00:00
Evan Cheng
54a5544dd7
Trim unnecessary includes.
...
llvm-svn: 84597
2009-10-20 04:23:20 +00:00
Dan Gohman
1fe811cd09
Add getTopBlock and getBottomBlock member functions to MachineLoopInfo.
...
llvm-svn: 84596
2009-10-20 04:16:37 +00:00
Nick Lewycky
ce81bfe51c
Correct test for PowerPC.
...
llvm-svn: 84595
2009-10-20 04:09:50 +00:00
Daniel Dunbar
25f8a7e4fd
Revert "Tweak top-level Makefile to facilitate Apple-style build.", this is
...
breaking Clang's Apple-style build.
llvm-svn: 84592
2009-10-20 02:23:13 +00:00
Daniel Dunbar
793dfbc945
NNT: Remove duplicate verbose print.
...
llvm-svn: 84591
2009-10-20 02:23:05 +00:00
Jim Grosbach
ea8ab9a323
Now that all ARM subtargets use frame index scavenging, the Thumb1 requires*
...
functions are not needed.
llvm-svn: 84587
2009-10-20 01:32:47 +00:00
Evan Cheng
029a85b791
If the physical register being spilled does not have an interval, spill its sub-registers instead.
...
llvm-svn: 84586
2009-10-20 01:31:09 +00:00
Jim Grosbach
c4acd85bfd
Enable post-pass frame index register scavenging for ARM and Thumb2
...
llvm-svn: 84585
2009-10-20 01:26:58 +00:00
Chris Lattner
8b2fb5c12a
lower ARM::MOVi32imm properly.
...
llvm-svn: 84583
2009-10-20 01:11:37 +00:00
Chris Lattner
b345825d9e
add support for external symbols. The mc instprinter can now handle
...
reasonable code like Codegen/ARM/2009-02-27-SpillerBug.ll, producing
identical output except for superior formatting of constant pool entries.
llvm-svn: 84582
2009-10-20 00:56:16 +00:00
Chris Lattner
510ca3ebd7
get fancy: support basic block operands. Yay for jumps.
...
llvm-svn: 84579
2009-10-20 00:52:47 +00:00
Chris Lattner
279abd0841
add supprort for the 'sbit' operand, MOVi apparently has one.
...
llvm-svn: 84577
2009-10-20 00:46:11 +00:00
Chris Lattner
18bc7716d6
add support for instruction predicates.
...
llvm-svn: 84575
2009-10-20 00:42:49 +00:00
Chris Lattner
976978de4a
implement printSORegOperand, add lowering for the nasty and despicable MOVi2pieces :)
...
llvm-svn: 84573
2009-10-20 00:40:56 +00:00
Jim Grosbach
ea7293494f
Refs: A8-598.
...
Leave Inst{11-8}, which represents the starting byte index of the extracted
result in the concatenation of the operands and is left unspecified.
Patch by Johnny Chen.
llvm-svn: 84572
2009-10-20 00:38:19 +00:00
Jim Grosbach
aaa0e97800
Add missing encoding bits to NLdSt class of instructions.
...
Patch by Johnny Chen.
llvm-svn: 84570
2009-10-20 00:19:08 +00:00
Chris Lattner
db0e4f883d
X86 should ignore implicit regs when lowering to MCInst also,
...
no functionality change.
llvm-svn: 84567
2009-10-19 23:35:57 +00:00
Chris Lattner
8a38b12ffe
handle addmode4 modifiers, fix a fixme in printRegisterList
...
by ignoring all implicit regs when lowering.
llvm-svn: 84566
2009-10-19 23:31:43 +00:00
Chris Lattner
5630502650
simplify by using the twine form of GetOrCreateSymbol
...
llvm-svn: 84565
2009-10-19 23:05:23 +00:00
Oscar Fuentes
5bb8ed7795
Updated cmake library dependencies.
...
llvm-svn: 84564
2009-10-19 23:00:00 +00:00
Jim Grosbach
2fb5eb1264
Enable allocation of R3 in Thumb1
...
llvm-svn: 84563
2009-10-19 22:57:03 +00:00
Chris Lattner
24d265dae3
use EmitLabel instead of text emission
...
llvm-svn: 84562
2009-10-19 22:51:16 +00:00
Chris Lattner
df848440d1
add a twine version of MCContext::GetOrCreateSymbol.
...
llvm-svn: 84561
2009-10-19 22:49:00 +00:00
Chris Lattner
47131861be
lower the ARM::CONSTPOOL_ENTRY pseudo op, giving us constant pool entries
...
like:
@ BB#1:
.align 2
LCPI1_0:
.long L_.str-(LPC0+8)
Note that proper indentation of the label :)
llvm-svn: 84558
2009-10-19 22:33:05 +00:00
Jim Grosbach
c813cf9649
Adjust the scavenge register spilling to allow the target to choose an
...
appropriate restore location for the spill as well as perform the actual
save and restore.
The Thumb1 target uses this to make sure R12 is not clobbered while a spilled
scavenger register is live there.
llvm-svn: 84554
2009-10-19 22:27:30 +00:00
Chris Lattner
ce9e652b8a
add MCInstLower support for lowering ARM::PICADD, a pseudo op for pic stuffola.
...
llvm-svn: 84553
2009-10-19 22:23:04 +00:00
Owen Anderson
06714a71a9
Refactor lookup_or_add to contain _MUCH_ less duplicated code. Add support for
...
numbering first class aggregate instructions while we're at it.
llvm-svn: 84547
2009-10-19 22:14:22 +00:00
Chris Lattner
d7d7fee3fe
add register list and hacked up addrmode #4 support, we now get this:
...
_main:
stmsp! sp!, {r7, lr}
mov r7, sp
sub sp, sp, #4
mov r0, #0
str r0, [sp]
ldr r0, LCPI1_0
bl _printf
ldr r0, [sp]
mov sp, r7
ldmsp! sp!, {r7, pc}
Note the unhappy ldm/stm because of modifiers being ignored.
llvm-svn: 84546
2009-10-19 22:09:23 +00:00
Chris Lattner
8124977463
revert r84540, fixing build breakage I didn't see because of
...
broken makefile deps :(
llvm-svn: 84544
2009-10-19 21:59:25 +00:00
Chris Lattner
30baeae77d
add addrmode2 support, getting us up to:
...
_main:
stm ,
mov r7, sp
sub sp, sp, #4
mov r0, #0
str r0, [sp]
ldr r0, LCPI1_0
bl _printf
ldr r0, [sp]
mov sp, r7
ldm ,
llvm-svn: 84543
2009-10-19 21:57:05 +00:00
Chris Lattner
ec500c80c6
add jump tables, constant pools and some trivial global
...
lowering stuff. We can now compile hello world to:
_main:
stm ,
mov r7, sp
sub sp, sp, #4
mov r0, #0
str r0,
ldr r0,
bl _printf
ldr r0,
mov sp, r7
ldm ,
Almost looks like arm code :)
llvm-svn: 84542
2009-10-19 21:53:00 +00:00
Victor Hernandez
a666c49572
Malloc calls are marked NoAlias, so the code below the isMalloc() check makes it redundant. Removing the isMalloc() check.
...
llvm-svn: 84541
2009-10-19 21:47:22 +00:00
Chris Lattner
4b35be3f3b
pass mangler in as a reference instead of a pointer.
...
llvm-svn: 84540
2009-10-19 21:45:31 +00:00
Mikhail Glushenkov
7c31bb2adc
More refactoring...
...
llvm-svn: 84537
2009-10-19 21:24:28 +00:00
Chris Lattner
3755b735a0
reduce #includes
...
llvm-svn: 84536
2009-10-19 21:23:15 +00:00
Chris Lattner
4318ab8ce7
add printing support for SOImm operands, getting us to:
...
_main:
stm ,
mov r7, sp
sub sp, sp, #4
mov r0, #0
str r0,
llvm-svn: 84535
2009-10-19 21:21:39 +00:00