Devang Patel
9c488376ef
Set DW_AT_APPLE_omit_frame_ptr in endFunction() where MachineFunction is available all the time.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103001 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-04 06:15:30 +00:00
Dan Gohman
acd8cab843
Use the SCEVAddRecExpr::getPostIncExpr utility function instead
...
of doing the same thing manually.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102997 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-04 01:12:27 +00:00
Dan Gohman
c0ed0091dc
Fix a copy+pasto.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102996 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-04 01:11:15 +00:00
Devang Patel
01c5ff6437
Do not ignore debug loc attached with llvm.dbg.declare while collecting debug info used by a module.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102995 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-04 01:05:02 +00:00
Evan Cheng
f1ced259b5
Instruction selection optimizations may have moved the def of a function argument out of the entry block. rdar://7937489
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102993 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-04 00:58:39 +00:00
Kevin Enderby
a0161cd6f8
Fix to r102952. The MOV64toSDrm record in X86Instr64bit.td needed the opcode
...
changed to 0x7E from 0x6E as well as the previous change of RPDI to S3SI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102991 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-04 00:42:46 +00:00
Daniel Dunbar
4f83e73a6d
MC/Matcher: Add support for over-riding the default MatchInstruction function
...
name (for example, to allow targets to interpose the actual MatchInstruction
function).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102987 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-04 00:33:13 +00:00
Daniel Dunbar
31e8e1d085
llvm-mc: Fix case were we would skip a line in the .s file after an instruction
...
match failure.
Also, fixes a few memory leak FIXMEs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102986 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-04 00:33:07 +00:00
Evan Cheng
ba609c88a5
Teach scheduler about REG_SEQUENCE.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102984 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-04 00:22:40 +00:00
Dan Gohman
d622b0b208
Add a polygen rule that reflects the fact that nsw and nuw can be
...
used together in either order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102983 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-04 00:13:24 +00:00
Dan Gohman
2131e2a75f
Re-enable isel kill flags, now that the local allocator is ignoring them.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102981 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-04 00:12:15 +00:00
Jim Grosbach
6e62b4ef14
rdar://7937137 - dbg values not being handled in thumb1 version of
...
eliminateFrameIndex(), leading to llvm_unreachable() assertion failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102980 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-04 00:11:37 +00:00
Dan Gohman
7ae3ac831e
Update one more 2.7 to 2.8.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102978 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 23:52:21 +00:00
Dan Gohman
b44f6c6b6a
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102977 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 23:51:05 +00:00
Jakob Stoklund Olesen
a50fba933c
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102976 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 23:49:20 +00:00
Dan Gohman
1fdc614bee
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102975 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 23:36:34 +00:00
Dale Johannesen
08673d2950
Implement builtin_return_address(x) and builtin_frame_address(x)
...
on PPC for x!=0. 7624113.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102972 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 22:59:34 +00:00
Dan Gohman
1eaac53261
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102971 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 22:44:19 +00:00
Jakob Stoklund Olesen
b98c549d13
Check that subregisters don't have independent values in RemoveCopyByCommutingDef().
...
This fixes PR6941.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102970 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 22:40:32 +00:00
Dan Gohman
d4d01154ef
Fix tests to use fadd, fsub, and fmul, instead of add, sub, and mul,
...
when the type is floating-point.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102969 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 22:36:46 +00:00
Eric Christopher
b4c14aaa50
Reword a comment slightly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102966 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 22:18:49 +00:00
Dan Gohman
deff621abd
Use getConstant instead of getIntegerSCEV. The two are basically the
...
same, now that getConstant has overloads consistent with ConstantInt::get.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102965 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 22:09:21 +00:00
Bill Wendling
cec9c50924
Revert r102948.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102964 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 21:51:21 +00:00
Bob Wilson
857a894781
Remove special case for llvmCore_Embedded project. This is no longer needed
...
since llvmCore is built as part of llvmgcc42 now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102962 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 21:41:24 +00:00
Bob Wilson
ad98f795d0
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102960 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 21:38:11 +00:00
Nick Lewycky
a75586f37e
Fix function prototype mismatch in LLVMUnionType(). Fixes PR7019.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102959 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 21:36:51 +00:00
Kevin Enderby
9d0838fba8
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102958 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 21:31:40 +00:00
Kevin Enderby
eb612347f4
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102952 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 21:03:31 +00:00
Kevin Enderby
3c979b06c0
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102951 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 20:45:05 +00:00
Bill Wendling
5f84c0293f
Testcase for r102947.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102948 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 20:39:35 +00:00
Dan Gohman
f16c6803d7
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102946 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 20:23:47 +00:00
Eric Christopher
0b12348ddf
Add an option, defaulting to off, to disable the sse domain crossing opts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102941 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 19:54:02 +00:00
Devang Patel
86b6f80a4c
Check for side effects before splitting loop.
...
Patch by Jakub Staszak!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102928 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 18:06:58 +00:00
Dan Gohman
34c3e36e63
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102927 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 18:00:24 +00:00
Dan Gohman
a189bae771
In ScalarEvolution::print, don't bother printing out the SCEVs for
...
comparison instructions, since they aren't interesting, despite having
integer result types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102925 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 17:03:23 +00:00
Dan Gohman
3abb69c07f
In SimplifyICmpOperands, avoid needlessly swapping the operands in the
...
case where both are addrecs in unrelated loops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102924 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 17:00:11 +00:00
Dan Gohman
03557dc0ad
Factor out the new <= and >= analysis code into SimplifyICmpOperands.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102922 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 16:35:17 +00:00
Dan Gohman
7c24ff12c4
Update this comment to note its relationship with the "happens-before"
...
concept in the proposed memory model changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102911 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 14:59:34 +00:00
Dan Gohman
45baf4191b
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102910 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 14:58:14 +00:00
Dan Gohman
b532816ac9
Describe invoke instruction dependencies. Generalize the text for
...
terminator instructions so that it applies to all terminators with
multiple successors, including invoke.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102909 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 14:55:22 +00:00
Dan Gohman
855abed3cb
Say "operations" instead of "instructions", as nsw can be applied to
...
constant expressions as well as instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102908 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 14:51:43 +00:00
Dan Gohman
30fc5bbfd1
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102907 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 14:35:47 +00:00
Dan Gohman
3a2a4846a6
Add a README entry.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102906 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 14:31:00 +00:00
Duncan Sands
57b6e9eb6c
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102865 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-02 15:36:26 +00:00
Chris Lattner
241d3fea7a
fix some inconsistent line endings, patch by Jakub Staszak!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102852 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-01 17:36:49 +00:00
Chris Lattner
83f66fe614
revert r102831. We already delete dead readonly calls in
...
other places, killing a valid transformation is not the right
answer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102850 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-01 17:19:38 +00:00
Dale Johannesen
d014761c93
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102843 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-01 16:41:11 +00:00
David Chisnall
752e259058
Added a variant of InlineCostAnalyzer::getInlineCost() that takes the called function as an explicit argument, for use when inlining function pointers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102841 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-01 15:47:41 +00:00
Anton Korobeynikov
17458a786e
Insert ANY_EXTEND node instead of invalid truncate during DAG Combining (X & 1),
...
when needed. This fixes PR7001
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102838 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-01 12:52:34 +00:00
Anton Korobeynikov
1b17614a72
Do folding for indirect branches, where possible
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102836 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-01 12:28:21 +00:00