Jakob Stoklund Olesen
fb206b98bd
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.
llvm-svn: 132210
2011-05-27 20:02:42 +00:00
Chad Rosier
f2b2b472cc
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.
llvm-svn: 132207
2011-05-27 19:38:10 +00:00
Devang Patel
2872ac051d
Keep this simple. Use DIType to get signness and size of a type. Based on size, select appropraite form.
...
llvm-svn: 132206
2011-05-27 19:13:26 +00:00
Charles Davis
f835c87c83
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.
llvm-svn: 132205
2011-05-27 19:09:24 +00:00
Evan Cheng
4192d53d1e
Add iOS test
...
llvm-svn: 132203
2011-05-27 19:04:21 +00:00
Dan Gohman
20949164a3
Update this comment.
...
llvm-svn: 132202
2011-05-27 18:42:33 +00:00
Eli Friedman
1062ba1e1f
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 .
llvm-svn: 132201
2011-05-27 18:37:52 +00:00
John McCall
2f479c4d42
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.
llvm-svn: 132200
2011-05-27 18:34:38 +00:00
Jakob Stoklund Olesen
021b1ff0c7
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.
llvm-svn: 132199
2011-05-27 18:27:13 +00:00
Devang Patel
c0bffe6366
Handle signed types gracefully.
...
This fixes regressions reported by buildbots as a fallout of r132193.
llvm-svn: 132197
2011-05-27 18:15:52 +00:00
Eli Friedman
55343ef7bb
And fix the test in r132194.
...
llvm-svn: 132196
2011-05-27 18:14:28 +00:00
Eli Friedman
17000790d8
Oops, wasn't intending to commit this. Partial revert of r132194.
...
llvm-svn: 132195
2011-05-27 18:04:04 +00:00
Eli Friedman
560532051b
Fix a silly mistake (which trips over an assertion) in r132099. rdar://9515076
...
llvm-svn: 132194
2011-05-27 18:02:04 +00:00
Devang Patel
62a7038a9f
Select DW_AT_const_value size based on variable size.
...
llvm-svn: 132193
2011-05-27 16:45:18 +00:00
Rafael Espindola
c74e8fda1f
Remove DwarfRegNum from the individual bits of the condition register.
...
These should be DW_OP_bit_piece of CR (64).
llvm-svn: 132192
2011-05-27 16:15:27 +00:00
Rafael Espindola
a275f4cfc7
Remove DwarfRegNum from CARRY. I should be encoded with DW_OP_bit_piece.
...
llvm-svn: 132190
2011-05-27 16:01:08 +00:00
Charles Davis
01cde4d080
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.
llvm-svn: 132188
2011-05-27 15:10:25 +00:00
Rafael Espindola
7e68d3bf57
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.
llvm-svn: 132187
2011-05-27 15:08:24 +00:00
Benjamin Kramer
5b491b9d0e
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".
llvm-svn: 132185
2011-05-27 13:00:16 +00:00
Cameron Zwarich
a9c418b1c3
Fix PR10029 - VerifyCoalescing failure on patterns_dfa.c of 445.gobmk.
...
llvm-svn: 132181
2011-05-27 05:04:51 +00:00
Charles Davis
028e424cf3
Add a test for Win64 EH unwind information emission.
...
llvm-svn: 132180
2011-05-27 03:54:43 +00:00
Eric Christopher
0e12efbed1
Make the branch encoding for tBcc more obvious that it's a 4-byte opcode
...
followed by a conditional and imm8.
llvm-svn: 132179
2011-05-27 03:50:53 +00:00
Eric Christopher
cfce589451
Fix comment.
...
llvm-svn: 132178
2011-05-27 03:46:51 +00:00
Charles Davis
5ebea6fc5f
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.
llvm-svn: 132177
2011-05-27 03:25:01 +00:00
Charles Davis
f64d56f9e2
Add missing break statements. Align UNWIND_INFO and RUNTIME_FUNCTION structs
...
to 4 bytes.
I'm surprised no one caught the missing break statements.
llvm-svn: 132176
2011-05-27 02:43:19 +00:00
Charles Davis
823e8a90ce
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.
llvm-svn: 132174
2011-05-27 02:01:08 +00:00
Charles Davis
32b363ded1
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).
llvm-svn: 132173
2011-05-27 01:42:17 +00:00
Eli Friedman
d619bcd565
One more debug line number miss in instcombine (although the code in question isn't actually in instcombine).
...
llvm-svn: 132170
2011-05-27 01:00:36 +00:00
Dan Gohman
0181c67669
Fix copy+pastos.
...
llvm-svn: 132168
2011-05-27 00:36:31 +00:00
Eli Friedman
6937c422a0
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.
...
llvm-svn: 132167
2011-05-27 00:19:40 +00:00
Chandler Carruth
6a41ac0d30
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.
llvm-svn: 132165
2011-05-26 23:37:58 +00:00
Devang Patel
5e3f883ddf
Do not insert anything after terminator.
...
llvm-svn: 132164
2011-05-26 23:16:48 +00:00
Chad Rosier
b87c4a6945
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].
llvm-svn: 132163
2011-05-26 23:13:19 +00:00
Eric Christopher
94fbcd8d81
Comment cleanup.
...
llvm-svn: 132162
2011-05-26 22:54:27 +00:00
Devang Patel
c67e8c5d45
Do not move DBG_VALUE in middle of PHI nodes.
...
llvm-svn: 132161
2011-05-26 22:43:14 +00:00
Devang Patel
52e803e053
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.
...
llvm-svn: 132151
2011-05-26 21:51:06 +00:00
Devang Patel
177dbe2de1
Add comment.
...
llvm-svn: 132149
2011-05-26 21:49:28 +00:00
Devang Patel
e0b7ab9296
During branch folding avoid inserting redundant DBG_VALUE machine instructions.
...
llvm-svn: 132148
2011-05-26 21:47:59 +00:00
Akira Hatanaka
71839b355d
Use MachineFrameInfo::hasCalls instead of MipsFunctionInfo::hasCall to check if
...
a function has any function calls.
llvm-svn: 132140
2011-05-26 20:30:31 +00:00
Rafael Espindola
a77d692299
Fix some dwarf register numbers.
...
llvm-svn: 132136
2011-05-26 19:25:47 +00:00
Galina Kistanova
ceabe8c579
Make few ExecutionEngine tests XFAIL for ARM, since ExecutionEngine is broken for ARM, please remove the following XFAIL when it will be fixed.
...
llvm-svn: 132135
2011-05-26 19:17:14 +00:00
Rafael Espindola
0395db684a
Fix LTO builds with xcode 4.
...
llvm-svn: 132132
2011-05-26 18:59:54 +00:00
Akira Hatanaka
5bfbea9ef2
Add support for C++ exception handling.
...
llvm-svn: 132131
2011-05-26 18:59:03 +00:00
Eric Christopher
4fc5b88850
Reorganize these slightly according to operand type.
...
llvm-svn: 132128
2011-05-26 18:22:26 +00:00
Akira Hatanaka
5a8bd76f99
Set HasSetDirective to true.
...
llvm-svn: 132127
2011-05-26 18:16:18 +00:00
Eli Friedman
15dc009422
Fix test on Windows.
...
llvm-svn: 132126
2011-05-26 18:00:32 +00:00
Charles Davis
4becdc727e
Revert r132111. I built Release (without Asserts), so I didn't know about the
...
assert that prevented setting alignment on section creation.
llvm-svn: 132113
2011-05-26 05:35:55 +00:00
Charles Davis
a5045b7351
Fix definitions of UOP_SaveXMM128, UOP_SaveXMM128Big, and UOP_PushMachFrame
...
to match Microsoft's definitions.
llvm-svn: 132112
2011-05-26 05:24:15 +00:00
Charles Davis
44fb280873
Align Win64 EH Table sections to 4 bytes.
...
llvm-svn: 132111
2011-05-26 05:19:54 +00:00
Charles Davis
cf332d9ff7
Add a test for the chained directives that I forgot last time.
...
llvm-svn: 132110
2011-05-26 05:17:43 +00:00