oota-llvm.git
14 years agoinitial checkin for unittest to exercise Support/Casting.h
Gabor Greif [Tue, 20 Jul 2010 16:32:20 +0000 (16:32 +0000)]
initial checkin for unittest to exercise Support/Casting.h

this is still minimal on purpose, but I plan to migrate the ugly
hack under #ifdef DEBUG_CAST_OPERATORS into this file

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

14 years agoMinor code cleanups.
Dan Gohman [Tue, 20 Jul 2010 16:32:11 +0000 (16:32 +0000)]
Minor code cleanups.

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

14 years agoupdate tests for smarter BIC usage
Jim Grosbach [Tue, 20 Jul 2010 16:16:48 +0000 (16:16 +0000)]
update tests for smarter BIC usage

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

14 years agoAppease the colonials.
Jakob Stoklund Olesen [Tue, 20 Jul 2010 16:12:37 +0000 (16:12 +0000)]
Appease the colonials.

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

14 years agoUsing BIC for immediates needs an extra bump for its complexity to get
Jim Grosbach [Tue, 20 Jul 2010 16:07:04 +0000 (16:07 +0000)]
Using BIC for immediates needs an extra bump for its complexity to get
instruction selection to prefer it when possible. rdar://7903972

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

14 years agoThe same problem was being tracked in PR7652.
Duncan Sands [Tue, 20 Jul 2010 15:52:32 +0000 (15:52 +0000)]
The same problem was being tracked in PR7652.

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

14 years agoBeginning SplitKit - utility classes for live range splitting.
Jakob Stoklund Olesen [Tue, 20 Jul 2010 15:41:07 +0000 (15:41 +0000)]
Beginning SplitKit - utility classes for live range splitting.

This is a work in progress. So far we have some basic loop analysis to help
determine where it is useful to split a live range around a loop.

The actual loop splitting code from Splitter.cpp is also going to move in here.

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

14 years agoRemoved un-used code.
Jim Grosbach [Tue, 20 Jul 2010 14:51:32 +0000 (14:51 +0000)]
Removed un-used code.

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

14 years agoUpdated css classes for the pressure table legend.
Lang Hames [Tue, 20 Jul 2010 14:35:55 +0000 (14:35 +0000)]
Updated css classes for the pressure table legend.

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

14 years agoOops - I tables render poorly in Chrome without this explicit height specification.
Lang Hames [Tue, 20 Jul 2010 10:29:46 +0000 (10:29 +0000)]
Oops - I tables render poorly in Chrome without this explicit height specification.

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

14 years agoUse run-length encoding to represent identical adjacent cells in the pressure
Lang Hames [Tue, 20 Jul 2010 10:18:54 +0000 (10:18 +0000)]
Use run-length encoding to represent identical adjacent cells in the pressure
and interval table. Reduces output HTML file sizes by ~80% in my test cases.

Also fix access of private member type by << operator.

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

14 years agoAdded support for turning HTML indentation on and off (indentation off by default).
Lang Hames [Tue, 20 Jul 2010 09:13:29 +0000 (09:13 +0000)]
Added support for turning HTML indentation on and off (indentation off by default).

Reduces output file size ~20% on my test cases.

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

14 years agoEnable LLVM to compile on Mips. Fix PR5828
Bruno Cardoso Lopes [Tue, 20 Jul 2010 08:44:20 +0000 (08:44 +0000)]
Enable LLVM to compile on Mips. Fix PR5828

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

14 years agoFix PR7174, a couple o Mips fixes:
Bruno Cardoso Lopes [Tue, 20 Jul 2010 08:37:04 +0000 (08:37 +0000)]
Fix PR7174, a couple o Mips fixes:

- Fix a typo for PIC check during jmp table lowering
- Also fix the "first jump table basic block is not
considered only reachable by fall through" problem, use this
ad-hoc solution until I come up with something better.

Patch by stetorvs@gmail.com

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

14 years agoSpeculatively revert r108813, in an attempt to get the self-host buildbots working...
Owen Anderson [Tue, 20 Jul 2010 08:26:15 +0000 (08:26 +0000)]
Speculatively revert r108813, in an attempt to get the self-host buildbots working again.  I don't see why this patch
would cause them to fail the way they are, but none of the other intervening patches seem likely either.

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

14 years agoFix Mips PR7473. Patch by stetorvs@gmail.com
Bruno Cardoso Lopes [Tue, 20 Jul 2010 07:58:51 +0000 (07:58 +0000)]
Fix Mips PR7473. Patch by stetorvs@gmail.com

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

14 years agoSwitched to rendering after allocation (but before rewriting) in PBQP.
Lang Hames [Tue, 20 Jul 2010 07:41:44 +0000 (07:41 +0000)]
Switched to rendering after allocation (but before rewriting) in PBQP.

Updated renderer to use allocation information from VirtRegMap (if
available) to render spilled intervals differently.

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

14 years agoGrammar.
Eric Christopher [Tue, 20 Jul 2010 06:56:13 +0000 (06:56 +0000)]
Grammar.

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

14 years agoReapply r108794, a fix for the failing test from last time.
Owen Anderson [Tue, 20 Jul 2010 06:52:42 +0000 (06:52 +0000)]
Reapply r108794, a fix for the failing test from last time.

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

14 years agoConstify some arguments.
Eric Christopher [Tue, 20 Jul 2010 06:52:21 +0000 (06:52 +0000)]
Constify some arguments.

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

14 years agoRevert r108794, "Separate PassInfo into two classes: a constructor-free
Daniel Dunbar [Tue, 20 Jul 2010 03:06:07 +0000 (03:06 +0000)]
Revert r108794, "Separate PassInfo into two classes: a constructor-free
superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).", it is
breaking teh everything.

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

14 years agoSeparate PassInfo into two classes: a constructor-free superclass (StaticPassInfo...
Owen Anderson [Tue, 20 Jul 2010 01:19:58 +0000 (01:19 +0000)]
Separate PassInfo into two classes: a constructor-free superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).

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

14 years agoMinor code simplification.
Dan Gohman [Tue, 20 Jul 2010 00:57:18 +0000 (00:57 +0000)]
Minor code simplification.

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

14 years agoDon't hoist things out of a large switch inside a
Dale Johannesen [Tue, 20 Jul 2010 00:50:13 +0000 (00:50 +0000)]
Don't hoist things out of a large switch inside a
loop, for the reasons in the comments.  This is a
major win on 253.perlbmk on ARM Darwin.  I expect it
to be a good heuristic in general, but it's possible
some things will regress; I'll be watching.
7940152.

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

14 years agox86_32 tests for vbroadcast
Bruno Cardoso Lopes [Tue, 20 Jul 2010 00:11:50 +0000 (00:11 +0000)]
x86_32 tests for vbroadcast

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

14 years agoAdd AVX vbroadcast new instruction
Bruno Cardoso Lopes [Tue, 20 Jul 2010 00:11:13 +0000 (00:11 +0000)]
Add AVX vbroadcast new instruction

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

14 years agoUpdate CMake files.
Daniel Dunbar [Tue, 20 Jul 2010 00:08:13 +0000 (00:08 +0000)]
Update CMake files.

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

14 years agoCorrect line info for declarations/definitions. Radar 8063111.
Stuart Hastings [Mon, 19 Jul 2010 23:56:30 +0000 (23:56 +0000)]
Correct line info for declarations/definitions.  Radar 8063111.

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

14 years agosink the arm implementations of ASmPrinter and MCInstLower
Chris Lattner [Mon, 19 Jul 2010 23:44:46 +0000 (23:44 +0000)]
sink the arm implementations of ASmPrinter and MCInstLower
out of the AsmPrinter directory into libarm.  Now the
ARM InstPrinters depend jsut on the MC stuff, not on vmcore
or codegen.

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

14 years agofix a layering problem by moving the x86 implementation
Chris Lattner [Mon, 19 Jul 2010 23:41:57 +0000 (23:41 +0000)]
fix a layering problem by moving the x86 implementation
of AsmPrinter and InstLowering into libx86 and out of the
asmprinter subdirectory.  Now X86/AsmPrinter just depends on
MC stuff, not all of codegen and LLVM IR.

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

14 years agoAdd 256-bit vaddsub, vhadd, vhsub, vblend and vdpp instructions!
Bruno Cardoso Lopes [Mon, 19 Jul 2010 23:32:44 +0000 (23:32 +0000)]
Add 256-bit vaddsub, vhadd, vhsub, vblend and vdpp instructions!

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

14 years agoFix memory leak reported by valgrind.
Devang Patel [Mon, 19 Jul 2010 23:25:39 +0000 (23:25 +0000)]
Fix memory leak reported by valgrind.
Do not visit operands of old instruction. Visit all operands of new instruction.

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

14 years agoAfter a custom inserter, in a block which has constant instructions,
Dan Gohman [Mon, 19 Jul 2010 22:48:56 +0000 (22:48 +0000)]
After a custom inserter, in a block which has constant instructions,
update the current basic block in addition to the current insert
position, so that they remain consistent. This fixes rdar://8204072.

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

14 years agoARM has to provide its own TargetLowering::findRepresentativeClass because its scalar...
Evan Cheng [Mon, 19 Jul 2010 22:15:08 +0000 (22:15 +0000)]
ARM has to provide its own TargetLowering::findRepresentativeClass because its scalar floating point registers alias its vector registers.

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

14 years agolong past time I added myself to this, I suppose.
Jim Grosbach [Mon, 19 Jul 2010 22:04:28 +0000 (22:04 +0000)]
long past time I added myself to this, I suppose.

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

14 years agoChange the implemented interfaces list on PassInfo from a std::vector to a manually...
Owen Anderson [Mon, 19 Jul 2010 21:44:48 +0000 (21:44 +0000)]
Change the implemented interfaces list on PassInfo from a std::vector to a manually implemented
linked list.  This is a little slower and involves more malloc'ing, but these lists are
typically short, and it allows PassInfo to be entirely constant initializable.

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

14 years agoSave a copy of the unstripped libLTO.dylib in $SYM_DIR. Clean up the code
Bob Wilson [Mon, 19 Jul 2010 21:33:07 +0000 (21:33 +0000)]
Save a copy of the unstripped libLTO.dylib in $SYM_DIR.  Clean up the code
for dealing with libLTO.dylib to put it all in one place and to allow
use of DISABLE_USR_LINKS.

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

14 years agoMC/Mach-O: Silently ignore .file directives instead of error'ing out on
Daniel Dunbar [Mon, 19 Jul 2010 20:44:20 +0000 (20:44 +0000)]
MC/Mach-O: Silently ignore .file directives instead of error'ing out on
them. They aren't important enough to abort the entire assembly, and failing
early makes testing more annoying.

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

14 years agoX86: Mark JMP{32,64}[mr] as requires 32-bit/64-bit mode. They are the same
Daniel Dunbar [Mon, 19 Jul 2010 20:44:16 +0000 (20:44 +0000)]
X86: Mark JMP{32,64}[mr] as requires 32-bit/64-bit mode. They are the same
instruction, we only want to allow the one for the current subtarget.
 - This also fixes suffix matching for jmp instructions, because it eliminates
   the ambiguity between 'jmpl' and 'jmpq'.

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

14 years agoRegenerate.
Owen Anderson [Mon, 19 Jul 2010 19:42:01 +0000 (19:42 +0000)]
Regenerate.

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

14 years agoRemove extraneous character.
Owen Anderson [Mon, 19 Jul 2010 19:41:52 +0000 (19:41 +0000)]
Remove extraneous character.

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

14 years agoRegenerate.
Owen Anderson [Mon, 19 Jul 2010 19:24:55 +0000 (19:24 +0000)]
Regenerate.

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

14 years agoAdd support for detecting <mach-o/getsect.h> and the getsect() function.
Owen Anderson [Mon, 19 Jul 2010 19:24:37 +0000 (19:24 +0000)]
Add support for detecting <mach-o/getsect.h> and the getsect() function.

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

14 years agoTweak per Chris' comments.
Owen Anderson [Mon, 19 Jul 2010 19:23:32 +0000 (19:23 +0000)]
Tweak per Chris' comments.

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

14 years agoTeach computeRegisterProperties() to compute "representative" register class for...
Evan Cheng [Mon, 19 Jul 2010 18:47:01 +0000 (18:47 +0000)]
Teach computeRegisterProperties() to compute "representative" register class for legal value types. A "representative" register class is the largest legal super-reg register class for a value type. e.g. On i386, GR32 is the rep register class for i8 / i16 / i32; on x86_64 it would be GR64.

This property will be used by the register pressure tracking instruction scheduler.

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

14 years agoSpillers may alter MachineLoopInfo when breaking critical edges, so make it
Jakob Stoklund Olesen [Mon, 19 Jul 2010 18:41:20 +0000 (18:41 +0000)]
Spillers may alter MachineLoopInfo when breaking critical edges, so make it
non-const.

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

14 years agoTestcase for 108732 (8195660).
Dale Johannesen [Mon, 19 Jul 2010 18:22:40 +0000 (18:22 +0000)]
Testcase for 108732 (8195660).

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

14 years agoFix PR 7662.
Devang Patel [Mon, 19 Jul 2010 17:53:55 +0000 (17:53 +0000)]
Fix PR 7662.
Do not try to insert local variable info to a DIE used for function declaration.

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

14 years agoSince ARM emits inline jump tables as part of the ConstantIsland pass,
Jim Grosbach [Mon, 19 Jul 2010 17:20:38 +0000 (17:20 +0000)]
Since ARM emits inline jump tables as part of the ConstantIsland pass,
it should set the jump table encloding the EK_Inline. This prevents
a second, unused, copy of the table from being emitted after the function
body. PR6581.

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

14 years agorevert so I can get the right PR# in the log message.
Jim Grosbach [Mon, 19 Jul 2010 17:19:40 +0000 (17:19 +0000)]
revert so I can get the right PR# in the log message.

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

14 years agoSince ARM emits inline jump tables as part of the ConstantIsland pass,
Jim Grosbach [Mon, 19 Jul 2010 17:18:28 +0000 (17:18 +0000)]
Since ARM emits inline jump tables as part of the ConstantIsland pass,
it should set the jump table encloding the EK_Inline. This prevents
a second, unused, copy of the table from being emitted after the function
body. PR7499.

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

14 years agoRemove code duplication.
Mikhail Glushenkov [Mon, 19 Jul 2010 17:17:22 +0000 (17:17 +0000)]
Remove code duplication.

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

14 years agoBetter error reporting for switch_list.
Mikhail Glushenkov [Mon, 19 Jul 2010 17:17:10 +0000 (17:17 +0000)]
Better error reporting for switch_list.

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

14 years agoUpdate CMake build.
Benjamin Kramer [Mon, 19 Jul 2010 15:37:03 +0000 (15:37 +0000)]
Update CMake build.

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

14 years agoExpose BasicBlock::moveBefore and moveAfter in C API, patch
Duncan Sands [Mon, 19 Jul 2010 15:31:07 +0000 (15:31 +0000)]
Expose BasicBlock::moveBefore and moveAfter in C API, patch
by Benjamin Saunders.

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

14 years agoRender MachineFunctions to HTML pages, with options to render register
Lang Hames [Mon, 19 Jul 2010 15:22:28 +0000 (15:22 +0000)]
Render MachineFunctions to HTML pages, with options to render register
pressure estimates and liveness alongside.

Still experimental.

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

14 years agoprecompute 20 tags
Gabor Greif [Mon, 19 Jul 2010 14:48:15 +0000 (14:48 +0000)]
precompute 20 tags

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

14 years agoFix indentation.
Duncan Sands [Mon, 19 Jul 2010 09:36:45 +0000 (09:36 +0000)]
Fix indentation.

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

14 years agoExpose JIT::recompileAndRelinkFunction for use through the C API.
Duncan Sands [Mon, 19 Jul 2010 09:33:13 +0000 (09:33 +0000)]
Expose JIT::recompileAndRelinkFunction for use through the C API.
Patch by Benjamin Saunders.

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

14 years agoTestcase for r108687.
Owen Anderson [Mon, 19 Jul 2010 08:14:26 +0000 (08:14 +0000)]
Testcase for r108687.

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

14 years agoRemove r108639 now that it is handled by InstCombine instead.
Owen Anderson [Mon, 19 Jul 2010 08:10:24 +0000 (08:10 +0000)]
Remove r108639 now that it is handled by InstCombine instead.

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

14 years agoReimplement r108639 in InstCombine rather than DAGCombine.
Owen Anderson [Mon, 19 Jul 2010 08:09:34 +0000 (08:09 +0000)]
Reimplement r108639 in InstCombine rather than DAGCombine.

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

14 years agoX86-64: Mark WINCALL and more tail call instructions as code gen only.
Daniel Dunbar [Mon, 19 Jul 2010 07:21:07 +0000 (07:21 +0000)]
X86-64: Mark WINCALL and more tail call instructions as code gen only.

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

14 years agoX86: Mark some tail call pseduo instruction as code gen only.
Daniel Dunbar [Mon, 19 Jul 2010 07:21:04 +0000 (07:21 +0000)]
X86: Mark some tail call pseduo instruction as code gen only.

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

14 years agoX86: Mark In32/64BitMode on LEAVE[64] and SYSEXIT[64].
Daniel Dunbar [Mon, 19 Jul 2010 07:21:01 +0000 (07:21 +0000)]
X86: Mark In32/64BitMode on LEAVE[64] and SYSEXIT[64].

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

14 years ago_[A-Z] identifiers are reserved for the implementation.
Michael J. Spencer [Mon, 19 Jul 2010 06:26:19 +0000 (06:26 +0000)]
_[A-Z] identifiers are reserved for the implementation.

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

14 years agoMC/X86: We now match instructions like "incl %eax" correctly for the arch we are
Daniel Dunbar [Mon, 19 Jul 2010 06:14:54 +0000 (06:14 +0000)]
MC/X86: We now match instructions like "incl %eax" correctly for the arch we are
assembling; remove crufty custom cleanup code.

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

14 years agoX86: Mark MOV.*_{TC,NOREX} instruction as code gen only, they aren't real.
Daniel Dunbar [Mon, 19 Jul 2010 06:14:49 +0000 (06:14 +0000)]
X86: Mark MOV.*_{TC,NOREX} instruction as code gen only, they aren't real.

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

14 years agoX86: MOV8o8a, MOV8ao8, etc. are only valid in 32-bit mode.
Daniel Dunbar [Mon, 19 Jul 2010 06:14:44 +0000 (06:14 +0000)]
X86: MOV8o8a, MOV8ao8, etc. are only valid in 32-bit mode.

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

14 years agoMC: Add WinCOFFStreamer implementation and merge common code from MachO
Michael J. Spencer [Mon, 19 Jul 2010 06:13:10 +0000 (06:13 +0000)]
MC: Add WinCOFFStreamer implementation and merge common code from MachO
into MCObjectStreamer.

Origonal Windows COFF implementation by Nathan Jedffords.

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

14 years agoTblGen/AsmMatcher: Add support for honoring instruction Requires<[]> attributes as...
Daniel Dunbar [Mon, 19 Jul 2010 05:44:09 +0000 (05:44 +0000)]
TblGen/AsmMatcher: Add support for honoring instruction Requires<[]> attributes as part of the matcher.
 - Currently includes a hack to limit ourselves to "In32BitMode" and "In64BitMode", because we don't have the other infrastructure to properly deal with setting SSE, etc. features on X86.

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

14 years agoAlphabetize.
Bill Wendling [Mon, 19 Jul 2010 04:52:56 +0000 (04:52 +0000)]
Alphabetize.

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

14 years agoMake .align parse correctly on platforms where .align is measured in bytes.
Eli Friedman [Mon, 19 Jul 2010 04:17:25 +0000 (04:17 +0000)]
Make .align parse correctly on platforms where .align is measured in bytes.

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

14 years agollvmc: Add a new option type (switch_list).
Mikhail Glushenkov [Mon, 19 Jul 2010 03:16:25 +0000 (03:16 +0000)]
llvmc: Add a new option type (switch_list).

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

14 years agotests: Force another triple.
Daniel Dunbar [Mon, 19 Jul 2010 00:43:58 +0000 (00:43 +0000)]
tests: Force another triple.

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

14 years agoTarget: Give the TargetAsmParser access to the TargetMachine.
Daniel Dunbar [Mon, 19 Jul 2010 00:33:49 +0000 (00:33 +0000)]
Target: Give the TargetAsmParser access to the TargetMachine.
 - Unfortunate, but necessary for now to handle subtarget instruction matching. Eventually we should factor out the lower level target machine information so we don't need to do this.

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

14 years agoedis: Save the TargetMachine in the EDDisassembler object.
Daniel Dunbar [Mon, 19 Jul 2010 00:33:43 +0000 (00:33 +0000)]
edis: Save the TargetMachine in the EDDisassembler object.

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

14 years agoTest commit
Michael J. Spencer [Sun, 18 Jul 2010 23:46:13 +0000 (23:46 +0000)]
Test commit

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

14 years agoMC/AsmParser: Stop playing unsafe member function pointer calls, this isn't
Daniel Dunbar [Sun, 18 Jul 2010 22:22:07 +0000 (22:22 +0000)]
MC/AsmParser: Stop playing unsafe member function pointer calls, this isn't
portable enough.
 - Downside is we now double dispatch through a stub function, but this isn't
   performance critical.

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

14 years agotests: Force triples.
Daniel Dunbar [Sun, 18 Jul 2010 21:16:10 +0000 (21:16 +0000)]
tests: Force triples.

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

14 years agoMC/AsmParser: Fix .abort and .secure_log_unique to accept arbitrary token
Daniel Dunbar [Sun, 18 Jul 2010 20:15:59 +0000 (20:15 +0000)]
MC/AsmParser: Fix .abort and .secure_log_unique to accept arbitrary token
sequences, not just strings.

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

14 years agoMC/AsmParser: Add macro argument substitution support.
Daniel Dunbar [Sun, 18 Jul 2010 19:00:10 +0000 (19:00 +0000)]
MC/AsmParser: Add macro argument substitution support.

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

14 years agoMC/AsmParser: Add basic support for macro instantiation.
Daniel Dunbar [Sun, 18 Jul 2010 18:54:11 +0000 (18:54 +0000)]
MC/AsmParser: Add basic support for macro instantiation.

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

14 years agoMC/AsmParser: Add basic parsing support for .macro definitions.
Daniel Dunbar [Sun, 18 Jul 2010 18:47:21 +0000 (18:47 +0000)]
MC/AsmParser: Add basic parsing support for .macro definitions.

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

14 years agodaniel doesn't hate me, he hates macpython 2.5, which
Chris Lattner [Sun, 18 Jul 2010 18:42:18 +0000 (18:42 +0000)]
daniel doesn't hate me, he hates macpython 2.5, which
is a very reasonable position on life!

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

14 years agoMC/AsmParser: Add .macros_{off,on} support, not that makes sense since we don't
Daniel Dunbar [Sun, 18 Jul 2010 18:38:02 +0000 (18:38 +0000)]
MC/AsmParser: Add .macros_{off,on} support, not that makes sense since we don't
support macros.

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

14 years agoMC/AsmParser: Use Error() instead of calling PrintMessage() directly.
Daniel Dunbar [Sun, 18 Jul 2010 18:31:45 +0000 (18:31 +0000)]
MC/AsmParser: Use Error() instead of calling PrintMessage() directly.

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

14 years agoMC/AsmParser: Fix TokError() to accept a Twine.
Daniel Dunbar [Sun, 18 Jul 2010 18:31:42 +0000 (18:31 +0000)]
MC/AsmParser: Fix TokError() to accept a Twine.

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

14 years agoMC/AsmParser: Hide the AsmParser implementation.
Daniel Dunbar [Sun, 18 Jul 2010 18:31:38 +0000 (18:31 +0000)]
MC/AsmParser: Hide the AsmParser implementation.

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

14 years agoMC: Move several clients to using AsmParser constructor function.
Daniel Dunbar [Sun, 18 Jul 2010 18:31:33 +0000 (18:31 +0000)]
MC: Move several clients to using AsmParser constructor function.

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

14 years agollvm-mc: Fix llvm-mc -as-lex.
Daniel Dunbar [Sun, 18 Jul 2010 18:31:28 +0000 (18:31 +0000)]
llvm-mc: Fix llvm-mc -as-lex.

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

14 years agoFix struct/class mismatch
Douglas Gregor [Sun, 18 Jul 2010 11:47:56 +0000 (11:47 +0000)]
Fix struct/class mismatch

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

14 years agoAdd a testcase for r108639.
Owen Anderson [Sun, 18 Jul 2010 08:57:19 +0000 (08:57 +0000)]
Add a testcase for r108639.

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

14 years agoAdd a DAGCombine xform to fold away redundant float->double->float conversions around...
Owen Anderson [Sun, 18 Jul 2010 08:47:54 +0000 (08:47 +0000)]
Add a DAGCombine xform to fold away redundant float->double->float conversions around sqrt instructions.
I am assured by people more knowledgeable than me that there are no rounding issues in eliminating this.

This fixed <rdar://problem/8197504>.

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

14 years agoAdded -pbqp-pre-coalescing flag to PBQP. If enabled this will cause PBQP to require
Lang Hames [Sun, 18 Jul 2010 00:57:59 +0000 (00:57 +0000)]
Added -pbqp-pre-coalescing flag to PBQP. If enabled this will cause PBQP to require
LoopSplitter be run prior to register allocation.

Entirely for testing purposes at the moment.

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

14 years agofullStopTag cannot happen here, it is handled above
Gabor Greif [Sat, 17 Jul 2010 20:52:46 +0000 (20:52 +0000)]
fullStopTag cannot happen here, it is handled above

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

14 years agoFix what seems like a clear buffer overflow, noticed by cppcheck.
Duncan Sands [Sat, 17 Jul 2010 20:23:37 +0000 (20:23 +0000)]
Fix what seems like a clear buffer overflow, noticed by cppcheck.

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

14 years agoUse isPrologLabel() instead of checking the opcode directly.
Bill Wendling [Sat, 17 Jul 2010 19:18:44 +0000 (19:18 +0000)]
Use isPrologLabel() instead of checking the opcode directly.

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

14 years agothe stackifier is global!
Chris Lattner [Sat, 17 Jul 2010 17:42:04 +0000 (17:42 +0000)]
the stackifier is global!

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

14 years agodoxygenify some comments.
Chris Lattner [Sat, 17 Jul 2010 17:40:51 +0000 (17:40 +0000)]
doxygenify some comments.

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