Jakob Stoklund Olesen [Wed, 12 May 2010 00:11:24 +0000 (00:11 +0000)]
Enable a bunch more -regalloc=fast tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103531
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 12 May 2010 00:11:19 +0000 (00:11 +0000)]
Avoid scoping issues, fix buildbots
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103530
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 11 May 2010 23:54:07 +0000 (23:54 +0000)]
Add initial kill flag support to FastISel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103529
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 11 May 2010 23:53:13 +0000 (23:53 +0000)]
Make Clang happy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103528
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 11 May 2010 23:53:11 +0000 (23:53 +0000)]
MC/Mach-O/x86_64: Fix PCrel adjustment for x86_64, which was using the fixup
offset instead of the fixup address as intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103527
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 11 May 2010 23:53:07 +0000 (23:53 +0000)]
MC/Mach-O: As Kevin pointed out, 'Address' is really an offset -- rename to clarify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103526
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 11 May 2010 23:53:05 +0000 (23:53 +0000)]
MC/Mach-O: Fix a crash on invalid.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103525
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Tue, 11 May 2010 23:25:16 +0000 (23:25 +0000)]
Fix PR6951 by fixing Module leaks in bugpoint.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103523
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 11 May 2010 23:24:47 +0000 (23:24 +0000)]
Store the Dirty bit in the LiveReg structure instead of a bit vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103522
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 11 May 2010 23:24:45 +0000 (23:24 +0000)]
Keep track of the last place a live virtreg was used.
This allows us to add accurate kill markers, something the scavenger likes.
Add some more tests from ARM that needed this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103521
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 11 May 2010 21:59:14 +0000 (21:59 +0000)]
Don't set kill flags on uses of CopyFromReg nodes. InstrEmitter doesn't
create separate virtual registers for CopyFromReg values, so uses of
them don't necessarily kill the value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103519
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 11 May 2010 21:07:36 +0000 (21:07 +0000)]
Avoid breaking vstd when reg_sequence is not used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103513
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 11 May 2010 20:51:07 +0000 (20:51 +0000)]
One more -regalloc=fast test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103509
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 11 May 2010 20:51:04 +0000 (20:51 +0000)]
Silence warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103508
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 11 May 2010 20:46:04 +0000 (20:46 +0000)]
Simplify this logic of creating a default Features object.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103507
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 11 May 2010 20:30:28 +0000 (20:30 +0000)]
Simplify the tracking of used physregs to a bulk bitor followed by a transitive
closure after allocating all blocks.
Add a few more test cases for -regalloc=fast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103500
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 11 May 2010 20:30:00 +0000 (20:30 +0000)]
Revert r103493, materializing functions in the regular PassManager.
It works in simple cases, but it isn't a general solution.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103499
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 11 May 2010 20:16:09 +0000 (20:16 +0000)]
I got tired of VISIBILITY_HIDDEN colliding with the gcc enum. Rename it
to LLVM_LIBRARY_VISIBILITY and introduce LLVM_GLOBAL_VISIBILITY, which is
the opposite, for future use by dragonegg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103495
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 11 May 2010 19:58:43 +0000 (19:58 +0000)]
Teach the regular pass manager how to materialize functions as needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103493
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 11 May 2010 19:57:55 +0000 (19:57 +0000)]
Remove the "WantsWholeFile" concept, as it's no longer needed. CBE
and the others use the regular addPassesToEmitFile hook now, and
llc no longer needs a bunch of redundant code to handle the
whole-file case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103492
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 11 May 2010 19:11:43 +0000 (19:11 +0000)]
Trim #includes and forward declarations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103489
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 11 May 2010 18:54:45 +0000 (18:54 +0000)]
Mostly rewrite RegAllocFast.
Sorry for the big change. The path leading up to this patch had some TableGen
changes that I didn't want to commit before I knew they were useful. They
weren't, and this version does not need them.
The fast register allocator now does no liveness calculations. Instead it relies
on kill flags provided by isel. (Currently those kill flags are also ignored due
to isel bugs). The allocation algorithm is supposed to work with any subset of
valid kill flags. More kill flags simply means fewer spills inserted.
Registers are allocated from a working set that contains no aliases. That means
most allocations can be done directly without expensive alias checks. When the
working set runs out of registers we do the full alias check to find new free
registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103488
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 11 May 2010 18:03:41 +0000 (18:03 +0000)]
Fix a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103483
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 11 May 2010 17:31:57 +0000 (17:31 +0000)]
Implement a bunch more TargetSelectionDAGInfo infrastructure.
Move EmitTargetCodeForMemcpy, EmitTargetCodeForMemset, and
EmitTargetCodeForMemmove out of TargetLowering and into
SelectionDAGInfo to exercise this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103481
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 11 May 2010 17:22:50 +0000 (17:22 +0000)]
MC/Mach-O x86_64: Switch to using fragment atom symbol.
- This eliminates getAtomForAddress() (which was a linear search) and
simplifies getAtom().
- This also fixes some correctness problems where local labels at the same
address as non-local labels could be assigned to the wrong atom.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103480
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 11 May 2010 17:22:45 +0000 (17:22 +0000)]
Test commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103479
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Tue, 11 May 2010 16:47:42 +0000 (16:47 +0000)]
Test commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103478
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Tue, 11 May 2010 16:46:45 +0000 (16:46 +0000)]
Test commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103477
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 11 May 2010 16:21:03 +0000 (16:21 +0000)]
Remove the TargetLowering::getSubtarget() virtual function, which
was unused. TargetMachine::getSubtarget() is used instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103474
91177308-0d34-0410-b5e6-
96231b3b80d8
Kalle Raiskila [Tue, 11 May 2010 11:00:02 +0000 (11:00 +0000)]
Make SPU backend not assert on jump tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103466
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 11 May 2010 07:26:32 +0000 (07:26 +0000)]
Select @llvm.trap to the special B with 1111 condition (i.e. trap) instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103459
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 11 May 2010 06:17:44 +0000 (06:17 +0000)]
Fixes for Microsoft Visual Studio 2010, from Steven Watanabe!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103457
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 11 May 2010 01:33:39 +0000 (01:33 +0000)]
Don't create a StringRef with a NULL value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103455
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Tue, 11 May 2010 01:27:08 +0000 (01:27 +0000)]
Extended the edis "IsBranch" property to call
instructions as well. Added support for checking
this to the llvm-mc tester as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103454
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 11 May 2010 01:19:40 +0000 (01:19 +0000)]
Model some vst3 and vst4 with reg_sequence.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103453
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 11 May 2010 00:30:02 +0000 (00:30 +0000)]
The getDefaultSubtargetFeatures method of SubtargetFeature did actually return a
string of features for that target. However LTO was using that string to pass
into the "create target machine" stuff. That stuff needed the feature string to
be in a particular form. In particular, it needed the CPU specified first and
then the attributes. If there isn't a CPU specified, it required it to be blank
-- e.g., ",+altivec". Yuck.
Modify the getDefaultSubtargetFeatures method to be a non-static member
function. For all attributes for a specific subtarget, it will add them in like
normal. It will also take a CPU string so that it can satisfy this horrible
syntax.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103451
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 11 May 2010 00:20:03 +0000 (00:20 +0000)]
It's not safe eliminate copies where src and dst have different sub-register indices.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103450
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 11 May 2010 00:04:31 +0000 (00:04 +0000)]
Ensure REG_SEQUENCE source operands are unique.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103449
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 10 May 2010 23:15:20 +0000 (23:15 +0000)]
MC/Mach-O: Fix another mismatch with .weak_definition, we shouldn't use a
scattered relocation entry with a .weak_definition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103443
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 10 May 2010 23:15:13 +0000 (23:15 +0000)]
MC/Mach-O: Factor out doesSymbolRequireExternRelocation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103442
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 10 May 2010 23:08:19 +0000 (23:08 +0000)]
Indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103441
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 10 May 2010 22:49:55 +0000 (22:49 +0000)]
Enable multiple Compile Units in one module.
This means now 'llvm-ld a.bc b.bc' will preserve debug info appropriately.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103439
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 10 May 2010 22:45:09 +0000 (22:45 +0000)]
MC/Mach-O: Explicitly track atoms, as represented by their defining symbol, for each fragment (not yet used).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103438
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 10 May 2010 21:26:24 +0000 (21:26 +0000)]
Model some vld3 instructions with REG_SEQUENCE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103437
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 10 May 2010 21:25:30 +0000 (21:25 +0000)]
It's not safe to propagate implicit_def that defines part of a register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103436
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 10 May 2010 21:24:55 +0000 (21:24 +0000)]
Clear RegSequences vector after eliminating REG_SEQUENCE instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103435
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 May 2010 21:23:48 +0000 (21:23 +0000)]
this really is needed. :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103434
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 May 2010 21:01:47 +0000 (21:01 +0000)]
just remove this, it isn't needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103432
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 May 2010 20:59:18 +0000 (20:59 +0000)]
simplify more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103431
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 May 2010 20:58:42 +0000 (20:58 +0000)]
Simplify by using startswith instead of substr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103430
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 May 2010 20:53:17 +0000 (20:53 +0000)]
fix PR7105 by enumerating MDNodes on all @llvm.foo
function calls, not just recognized intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103428
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 May 2010 20:51:06 +0000 (20:51 +0000)]
fix a pretty obvious typo. We test things before committing them, right?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103427
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 10 May 2010 20:24:27 +0000 (20:24 +0000)]
Fix PR6875:
This includes a patch by Roman Divacky to fix the initial crash.
Move the actual addition of passes from *PassManager::add to
*PassManager::addImpl. That way, when adding printer passes we won't
recurse infinitely.
Finally, check to make sure that we are actually adding a FunctionPass
to a FunctionPassManager before doing a print before or after it.
Immutable passes are strange in this way because they aren't
FunctionPasses yet they can be and are added to the FunctionPassManager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103425
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 10 May 2010 20:14:02 +0000 (20:14 +0000)]
Add an explicit keyword.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103424
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 10 May 2010 20:11:56 +0000 (20:11 +0000)]
Add new configure option, --disable-timestamps, intended to turn off anything which would mess up binary/object comparisons. Currently:
- Disables 'Built on ...' in 'foo --version'.
- Disables timestamps from being embedded into .dir files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103423
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 10 May 2010 20:07:44 +0000 (20:07 +0000)]
Fix whitespace in debug output to be consistent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103422
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 10 May 2010 19:47:21 +0000 (19:47 +0000)]
Delete an obsolete comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103420
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 10 May 2010 19:03:57 +0000 (19:03 +0000)]
Be careful with operand promotion. For a binary operation, the source operands may be the same. PR7018. rdar://
7939869.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103419
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 10 May 2010 17:49:40 +0000 (17:49 +0000)]
Test case for 103414.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103415
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 10 May 2010 17:34:18 +0000 (17:34 +0000)]
Model vld2 / vst2 with reg_sequence.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103411
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 10 May 2010 17:33:49 +0000 (17:33 +0000)]
Re-defined valno is always valno even for partial re-def's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103410
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 10 May 2010 17:14:26 +0000 (17:14 +0000)]
Fix PR7096. When a block containing multiple defs is tail duplicated, the
SSAUpdater for the value from the first def may see uses of undefined values,
because the later defs will not have been updated yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103407
91177308-0d34-0410-b5e6-
96231b3b80d8
Kalle Raiskila [Mon, 10 May 2010 08:13:49 +0000 (08:13 +0000)]
Fix encoding of 'sf' and 'sfh' instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103399
91177308-0d34-0410-b5e6-
96231b3b80d8
Kalle Raiskila [Mon, 10 May 2010 07:38:37 +0000 (07:38 +0000)]
Add command line option --gcc to bugpoint.
Remove sending duplicate of the --gcc-tool-args parameters to gcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103397
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 10 May 2010 04:54:28 +0000 (04:54 +0000)]
Add an assertion to catch attempts to access off the end of the array.
Based on a patch by Javier Martinez.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103391
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 9 May 2010 17:34:13 +0000 (17:34 +0000)]
remove a dead file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103383
91177308-0d34-0410-b5e6-
96231b3b80d8
Nathan Jeffords [Sun, 9 May 2010 08:40:06 +0000 (08:40 +0000)]
updated handling dllexport in X86AsmPrinter
changed dllexport code to use EmitBytes instead of EmitRawText, and changed the export option to use /EXPORT: instead of -export: on the windows platform
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103377
91177308-0d34-0410-b5e6-
96231b3b80d8
Nathan Jeffords [Sun, 9 May 2010 05:52:28 +0000 (05:52 +0000)]
made COFF target dllexport logic apply to all subtargets
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103373
91177308-0d34-0410-b5e6-
96231b3b80d8
Nathan Jeffords [Sun, 9 May 2010 05:49:00 +0000 (05:49 +0000)]
test commit, added a comment to MCSectionCOFF::PrintSwitchToSection function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103372
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 8 May 2010 22:15:59 +0000 (22:15 +0000)]
make simplifycfg insert an llvm.trap before the 'unreachable' it introduces
when it detects undefined behavior. llvm.trap generally codegens into some
thing really small (e.g. a 2 byte ud2 instruction on x86) and debugging this
sort of thing is "nontrivial". For example, we now compile:
void foo() { *(int*)0 = 42; }
into:
_foo:
pushl %ebp
movl %esp, %ebp
ud2
Some may even claim that this is a security hole, though that seems dubious
to me. This addresses rdar://
7958343 - Optimizing away null dereference
potentially allows arbitrary code execution
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103356
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 8 May 2010 21:50:26 +0000 (21:50 +0000)]
Teach instcombine to transform a bitcast/(zext|trunc)/bitcast sequence
with a vector input and output into a shuffle vector. This sort of
sequence happens when the input code stores with one type and reloads
with another type and then SROA promotes to i96 integers, which make
everyone sad.
This fixes rdar://
7896024
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103354
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 8 May 2010 20:01:44 +0000 (20:01 +0000)]
Fix PR7052, patch by Jakub Staszak!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103347
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 8 May 2010 19:54:22 +0000 (19:54 +0000)]
break coff symbol definition stuff out into proper MCStreamer callbacks,
patch by Nathan Jeffords!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103346
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 8 May 2010 04:47:54 +0000 (04:47 +0000)]
Readd testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103335
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 8 May 2010 02:10:36 +0000 (02:10 +0000)]
Run interrupt routines as part of report_fatal_error, since we are failing
ungracefully.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103334
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 8 May 2010 02:10:34 +0000 (02:10 +0000)]
Add llvm::sys::RunInterruptHandlers(), which runs the registered SIGINT cleanup
stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103333
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 7 May 2010 23:36:59 +0000 (23:36 +0000)]
When pruning candidate formulae out of an LSRUse, update the
LSRUse's Regs set after all pruning is done, rather than trying
to do it on the fly, which can produce an incomplete result.
This fixes a case where heuristic pruning was stripping all
formulae from a use, which led the solver to enter an infinite
loop.
Also, add a few asserts to diagnose this kind of situation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103328
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 7 May 2010 23:33:41 +0000 (23:33 +0000)]
Instead of just verifying compile unit, verify entire type, variable, namespace etc..
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103327
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 7 May 2010 23:19:07 +0000 (23:19 +0000)]
Remove DIGlobal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103325
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 7 May 2010 23:09:17 +0000 (23:09 +0000)]
Remove. Don't XFAIL.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103321
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 7 May 2010 23:04:32 +0000 (23:04 +0000)]
Add DINameSpace::Verify().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103318
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 7 May 2010 22:45:36 +0000 (22:45 +0000)]
Temorarily revert r101984.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103314
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 7 May 2010 22:28:25 +0000 (22:28 +0000)]
Clang is dying on this with an ambiguous conversion sequence. We're working on it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103312
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 7 May 2010 22:19:08 +0000 (22:19 +0000)]
SDDbgValues are apparently not being legalized. Fix a symptom of the problem,
and not the real problem itself, by dropping debug info for i128 values.
rdar://
7958162.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103310
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 7 May 2010 22:15:24 +0000 (22:15 +0000)]
Minimally fix this code to not abort on mdnodes with integer data
wider than 64 bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103309
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 7 May 2010 22:04:20 +0000 (22:04 +0000)]
Verify variable directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103305
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 May 2010 21:49:09 +0000 (21:49 +0000)]
add COFF support for COMDAT sections, patch by Nathan Jeffords!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103304
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 7 May 2010 21:45:47 +0000 (21:45 +0000)]
Verify entire type descriptor not just tag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103303
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Fri, 7 May 2010 21:44:23 +0000 (21:44 +0000)]
Fix i386 relocations to Weak Definitions. The relocation entries should be
external and the item to be relocated should not have the address of the
symbol added in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103302
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 7 May 2010 21:42:24 +0000 (21:42 +0000)]
Verify compile unit also.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103300
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 7 May 2010 21:35:53 +0000 (21:35 +0000)]
Fix PR 7087, and probably other things, by extending
getConstantFP to accept the two supported long double
target types. This was not the original intent, but
there are other places that assume this works and it's
easy enough to do.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103299
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 7 May 2010 20:54:48 +0000 (20:54 +0000)]
Wrap const MDNode * inside DIDescriptor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103295
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 7 May 2010 20:34:00 +0000 (20:34 +0000)]
Update test to use valid debug info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103287
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 7 May 2010 18:36:34 +0000 (18:36 +0000)]
remove DIDescriptor::getNode()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103278
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 7 May 2010 18:34:55 +0000 (18:34 +0000)]
Clean up the conditional for handling of sign_extend_inreg based on
whether the extract instructions are available.
rdar://
7956878
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103277
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 7 May 2010 18:19:32 +0000 (18:19 +0000)]
Use overloaded operators instead of DIDescriptor::getNode()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103276
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 7 May 2010 18:11:54 +0000 (18:11 +0000)]
Avoid DIDescriptor::getNode(). Use overloaded operators instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103272
91177308-0d34-0410-b5e6-
96231b3b80d8
Kalle Raiskila [Fri, 7 May 2010 18:06:28 +0000 (18:06 +0000)]
Testing svn access with a note added to documentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103271
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 7 May 2010 17:29:48 +0000 (17:29 +0000)]
Update CMake build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103269
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 May 2010 17:17:41 +0000 (17:17 +0000)]
switch MCSectionCOFF from a syntactic to semantic representation,
patch by Peter Housel!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103267
91177308-0d34-0410-b5e6-
96231b3b80d8