Eric Christopher
6f3661fdcd
Speculatively revert 132758 and 132768 to try to fix the Windows buildbots.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132777 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-09 16:03:19 +00:00
Eric Christopher
622ab4ab50
Recommit r132764 since it didn't cause the windows buildbot failures.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132776 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-09 15:39:01 +00:00
Rafael Espindola
d896d41851
Improve the handling of available_externally and llvm.global_ctors.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132775 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-09 14:38:09 +00:00
Duncan Sands
9fe88973be
Enable printf() to iprintf() optimization for the TCE target.
...
Patch by Pekka Jaaskelainen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132774 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-09 11:11:45 +00:00
Chris Lattner
78a113cbff
add another sandybridge alias.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132772 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-09 06:38:17 +00:00
Eric Christopher
7b3f72ff81
Temporarily revert 132764 to see if it fixes the Windows buildbot.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132771 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-09 06:29:54 +00:00
Eric Christopher
c3a627de3f
Have the JIT tutorial use IRBuilder for the IR.
...
Patch by Jake Waskett!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132770 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-09 05:58:50 +00:00
Akira Hatanaka
c53cc48ca9
Initial support for inline asm memory operand constraints.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132768 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-09 03:31:05 +00:00
Cameron Zwarich
c4f78208b3
Remove a vacuous condition.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132767 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-09 01:52:44 +00:00
Cameron Zwarich
96cc1d0dfb
Fix PR10104 by adding a bounds check on a vector element access check. It was
...
assuming that all offsets are legal vector accesses, and thus trying to access
the float member of { <2 x float>, float } as the 3rd element of the first
member.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132766 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-09 01:45:33 +00:00
Eric Christopher
efe12907dd
If the alignment of the byval argument is greater than the alignment
...
of the frame then increase the maximum alignment of the frame to
match.
Fixes PR6965
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132764 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-09 00:15:19 +00:00
Eric Christopher
471e422480
Add a parameter to CCState so that it can access the MachineFunction.
...
No functional change.
Part of PR6965
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132763 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-08 23:55:35 +00:00
Cameron Zwarich
0398d6135d
Fix an assymmetry between ConvertScalar_ExtractValue and ConvertScalar_InsertValue. The
...
former was using the size of the entire alloca, whereas the latter was correctly using
the allocated size of the immediate type being converted (which may differ from the size
of the alloca). This fixes PR10082.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132759 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-08 22:08:31 +00:00
Akira Hatanaka
69b9044c66
Fix bug in lowering of DYNAMIC_STACKALLOC nodes. The correct offset of the
...
dynamically allocated stack area was not set.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132758 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-08 21:28:09 +00:00
Akira Hatanaka
3d21c2495d
Reorganize code in MipsTargetLowering::LowerCall to improve readability.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132756 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-08 17:39:33 +00:00
Andrew Trick
8ae3edacfa
Remove a temporary test case probe in CheckForLiveRegDef.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132751 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-08 15:19:49 +00:00
Rafael Espindola
d69f85eb41
Fix count.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132749 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-08 14:23:19 +00:00
Rafael Espindola
0cdca089b2
Count how many phis we are creating.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132748 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-08 14:13:31 +00:00
Cameron Zwarich
aaa5f14d7c
Fix an issue where the two-address conversion pass incorrectly rewrites untied
...
operands to an early clobber register. This fixes <rdar://problem/9566076>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132738 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-07 23:54:00 +00:00
Rafael Espindola
d846e3fb5a
Fix a silly error I introduce in r131951.
...
Fixes PR10095.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132735 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-07 23:26:45 +00:00
Eric Christopher
3f628510d3
Create a new ARM directory for FrontendC tests and use it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132734 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-07 22:20:13 +00:00
Chad Rosier
36a300ac02
Fixed a few illegal paths with llvm_unreachable. Patch by Cameron McInally.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132732 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-07 20:41:31 +00:00
Chad Rosier
7b5c20bbb8
Typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132730 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-07 20:03:13 +00:00
Akira Hatanaka
14487d4f66
Refactor MipsTargetLowering::EmitInstrWithCustomInserter.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132726 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-07 19:28:39 +00:00
Akira Hatanaka
c079ad09f5
Put back removed line.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132725 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-07 19:03:14 +00:00
Akira Hatanaka
0f84382138
Coding style fixes.
...
- Fix indentation.
- Move comments.
- Fit lines in 80 columns.
- Remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132724 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-07 18:58:42 +00:00
Akira Hatanaka
ffe9a7116c
Use tabs to separate opcode and operand strings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132718 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-07 18:16:51 +00:00
Akira Hatanaka
6cd4b4e657
Add comments for wrapper node patterns in MipsInstrInfo.td.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132717 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-07 18:00:14 +00:00
Roman Divacky
be234dabf4
Test that ".byte 1, 2, 3, 4" does the right thing.
...
Requested by nbjoerg!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132716 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-07 17:32:17 +00:00
Roman Divacky
65891533a3
Make EmitIntValue() work properly on big-endian targets.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132715 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-07 17:31:02 +00:00
Stuart Hastings
a0dab9cfdf
Tweak this test for ARM-hosted 'bot.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132711 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-07 15:23:11 +00:00
Lang Hames
d0685b0e28
Switched to DenseMap for allowed sets in PBQP. Reduces total LLC time by 15% on CINT2006 for x86-32.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132707 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-07 06:05:58 +00:00
Nadav Rotem
1e471820b8
Move the legalizer tests to the X86 directory because the test uses the x86
...
codegen. Thanks Galina.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132706 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-07 05:23:58 +00:00
Akira Hatanaka
8464fff30b
Add test case for C++ exception handling and fix the following mistakes in MipsFrameLowering::emitPrologue:
...
- cfi directives are not inserted at the right location or in the right order.
- The source MachineLocation for the cfi directive that changes the cfa register
to $fp should be MachineLocation::VirtualFP.
- A PROLOG_LABEL that marks the beginning of cfi_offset directives for
callee-saved register is emitted even when no callee-saved registers are
saved.
- When a callee-saved double precision register is saved, two cfi_offset
directives, one for each of the paired single precision registers, should be
emitted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132703 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-07 02:17:21 +00:00
Andrew Trick
9d507aec07
Fix a merge bug in preRAsched for handling physreg aliases.
...
I've been sitting on this long enough trying to find a test case. I
think the fix should go in now, but I'll keep working on the test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132701 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-07 00:38:12 +00:00
Andrew Trick
a1099f184d
Fix for setjmp/longjmp exception handling on ARM. setjmp clobbers CPSR.
...
rdar://problem/9556069
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132699 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-07 00:08:49 +00:00
Jakob Stoklund Olesen
b3e705f889
Simplify local live range splitting's safeguard to fix PR10070.
...
When local live range splitting creates a live range with the same
number of instructions as the old range, mark it as RS_Local. When such
a range is seen again, require that it be split in a way that reduces
the number of instructions. That guarantees we are making progress while
still being able to perform 3 -> 2+3 splits as required by PR10070.
This also means that the PrevSlot map is no longer needed. This was also
used to estimate new spill weights, but that is no longer necessary
after slotIndexes::insertMachineInstrInMaps() got the extra Late
insertion argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132697 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-06 23:55:20 +00:00
Stuart Hastings
f99a4b82a4
Followup to 132458, omit unnecessary stack copy when x87 input is a
...
load. rdar://problem/6373334
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132696 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-06 23:15:58 +00:00
Eli Friedman
be2d1239a4
Add -O1/2/3 to bugpoint, so when you conclude opt -O2 reproduces an issue, you can just run bugpoint -O2. :) My implementation isn't precisely equivalent to what opt does, but as far as I can tell, it's close enough.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132695 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-06 22:45:46 +00:00
Eli Friedman
42d41fda08
We only do always-inlining at -O1; make opt reflect that.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132693 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-06 22:13:27 +00:00
Jakob Stoklund Olesen
a46a100945
Get allocation orders from RegisterClassInfo when possible.
...
Only target-dependent hints require callbacks. The RCI allocation order
has CSR aliases last according to their order of appearance in the
getCalleeSavedRegs list. This can depend on the calling convention.
This way, AllocationOrder::next doesn't have to check for reserved
registers, and CSRs are always allocated last, even with weird calling
conventions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132690 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-06 21:02:04 +00:00
Nadav Rotem
fc3623bc50
Add methods to support the integer-promotion of vector types. Methods to
...
legalize SDNodes such as BUILD_VECTOR, EXTRACT_VECTOR_ELT, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132689 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-06 20:55:56 +00:00
Nick Lewycky
9071ac2797
This directory was missing the dg.exp to cause the tests to run. Some time since
...
it was added, the test has regressed, so XFAIL it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132686 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-06 20:23:00 +00:00
Stuart Hastings
9a9f8f3ba9
Test case for PR10085.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132682 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-06 20:03:22 +00:00
Stuart Hastings
57f1fde7fc
Avoid FGETSIGN of 80-bit types. Fixes PR10085.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132681 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-06 16:44:31 +00:00
Jakob Stoklund Olesen
7c48913af6
Don't try to be clever, just preserve the target's allocation order.
...
The order of registers returned by getCalleeSavedRegs is used to lay out
the fixed stack slots for CSRs. Some targets like their CSRs used from
one end, and some targets want them used from the other end.
When computing an allocation order, simply preserve the relative
ordering of CSRs that the target specifies in its allocation order.
Reordering CSRs would break some targets, ARM in particular.
We still place volatiles before the CSRs, providing slightly better
results with different calling conventions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132680 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-06 16:36:30 +00:00
Eli Friedman
0b4d96baec
PR10077: fix fast-isel of extractvalue of aggregate constants.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132676 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-06 05:46:34 +00:00
Benjamin Kramer
a2898673ac
Harden tests for windows path separators.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132671 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-05 18:20:05 +00:00
Benjamin Kramer
ab5f788f67
Use path API for path concatenation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132668 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-05 14:36:47 +00:00
Rafael Espindola
6536644713
Basic support for macros with explicit arguments.
...
We still don't handle
* default values
* :req
* :vararg
* \()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132656 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-05 02:43:45 +00:00