oota-llvm.git
13 years agoStub out support for Win64-style exceptions. Note that this is merely using
Charles Davis [Fri, 27 May 2011 23:47:32 +0000 (23:47 +0000)]
Stub out support for Win64-style exceptions. Note that this is merely using
the Win64 EH mechanism to implement GCC-style exceptions. LLVM supports
hardly anything else at this point!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132234 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoARM asm parser wasn't able to parse a "mov" instruction while in Thumb
Bruno Cardoso Lopes [Fri, 27 May 2011 23:46:09 +0000 (23:46 +0000)]
ARM asm parser wasn't able to parse a "mov" instruction while in Thumb
mode (only the "mov.w" variant). Now, when parsing "mov" in thumb mode,
default to the Thumb 1 versions/encodings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132233 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIt looks like 132187 might have broken the llvm-gcc bootstrap. Revert while I check.
Rafael Espindola [Fri, 27 May 2011 23:36:02 +0000 (23:36 +0000)]
It looks like 132187 might have broken the llvm-gcc bootstrap. Revert while I check.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132230 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoForce a triple to make this test pass on Darwin.
Eli Friedman [Fri, 27 May 2011 23:12:48 +0000 (23:12 +0000)]
Force a triple to make this test pass on Darwin.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132228 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoClean out the 2.9 Release Notes. Mostly limited to What's New in LLVM
Chad Rosier [Fri, 27 May 2011 22:50:46 +0000 (22:50 +0000)]
Clean out the 2.9 Release Notes.  Mostly limited to What's New in LLVM
and enhancements in sub-project status updates.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132227 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a GR32_NOREX_NOSP register class and fix a bug where getMatchingSuperRegClass()
Cameron Zwarich [Fri, 27 May 2011 22:26:04 +0000 (22:26 +0000)]
Add a GR32_NOREX_NOSP register class and fix a bug where getMatchingSuperRegClass()
was saying that the matching superregister class of GR32_NOREX in GR64_NOREX_NOSP
is GR64_NOREX, which drops the NOSP constraint. This fixes PR10032.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132225 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix a regression I recently introduced by removing DwarfRegNum of
Rafael Espindola [Fri, 27 May 2011 22:15:01 +0000 (22:15 +0000)]
Fix a regression I recently introduced by removing DwarfRegNum of
subregisters:

When a value is in a subregister, at least report the location as being
the superregister. We should extend the .td files to encode the bit
range so that we can produce a DW_OP_bit_piece.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132224 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMake size computation less brittle.
Rafael Espindola [Fri, 27 May 2011 22:05:41 +0000 (22:05 +0000)]
Make size computation less brittle.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132222 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd the suffix to the Win64 EH data sections' names if given. Add a test for
Charles Davis [Fri, 27 May 2011 21:38:47 +0000 (21:38 +0000)]
Add the suffix to the Win64 EH data sections' names if given. Add a test for
this. XFAIL'd, because the COFF AsmParser can't handle .section yet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132220 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRefactor getActionType and getTypeToTransformTo ; place all of the 'decision'
Nadav Rotem [Fri, 27 May 2011 21:03:13 +0000 (21:03 +0000)]
Refactor getActionType and getTypeToTransformTo ; place all of the 'decision'
code in one place. Re-apply 131534 and fix the multi-step promotion of integers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132217 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAttempt to preserve debug line info in LICM; as the comment in the code says, it...
Eli Friedman [Fri, 27 May 2011 20:31:51 +0000 (20:31 +0000)]
Attempt to preserve debug line info in LICM; as the comment in the code says, it's hard to pick good line numbers for this transformation, but something is better than nothing.

rdar://9143729

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132215 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTypo is test case
Chad Rosier [Fri, 27 May 2011 20:16:57 +0000 (20:16 +0000)]
Typo is test case

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132214 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMake room for register allocation to improve.
Jakob Stoklund Olesen [Fri, 27 May 2011 20:15:06 +0000 (20:15 +0000)]
Make room for register allocation to improve.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132213 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd change of crc32 intrinsic to release notes
Chad Rosier [Fri, 27 May 2011 20:13:10 +0000 (20:13 +0000)]
Add change of crc32 intrinsic to release notes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132212 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDon't use movw / movt for iOS static codegen for now to workaround some tools issues...
Evan Cheng [Fri, 27 May 2011 20:11:27 +0000 (20:11 +0000)]
Don't use movw / movt for iOS static codegen for now to workaround some tools issues. rdar://9514789

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132211 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDelete a test that is no longer relevant.
Jakob Stoklund Olesen [Fri, 27 May 2011 20:02:42 +0000 (20:02 +0000)]
Delete a test that is no longer relevant.

According to PR2536, the old spiller had trouble with the IMPLICIT_DEF in this
code:

  %reg1028<def> = MOV16rm %reg0, 1, %reg0, <ga:g_5>, Mem:LD(2,2) [g_5 + 0]
  %reg1039<def> = IMPLICIT_DEF
  %reg1038<def> = INSERT_SUBREG %reg1039, %reg1028, 2
  %reg1025<def> = AND32ri %reg1038, 65534, %%EFLAGS<imp-def>

However, today we emit a zero-extending load instead:

  %vreg10<def> = MOVZX32rm16 %noreg, 1, %noreg, <ga:@g_5>, %noreg; %mem:LD2[@g_5] GR32:%vreg10
  %vreg0<def> = AND32ri %vreg10, 65534, %%EFLAGS<imp-def,dead>; %GR32:%vreg0,%vreg10

This makes the test pointless since it no longer creates the spiller hazard.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132210 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCRC32 intrinsics were renamed at revision 132163. This submission
Chad Rosier [Fri, 27 May 2011 19:38:10 +0000 (19:38 +0000)]
CRC32 intrinsics were renamed at revision 132163.  This submission
fixes aliasing issues with the old and new names as well as adds test
cases for the auto-upgrader.
Fixes rdar 9472944.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132207 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoKeep this simple. Use DIType to get signness and size of a type. Based on size, selec...
Devang Patel [Fri, 27 May 2011 19:13:26 +0000 (19:13 +0000)]
Keep this simple. Use DIType to get signness and size of a type. Based on size, select appropraite form.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132206 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a parameter to the Win64 EH section getters to get a section with a
Charles Davis [Fri, 27 May 2011 19:09:24 +0000 (19:09 +0000)]
Add a parameter to the Win64 EH section getters to get a section with a
suffix (e.g. .xdata$myfunc). The suffix part isn't implemented yet, but
I'll get to it in the next patch.

Fix up all callers of the affected functions. Make them pass said suffix to
the function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132205 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd iOS test
Evan Cheng [Fri, 27 May 2011 19:04:21 +0000 (19:04 +0000)]
Add iOS test

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132203 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUpdate this comment.
Dan Gohman [Fri, 27 May 2011 18:42:33 +0000 (18:42 +0000)]
Update this comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132202 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDon't sink or hoist debug info instrinsics; it isn't useful. This also prevents...
Eli Friedman [Fri, 27 May 2011 18:37:52 +0000 (18:37 +0000)]
Don't sink or hoist debug info instrinsics; it isn't useful.  This also prevents LICM sinking from erasing debug intrinsics which don't dominate any exit block of the loop.

rdar://9143943 .

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132201 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix the inliner to maintain the current de facto invoke semantics:
John McCall [Fri, 27 May 2011 18:34:38 +0000 (18:34 +0000)]
Fix the inliner to maintain the current de facto invoke semantics:
  - the selector for the landing pad must provide all available information
    about the handlers, filters, and cleanups within that landing pad
  - calls to _Unwind_Resume must be converted to branches to the enclosing
    lpad so as to avoid re-entering the unwinder when the lpad claimed it
    was going to handle the exception in some way
This is quite specific to libUnwind-based unwinding.  In an effort to not
interfere too badly with other unwinders, and with existing hacks in frontends,
this only triggers on _Unwind_Resume (not _Unwind_Resume_or_Rethrow) and does
nothing with selectors if it cannot find a selector call for either lpad.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132200 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDelete MethodBodies that only filtered reserved registers.
Jakob Stoklund Olesen [Fri, 27 May 2011 18:27:13 +0000 (18:27 +0000)]
Delete MethodBodies that only filtered reserved registers.

The register allocators know to filter reserved registers from the allocation
orders, so we don't need all of this boilerplate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132199 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoHandle signed types gracefully.
Devang Patel [Fri, 27 May 2011 18:15:52 +0000 (18:15 +0000)]
Handle signed types gracefully.
This fixes regressions reported by buildbots as a fallout of r132193.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132197 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAnd fix the test in r132194.
Eli Friedman [Fri, 27 May 2011 18:14:28 +0000 (18:14 +0000)]
And fix the test in r132194.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132196 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoOops, wasn't intending to commit this. Partial revert of r132194.
Eli Friedman [Fri, 27 May 2011 18:04:04 +0000 (18:04 +0000)]
Oops, wasn't intending to commit this.  Partial revert of r132194.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132195 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix a silly mistake (which trips over an assertion) in r132099. rdar://9515076
Eli Friedman [Fri, 27 May 2011 18:02:04 +0000 (18:02 +0000)]
Fix a silly mistake (which trips over an assertion) in r132099.  rdar://9515076

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132194 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSelect DW_AT_const_value size based on variable size.
Devang Patel [Fri, 27 May 2011 16:45:18 +0000 (16:45 +0000)]
Select DW_AT_const_value size based on variable size.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132193 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove DwarfRegNum from the individual bits of the condition register.
Rafael Espindola [Fri, 27 May 2011 16:15:27 +0000 (16:15 +0000)]
Remove DwarfRegNum from the individual bits of the condition register.
These should be DW_OP_bit_piece of CR (64).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132192 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove DwarfRegNum from CARRY. I should be encoded with DW_OP_bit_piece.
Rafael Espindola [Fri, 27 May 2011 16:01:08 +0000 (16:01 +0000)]
Remove DwarfRegNum from CARRY. I should be encoded with DW_OP_bit_piece.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132190 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAssorted fixes for Win64 EH unwind info emission:
Charles Davis [Fri, 27 May 2011 15:10:25 +0000 (15:10 +0000)]
Assorted fixes for Win64 EH unwind info emission:
- Flip order of bitfields. This gets our output matching GAS.
- Handle case where the end of the prolog wasn't specified.
- If the resulting unwind info struct is less than 8 bytes, pad to 8 bytes.

Add a test for the latter two.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132188 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove dwarf numbers from subregs. We should use DW_OP_bit_piece to
Rafael Espindola [Fri, 27 May 2011 15:08:24 +0000 (15:08 +0000)]
Remove dwarf numbers from subregs. We should use DW_OP_bit_piece to
refer to them.

I tested this with both check-all and the gdb testsuite.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132187 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoInstCombine: Make switch folding with equality compares more aggressive by trying...
Benjamin Kramer [Fri, 27 May 2011 13:00:16 +0000 (13:00 +0000)]
InstCombine: Make switch folding with equality compares more aggressive by trying instsimplify on the arm where we know the compared value.

Stuff like "x == y ? y : x&y" now folds into "x&y".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132185 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix PR10029 - VerifyCoalescing failure on patterns_dfa.c of 445.gobmk.
Cameron Zwarich [Fri, 27 May 2011 05:04:51 +0000 (05:04 +0000)]
Fix PR10029 - VerifyCoalescing failure on patterns_dfa.c of 445.gobmk.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132181 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a test for Win64 EH unwind information emission.
Charles Davis [Fri, 27 May 2011 03:54:43 +0000 (03:54 +0000)]
Add a test for Win64 EH unwind information emission.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132180 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMake the branch encoding for tBcc more obvious that it's a 4-byte opcode
Eric Christopher [Fri, 27 May 2011 03:50:53 +0000 (03:50 +0000)]
Make the branch encoding for tBcc more obvious that it's a 4-byte opcode
followed by a conditional and imm8.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132179 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix comment.
Eric Christopher [Fri, 27 May 2011 03:46:51 +0000 (03:46 +0000)]
Fix comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132178 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoStart keeping track of where the various unwind instructions are in the prolog.
Charles Davis [Fri, 27 May 2011 03:25:01 +0000 (03:25 +0000)]
Start keeping track of where the various unwind instructions are in the prolog.
Use them to calculate the offset inside the prolog. Emit this value when
emitting the unwind codes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132177 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd missing break statements. Align UNWIND_INFO and RUNTIME_FUNCTION structs
Charles Davis [Fri, 27 May 2011 02:43:19 +0000 (02:43 +0000)]
Add missing break statements. Align UNWIND_INFO and RUNTIME_FUNCTION structs
to 4 bytes.

I'm surprised no one caught the missing break statements.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132176 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMy attempt at fixing the leak reported by the valgrind buildbots. Valgrind will
Charles Davis [Fri, 27 May 2011 02:01:08 +0000 (02:01 +0000)]
My attempt at fixing the leak reported by the valgrind buildbots. Valgrind will
still report leaks, but they're spurious now. Valgrind cannot peer into
std::vector objects--or any dynamic array, for that matter--because it doesn't
know how big the array is.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132174 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix inverted conditional in SaveReg and SaveXMM. Err when the frame pointer is
Charles Davis [Fri, 27 May 2011 01:42:17 +0000 (01:42 +0000)]
Fix inverted conditional in SaveReg and SaveXMM. Err when the frame pointer is
already defined, and err when the PushMachFrame operation isn't the first
operation (if specified at all).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132173 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoOne more debug line number miss in instcombine (although the code in question isn...
Eli Friedman [Fri, 27 May 2011 01:00:36 +0000 (01:00 +0000)]
One more debug line number miss in instcombine (although the code in question isn't actually in instcombine).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132170 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix copy+pastos.
Dan Gohman [Fri, 27 May 2011 00:36:31 +0000 (00:36 +0000)]
Fix copy+pastos.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132168 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFinal step of instcombine debuginfo; switch a couple more places over to InsertNewIns...
Eli Friedman [Fri, 27 May 2011 00:19:40 +0000 (00:19 +0000)]
Final step of instcombine debuginfo; switch a couple more places over to InsertNewInstWith, and use setDebugLoc for the cases which can't be easily handled by the automated mechanisms.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132167 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix warning about || and && without explicit grouping.
Chandler Carruth [Thu, 26 May 2011 23:37:58 +0000 (23:37 +0000)]
Fix warning about || and && without explicit grouping.

This looks like it flagged an actual bug. Devang, please review. I added
the parentheses that change behavior, but make the behavior more closely
match commit log's intent.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132165 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDo not insert anything after terminator.
Devang Patel [Thu, 26 May 2011 23:16:48 +0000 (23:16 +0000)]
Do not insert anything after terminator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132164 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRenamed llvm.x86.sse42.crc32 intrinsics; crc64 doesn't exist.
Chad Rosier [Thu, 26 May 2011 23:13:19 +0000 (23:13 +0000)]
Renamed llvm.x86.sse42.crc32 intrinsics; crc64 doesn't exist.
crc32.[8|16|32] have been renamed to .crc32.32.[8|16|32] and
crc64.[8|16|32] have been renamed to .crc32.64.[8|64].

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132163 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoComment cleanup.
Eric Christopher [Thu, 26 May 2011 22:54:27 +0000 (22:54 +0000)]
Comment cleanup.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132162 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDo not move DBG_VALUE in middle of PHI nodes.
Devang Patel [Thu, 26 May 2011 22:43:14 +0000 (22:43 +0000)]
Do not move DBG_VALUE in middle of PHI nodes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132161 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIf llvm.dbg.value and the value instruction it refers to are far apart then iSel...
Devang Patel [Thu, 26 May 2011 21:51:06 +0000 (21:51 +0000)]
If llvm.dbg.value and the value instruction it refers to are far apart then iSel may not be able to find corresponding Node for llvm.dbg.value during DAG construction. Make iSel's life easier by removing this distance between llvm.dbg.value and its value instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132151 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd comment.
Devang Patel [Thu, 26 May 2011 21:49:28 +0000 (21:49 +0000)]
Add comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132149 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDuring branch folding avoid inserting redundant DBG_VALUE machine instructions.
Devang Patel [Thu, 26 May 2011 21:47:59 +0000 (21:47 +0000)]
During branch folding avoid inserting redundant DBG_VALUE machine instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132148 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUse MachineFrameInfo::hasCalls instead of MipsFunctionInfo::hasCall to check if
Akira Hatanaka [Thu, 26 May 2011 20:30:31 +0000 (20:30 +0000)]
Use MachineFrameInfo::hasCalls instead of MipsFunctionInfo::hasCall to check if
a function has any function calls.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132140 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix some dwarf register numbers.
Rafael Espindola [Thu, 26 May 2011 19:25:47 +0000 (19:25 +0000)]
Fix some dwarf register numbers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132136 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMake few ExecutionEngine tests XFAIL for ARM, since ExecutionEngine is broken for...
Galina Kistanova [Thu, 26 May 2011 19:17:14 +0000 (19:17 +0000)]
Make few ExecutionEngine tests XFAIL for ARM, since ExecutionEngine is broken for ARM, please remove the following XFAIL when it will be fixed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132135 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix LTO builds with xcode 4.
Rafael Espindola [Thu, 26 May 2011 18:59:54 +0000 (18:59 +0000)]
Fix LTO builds with xcode 4.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132132 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd support for C++ exception handling.
Akira Hatanaka [Thu, 26 May 2011 18:59:03 +0000 (18:59 +0000)]
Add support for C++ exception handling.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132131 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoReorganize these slightly according to operand type.
Eric Christopher [Thu, 26 May 2011 18:22:26 +0000 (18:22 +0000)]
Reorganize these slightly according to operand type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132128 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSet HasSetDirective to true.
Akira Hatanaka [Thu, 26 May 2011 18:16:18 +0000 (18:16 +0000)]
Set HasSetDirective to true.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132127 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix test on Windows.
Eli Friedman [Thu, 26 May 2011 18:00:32 +0000 (18:00 +0000)]
Fix test on Windows.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132126 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert r132111. I built Release (without Asserts), so I didn't know about the
Charles Davis [Thu, 26 May 2011 05:35:55 +0000 (05:35 +0000)]
Revert r132111. I built Release (without Asserts), so I didn't know about the
assert that prevented setting alignment on section creation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132113 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix definitions of UOP_SaveXMM128, UOP_SaveXMM128Big, and UOP_PushMachFrame
Charles Davis [Thu, 26 May 2011 05:24:15 +0000 (05:24 +0000)]
Fix definitions of UOP_SaveXMM128, UOP_SaveXMM128Big, and UOP_PushMachFrame
to match Microsoft's definitions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132112 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAlign Win64 EH Table sections to 4 bytes.
Charles Davis [Thu, 26 May 2011 05:19:54 +0000 (05:19 +0000)]
Align Win64 EH Table sections to 4 bytes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132111 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a test for the chained directives that I forgot last time.
Charles Davis [Thu, 26 May 2011 05:17:43 +0000 (05:17 +0000)]
Add a test for the chained directives that I forgot last time.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132110 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix MSVC warning regarding mkdir function usage.
Francois Pichet [Thu, 26 May 2011 04:55:20 +0000 (04:55 +0000)]
Fix MSVC warning regarding mkdir function usage.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132109 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoReverting 132105: it broke some LLVM-GCC DejaGNU tests.
Stuart Hastings [Thu, 26 May 2011 04:09:49 +0000 (04:09 +0000)]
Reverting 132105: it broke some LLVM-GCC DejaGNU tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132108 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMark tBX as an indirect branch rather than a return.
Cameron Zwarich [Thu, 26 May 2011 03:41:12 +0000 (03:41 +0000)]
Mark tBX as an indirect branch rather than a return.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132107 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTest .seh_startchained and .seh_endchained parsing.
Charles Davis [Thu, 26 May 2011 02:45:47 +0000 (02:45 +0000)]
Test .seh_startchained and .seh_endchained parsing.

Rework how the MCWin64EHUnwindInfo instances are stored. Fix issues with
chained unwind areas exposed by the test that were related to this.

The ChainedParent field had the wrong address, because when the chained unwind
info was added, the addresses shifted around. Now we store the pointers to the
structures, which are now allocated from the MC heap.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132106 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCorrectly handle a one-word struct passed byval on x86_64.
Stuart Hastings [Thu, 26 May 2011 02:44:56 +0000 (02:44 +0000)]
Correctly handle a one-word struct passed byval on x86_64.
rdar://problem/6920088

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132105 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoindvars: incremental fixes for -disable-iv-rewrite and testcases.
Andrew Trick [Thu, 26 May 2011 00:46:11 +0000 (00:46 +0000)]
indvars: incremental fixes for -disable-iv-rewrite and testcases.

Use a proper worklist for use-def traversal without holding onto an
iterator. Now that we process all IV uses, we need complete logic for
resusing existing derived IV defs. See HoistStep.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132103 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a RAGreedy::canEvict function.
Jakob Stoklund Olesen [Wed, 25 May 2011 23:58:36 +0000 (23:58 +0000)]
Add a RAGreedy::canEvict function.

This doesn't change functionality (much), but it allows for a more fine-grained
eviction policy. The current policy only compares spill weights, and that is not
always the best thing to do.  Spill weights are designed to serve linear scan,
and they don't consider live range splitting.

Add a mechanism so canEvict() can request that a live range be evicted and
split/spilled. This is to avoid infinite eviction loops.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132101 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRewrite fast-isel integer cast handling to handle more cases, and to be simpler and...
Eli Friedman [Wed, 25 May 2011 23:49:02 +0000 (23:49 +0000)]
Rewrite fast-isel integer cast handling to handle more cases, and to be simpler and more consistent.

The practical effects here are that x86-64 fast-isel can now handle trunc from i8 to i1, and ARM fast-isel can handle many more constructs involving integers narrower than 32 bits (including loads, stores, and many integer casts).

rdar://9437928 .

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132099 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDefine WeakRefDirective.
Akira Hatanaka [Wed, 25 May 2011 23:30:30 +0000 (23:30 +0000)]
Define WeakRefDirective.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132098 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPR9998: ashr exact %x, 31 is not equivalent to sdiv exact %x, -2147483648.
Eli Friedman [Wed, 25 May 2011 23:26:20 +0000 (23:26 +0000)]
PR9998: ashr exact %x, 31 is not equivalent to sdiv exact %x, -2147483648.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132097 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove unused statistical counter.
Devang Patel [Wed, 25 May 2011 21:55:40 +0000 (21:55 +0000)]
Remove unused statistical counter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132087 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoConvert tBX_CALL / tBXr9_CALL to actual pseudoinstructions.
Cameron Zwarich [Wed, 25 May 2011 21:53:50 +0000 (21:53 +0000)]
Convert tBX_CALL / tBXr9_CALL to actual pseudoinstructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132086 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd tests for .seh_setframe and .seh_handlerdata parsing. Fix issues with
Charles Davis [Wed, 25 May 2011 21:43:45 +0000 (21:43 +0000)]
Add tests for .seh_setframe and .seh_handlerdata parsing. Fix issues with
them.

I had to add a special SwitchSectionNoChange method to MCStreamer just for
.seh_handlerdata. If this isn't OK, please let me know, and I'll find some
other way to fix .seh_handlerdata streaming.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132084 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoClean up comment a bit.
Eric Christopher [Wed, 25 May 2011 21:19:19 +0000 (21:19 +0000)]
Clean up comment a bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132083 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImplement the 'm' modifier. Note that it only works for memory operands.
Eric Christopher [Wed, 25 May 2011 20:51:58 +0000 (20:51 +0000)]
Implement the 'm' modifier. Note that it only works for memory operands.

Part of rdar://9119939

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132081 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove MipsTargetLowering::LowerFP_TO_SINT. Patterns for fp_to_sint have already
Akira Hatanaka [Wed, 25 May 2011 20:08:05 +0000 (20:08 +0000)]
Remove MipsTargetLowering::LowerFP_TO_SINT. Patterns for fp_to_sint have already
been defined in MipsInstrFPU.td.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132076 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCustom-lower FCOPYSIGN nodes.
Akira Hatanaka [Wed, 25 May 2011 19:32:07 +0000 (19:32 +0000)]
Custom-lower FCOPYSIGN nodes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132074 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPrepare ARMFastISel::SelectSIToFP for getRegForValue returning registers for i8 and...
Eli Friedman [Wed, 25 May 2011 19:09:45 +0000 (19:09 +0000)]
Prepare ARMFastISel::SelectSIToFP for getRegForValue returning registers for i8 and i16 values.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132073 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSimplify r132022 based on Cameron's feedback.
Evan Cheng [Wed, 25 May 2011 18:17:13 +0000 (18:17 +0000)]
Simplify r132022 based on Cameron's feedback.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132071 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUpdate MaxCallFrameSize regardless of the relocation model selected.
Akira Hatanaka [Wed, 25 May 2011 18:08:32 +0000 (18:08 +0000)]
Update MaxCallFrameSize regardless of the relocation model selected.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132070 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoChange initial value of MaxCallFrameSize. MipsFI::getMaxCallFrameSize() should
Akira Hatanaka [Wed, 25 May 2011 17:52:48 +0000 (17:52 +0000)]
Change initial value of MaxCallFrameSize. MipsFI::getMaxCallFrameSize() should
return 0 if there are no function calls made.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132065 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCoding style fixes. Added comments.
Akira Hatanaka [Wed, 25 May 2011 17:32:06 +0000 (17:32 +0000)]
Coding style fixes. Added comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132063 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove unused OpcodeMask enumerator.
Francois Pichet [Wed, 25 May 2011 17:02:53 +0000 (17:02 +0000)]
Remove unused OpcodeMask enumerator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132062 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix 3 MSVC warnings:
Francois Pichet [Wed, 25 May 2011 16:32:33 +0000 (16:32 +0000)]
Fix 3 MSVC warnings:
'void (__cdecl *)()' differs in parameter lists from 'void (__cdecl *)(void)'

atexit really expects a "void f(void)" function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132061 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix MSVC warning: "is out of range for enum constant"
Francois Pichet [Wed, 25 May 2011 15:58:10 +0000 (15:58 +0000)]
Fix MSVC warning: "is out of range for enum constant"
MSVC doesn't support 64 bit enum.
OpcodeMask is not used anywhere in the code base.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132057 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix some issues Duncan found in the previous commit.
Rafael Espindola [Wed, 25 May 2011 12:54:08 +0000 (12:54 +0000)]
Fix some issues Duncan found in the previous commit.

I kept the reference to the ABI since that is the common case. The
-fno-asynchronous-unwind-tables option is a user controlled way of breaking
the ABI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132053 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix warning in the CMake build about redefining LLVM_PATH_XDOT_PY by making sure...
Frits van Bommel [Wed, 25 May 2011 06:32:23 +0000 (06:32 +0000)]
Fix warning in the CMake build about redefining LLVM_PATH_XDOT_PY by making sure both definitions are identical. This used to produce warnings like

In file included from .../llvm/trunk/tools/lto/LTOCodeGenerator.cpp:45:
In file included from .../llvm/trunk/include/llvm/Support/system_error.h:225:
.../include/llvm/Config/config.h:591:9: warning: 'LLVM_PATH_XDOT_PY' macro redefined
#define LLVM_PATH_XDOT_PY ".../bin/xdot.py"
        ^
.../include/llvm/Config/llvm-config.h:98:9: note: previous definition is here
#define LLVM_PATH_XDOT_PY ""
        ^
1 warning generated.

(Paths edited for clarity)

Note: This only affected people who had xdot.py installed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132050 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[tablegen] A couple of changes to ClangDiagnosticEmmitter.
Argyrios Kyrtzidis [Wed, 25 May 2011 05:04:22 +0000 (05:04 +0000)]
[tablegen] A couple of changes to ClangDiagnosticEmmitter.

-Emit an empty warning option as string ("") instead of 0.
-For diagnostic names also emit the size of the string.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132046 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd tests for .seh_savereg and .seh_savexmm parsing. Once again, fix the
Charles Davis [Wed, 25 May 2011 04:51:25 +0000 (04:51 +0000)]
Add tests for .seh_savereg and .seh_savexmm parsing. Once again, fix the
buggy methods that parse these directives.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132045 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRestore an accidentally removed comment.
Cameron Zwarich [Wed, 25 May 2011 04:48:17 +0000 (04:48 +0000)]
Restore an accidentally removed comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132044 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMove some code to a more logical place.
Cameron Zwarich [Wed, 25 May 2011 04:45:29 +0000 (04:45 +0000)]
Move some code to a more logical place.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132043 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMake tTAILJMPr/tTAILJMPrND emit a tBX without a preceding MOV of PC to LR. This
Cameron Zwarich [Wed, 25 May 2011 04:45:27 +0000 (04:45 +0000)]
Make tTAILJMPr/tTAILJMPrND emit a tBX without a preceding MOV of PC to LR. This
fixes <rdar://problem/9495913>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132042 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoChange the order of tBX's operands so that the predicate operands come after the
Cameron Zwarich [Wed, 25 May 2011 04:45:23 +0000 (04:45 +0000)]
Change the order of tBX's operands so that the predicate operands come after the
target register, matching BX. I filed this bug because I was confused at first:

PR10007 - ARM branch instructions have inconsistent predicate operand placement
<http://llvm.org/bugs/show_bug.cgi?id=10007>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132041 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename tBX_Rm to tBX.
Cameron Zwarich [Wed, 25 May 2011 04:45:20 +0000 (04:45 +0000)]
Rename tBX_Rm to tBX.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132040 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename the existing tBX/tBXr9 instructions to tBX_CALL/tBXr9_CALL to better
Cameron Zwarich [Wed, 25 May 2011 04:45:14 +0000 (04:45 +0000)]
Rename the existing tBX/tBXr9 instructions to tBX_CALL/tBXr9_CALL to better
reflect their actual meaning and match the ARM instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132039 91177308-0d34-0410-b5e6-96231b3b80d8