Evan Cheng
f7b5c86a0b
Teach scheduler about REG_SEQUENCE.
...
llvm-svn: 102984
2010-05-04 00:22:40 +00:00
Dan Gohman
cc176c4b1f
Add a polygen rule that reflects the fact that nsw and nuw can be
...
used together in either order.
llvm-svn: 102983
2010-05-04 00:13:24 +00:00
Dan Gohman
50b08bfbc8
Re-enable isel kill flags, now that the local allocator is ignoring them.
...
llvm-svn: 102981
2010-05-04 00:12:15 +00:00
Jim Grosbach
1c5f6c5a1b
rdar://7937137 - dbg values not being handled in thumb1 version of
...
eliminateFrameIndex(), leading to llvm_unreachable() assertion failure.
llvm-svn: 102980
2010-05-04 00:11:37 +00:00
Dan Gohman
0f6577e194
Update one more 2.7 to 2.8.
...
llvm-svn: 102978
2010-05-03 23:52:21 +00:00
Dan Gohman
43994b8cf0
Minimally update ReleaseNotes.html for 2.8 development; uncomment and
...
update the big red warning at the top. Most of the old content remains
and awaits revision.
Clear out the API changes section, and start it up again with a
mention of the add->fadd transition.
llvm-svn: 102977
2010-05-03 23:51:05 +00:00
Jakob Stoklund Olesen
4ef97cf59c
Remove preexisting kill flags in RegAllocLocal, just like LiveVariables does.
...
This should make it possible to start producing kill flags in isel without
breaking stuff.
llvm-svn: 102976
2010-05-03 23:49:20 +00:00
Dan Gohman
8bfd5f99b5
Factor out FastISel's code for materializing constants and other values
...
in registers into a separate function to de-couple it from the
top-down-specific logic in getRegForValue.
llvm-svn: 102975
2010-05-03 23:36:34 +00:00
Dale Johannesen
b10ca6bf4c
Implement builtin_return_address(x) and builtin_frame_address(x)
...
on PPC for x!=0. 7624113.
llvm-svn: 102972
2010-05-03 22:59:34 +00:00
Dan Gohman
b8016872b6
Remove the API compatibility layer which converted add, sub, and mul
...
to fadd, fsub, and fmul, when used with a floating-point type. LLVM
has supported the new instructions since 2.6, so it's time to get
on board.
llvm-svn: 102971
2010-05-03 22:44:19 +00:00
Jakob Stoklund Olesen
51ab2653d5
Check that subregisters don't have independent values in RemoveCopyByCommutingDef().
...
This fixes PR6941.
llvm-svn: 102970
2010-05-03 22:40:32 +00:00
Dan Gohman
c024fd43c9
Fix tests to use fadd, fsub, and fmul, instead of add, sub, and mul,
...
when the type is floating-point.
llvm-svn: 102969
2010-05-03 22:36:46 +00:00
Eric Christopher
cbbb35694f
Reword a comment slightly.
...
llvm-svn: 102966
2010-05-03 22:18:49 +00:00
Dan Gohman
2f27d59870
Use getConstant instead of getIntegerSCEV. The two are basically the
...
same, now that getConstant has overloads consistent with ConstantInt::get.
llvm-svn: 102965
2010-05-03 22:09:21 +00:00
Bill Wendling
80159b87ea
Revert r102948.
...
llvm-svn: 102964
2010-05-03 21:51:21 +00:00
Bob Wilson
5010005c87
Remove special case for llvmCore_Embedded project. This is no longer needed
...
since llvmCore is built as part of llvmgcc42 now.
llvm-svn: 102962
2010-05-03 21:41:24 +00:00
Bob Wilson
9c9622768e
Print basic block numbers in live interval debug output. Since the rest of the
...
debug output is showing machine instructions, the IR-level basic block names
aren't very meaningful, and because multiple machine basic blocks may be
derived from one IR-level BB, they're also not unique.
llvm-svn: 102960
2010-05-03 21:38:11 +00:00
Nick Lewycky
e92cfd5ebc
Fix function prototype mismatch in LLVMUnionType(). Fixes PR7019.
...
llvm-svn: 102959
2010-05-03 21:36:51 +00:00
Kevin Enderby
ce7a24a57f
Changed llvm-mc to use the same suffixes with floating point compare
...
instructions as the Mac OS X darwin assembler. Some of which like 'fcoml'
assembled to different opcodes. While some of the suffixes were just different.
llvm-svn: 102958
2010-05-03 21:31:40 +00:00
Kevin Enderby
be2804f752
Fixed the encoding of two of the X86 movq instuctions. The Move quadword from
...
mm to mm/m64 and the Move quadword from xmm2/mem64 to xmm1 had the incorrect
encodings.
llvm-svn: 102952
2010-05-03 21:03:31 +00:00
Kevin Enderby
c1eeb061e7
Fixed the encoding of the x86 push instructions. Using a 32-bit immediate value
...
caused the a pushl instruction to be incorrectly encoding using only two bytes
of immediate, causing the following 2 instruction bytes to be part of the 32-bit
immediate value. Also fixed the one byte form of push to be used when the
immediate would fit in a signed extended byte. Lastly changed the names to not
include the 32 of PUSH32 since they actually push the size of the stack pointer.
llvm-svn: 102951
2010-05-03 20:45:05 +00:00
Bill Wendling
61fab275c0
Testcase for r102947.
...
llvm-svn: 102948
2010-05-03 20:39:35 +00:00
Dan Gohman
66c6519877
Silence warnings about -1 being converted to an unsigned value.
...
Also, pass true for isSigned even when creating constants for unsigned
comparisons, because the point is to create an all-ones constant,
rather than UINT64_MAX, even for integers wider than 64 bits.
llvm-svn: 102946
2010-05-03 20:23:47 +00:00
Eric Christopher
3496e7c880
Add an option, defaulting to off, to disable the sse domain crossing opts.
...
llvm-svn: 102941
2010-05-03 19:54:02 +00:00
Devang Patel
fa560fdfc1
Check for side effects before splitting loop.
...
Patch by Jakub Staszak!
llvm-svn: 102928
2010-05-03 18:06:58 +00:00
Dan Gohman
51faf74c7d
Use isTrueWhenEqual and isFalseWhenEqual instead of assuming that
...
SimplifyICmpOperands will simplify such cases to EQ or NE. This makes
the correcntess of the code independent on SimplifyICmpOperands doing
certain simplifications.
llvm-svn: 102927
2010-05-03 18:00:24 +00:00
Dan Gohman
b4fdc7ea81
In ScalarEvolution::print, don't bother printing out the SCEVs for
...
comparison instructions, since they aren't interesting, despite having
integer result types.
llvm-svn: 102925
2010-05-03 17:03:23 +00:00
Dan Gohman
043875bc90
In SimplifyICmpOperands, avoid needlessly swapping the operands in the
...
case where both are addrecs in unrelated loops.
llvm-svn: 102924
2010-05-03 17:00:11 +00:00
Dan Gohman
02c26ed601
Factor out the new <= and >= analysis code into SimplifyICmpOperands.
...
llvm-svn: 102922
2010-05-03 16:35:17 +00:00
Dan Gohman
85561664d5
Update this comment to note its relationship with the "happens-before"
...
concept in the proposed memory model changes.
llvm-svn: 102911
2010-05-03 14:59:34 +00:00
Dan Gohman
62ea5f981d
Delete this comment. The behavior of struct loads and stores with
...
respect to padding bytes isn't something that the dependence text
needs to spell out.
llvm-svn: 102910
2010-05-03 14:58:14 +00:00
Dan Gohman
cb5781826c
Describe invoke instruction dependencies. Generalize the text for
...
terminator instructions so that it applies to all terminators with
multiple successors, including invoke.
llvm-svn: 102909
2010-05-03 14:55:22 +00:00
Dan Gohman
55e93b2802
Say "operations" instead of "instructions", as nsw can be applied to
...
constant expressions as well as instructions.
llvm-svn: 102908
2010-05-03 14:51:43 +00:00
Dan Gohman
15cb983f55
Fix a bug which prevented tail merging of return instructions in
...
beneficial cases. See the changes in test/CodeGen/X86/tail-opts.ll and
test/CodeGen/ARM/ifcvt2.ll for details.
The fix is to change HashEndOfMBB to hash at most one instruction,
instead of trying to apply heuristics about when it will be profitable to
consider more than one instruction. The regular tail-merging heuristics
are already prepared to handle the same cases, and they're more precise.
Also, make test/CodeGen/ARM/ifcvt5.ll and
test/CodeGen/Thumb2/thumb2-branch.ll slightly more complex so that they
continue to test what they're intended to test.
And, this eliminates the problem in
test/CodeGen/Thumb2/2009-10-15-ITBlockBranch.ll, the testcase from
PR5204. Update it accordingly.
llvm-svn: 102907
2010-05-03 14:35:47 +00:00
Dan Gohman
4f9dc00cec
Add a README entry.
...
llvm-svn: 102906
2010-05-03 14:31:00 +00:00
Duncan Sands
153ad3b903
Remove the -enable-sjlj-eh option, which doesn't do anything.
...
Remove the -enable-eh option which is only used by the JIT,
and replace it with -jit-enable-eh.
llvm-svn: 102865
2010-05-02 15:36:26 +00:00
Chris Lattner
1452a149f0
fix some inconsistent line endings, patch by Jakub Staszak!
...
llvm-svn: 102852
2010-05-01 17:36:49 +00:00
Chris Lattner
afaee8e110
revert r102831. We already delete dead readonly calls in
...
other places, killing a valid transformation is not the right
answer.
llvm-svn: 102850
2010-05-01 17:19:38 +00:00
Dale Johannesen
a8f83a5f1b
Don't count debug info as instructions. This was
...
preventing the emission of the NOP on Darwin for a
function with no actual code. From timberwolfmc
with TEST=optllcdbg.
llvm-svn: 102843
2010-05-01 16:41:11 +00:00
David Chisnall
52a91e993b
Added a variant of InlineCostAnalyzer::getInlineCost() that takes the called function as an explicit argument, for use when inlining function pointers.
...
llvm-svn: 102841
2010-05-01 15:47:41 +00:00
Anton Korobeynikov
a3726088fa
Insert ANY_EXTEND node instead of invalid truncate during DAG Combining (X & 1),
...
when needed. This fixes PR7001
llvm-svn: 102838
2010-05-01 12:52:34 +00:00
Anton Korobeynikov
f31181a0cc
Do folding for indirect branches, where possible
...
llvm-svn: 102836
2010-05-01 12:28:21 +00:00
Anton Korobeynikov
9b724bd446
Implement indirect branches on MSP430
...
llvm-svn: 102835
2010-05-01 12:04:32 +00:00
Anton Korobeynikov
7a84875b09
Long branch target oparands are not pc-rel.
...
This should fix PR6603.
llvm-svn: 102834
2010-05-01 12:04:22 +00:00
Owen Anderson
443d813b45
Disable the call-deletion transformation introduced in r86975. Without
...
halting analysis, it is illegal to delete a call to a read-only function.
The correct solution is almost certainly to add a "must halt" attribute and
only allow deletions in its presence.
XFAIL the relevant testcase for now.
llvm-svn: 102831
2010-05-01 08:34:28 +00:00
Chris Lattner
61a8beaae0
fix PR5009 by making CGSCCPM realize that a call was devirtualized
...
if an indirect call site was removed and a direct one was added, not
just if an indirect call site was modified to be direct.
llvm-svn: 102830
2010-05-01 06:38:43 +00:00
Chris Lattner
660cc3ac57
rename test
...
llvm-svn: 102829
2010-05-01 06:34:13 +00:00
Dan Gohman
ada97c52fe
Remove the code for special-casing byval for fast-isel. SelectionDAG
...
handles argument lowering anyway, so there's no need for special
casing here.
llvm-svn: 102828
2010-05-01 02:44:23 +00:00
Dan Gohman
11b3613649
Fix an ancient FIXME.
...
llvm-svn: 102827
2010-05-01 02:43:10 +00:00
Dan Gohman
fb5d6a5d70
Re-disable kill flags, as there is more trouble.
...
llvm-svn: 102826
2010-05-01 01:57:56 +00:00