oota-llvm.git
14 years agoMC-COFF: Fix .bss section size. Fixes PR8335. Patch by NAKAMUTA Takumi!
Michael J. Spencer [Sat, 9 Oct 2010 16:04:45 +0000 (16:04 +0000)]
MC-COFF: Fix .bss section size. Fixes PR8335. Patch by NAKAMUTA Takumi!

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

14 years agoDon't test a removed function.
Benjamin Kramer [Sat, 9 Oct 2010 15:53:25 +0000 (15:53 +0000)]
Don't test a removed function.

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

14 years agosyntax-highlighting: Fix module asm keyword.
Michael J. Spencer [Sat, 9 Oct 2010 15:44:36 +0000 (15:44 +0000)]
syntax-highlighting: Fix module asm keyword.

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

14 years agoMC-COFF: Implement InitSections. Fixes PR8335.
Michael J. Spencer [Sat, 9 Oct 2010 15:44:27 +0000 (15:44 +0000)]
MC-COFF: Implement InitSections. Fixes PR8335.

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

14 years agoMC-COFF: Add COFFAsmParser. Completes PR8343.
Michael J. Spencer [Sat, 9 Oct 2010 11:01:07 +0000 (11:01 +0000)]
MC-COFF: Add COFFAsmParser. Completes PR8343.

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

14 years agoFix Whitespace.
Michael J. Spencer [Sat, 9 Oct 2010 11:00:50 +0000 (11:00 +0000)]
Fix Whitespace.

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

14 years agoMC-COFF: Assert on non-coff sections.
Michael J. Spencer [Sat, 9 Oct 2010 11:00:37 +0000 (11:00 +0000)]
MC-COFF: Assert on non-coff sections.

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

14 years agoAdd Kate syntax highlighting files.
Michael J. Spencer [Sat, 9 Oct 2010 07:11:04 +0000 (07:11 +0000)]
Add Kate syntax highlighting files.

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

14 years agoAdd VLD4 scheduling itineraries.
Evan Cheng [Sat, 9 Oct 2010 04:07:58 +0000 (04:07 +0000)]
Add VLD4 scheduling itineraries.

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

14 years agoMC: Move ParseDirectiveELFType into ELFAsmParser. COFF uses .type for something else.
Michael J. Spencer [Sat, 9 Oct 2010 03:47:55 +0000 (03:47 +0000)]
MC: Move ParseDirectiveELFType into ELFAsmParser. COFF uses .type for something else.

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

14 years agoFinish vld3 and vld4.
Evan Cheng [Sat, 9 Oct 2010 01:45:34 +0000 (01:45 +0000)]
Finish vld3 and vld4.

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

14 years agoComplete vld2 instruction itineries.
Evan Cheng [Sat, 9 Oct 2010 01:26:12 +0000 (01:26 +0000)]
Complete vld2 instruction itineries.

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

14 years agoMultiply instructions are issued on pipeline 0. They do not need to reserve pipeline 1.
Evan Cheng [Sat, 9 Oct 2010 01:15:04 +0000 (01:15 +0000)]
Multiply instructions are issued on pipeline 0. They do not need to reserve pipeline 1.

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

14 years agoCorrect some load / store instruction itinerary mistakes:
Evan Cheng [Sat, 9 Oct 2010 01:03:04 +0000 (01:03 +0000)]
Correct some load / store instruction itinerary mistakes:
1. Cortex-A8 load / store multiplies can only issue on ALU0.
2. Eliminate A8_Issue, A8_LSPipe will correctly limit the load / store issues.
3. Correctly model all vld1 and vld2 variants.

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

14 years agoSimplify test and move into a generic "crash" ll file.
Bill Wendling [Sat, 9 Oct 2010 00:29:04 +0000 (00:29 +0000)]
Simplify test and move into a generic "crash" ll file.

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

14 years agoCheck to make sure that the iterator isn't at the beginning of the basic block
Bill Wendling [Sat, 9 Oct 2010 00:03:48 +0000 (00:03 +0000)]
Check to make sure that the iterator isn't at the beginning of the basic block
before decrementing. <rdar://problem/8529919>

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

14 years agoadd jit support for the new psuedo instructions I added for
Chris Lattner [Fri, 8 Oct 2010 23:59:27 +0000 (23:59 +0000)]
add jit support for the new psuedo instructions I added for
the add/or xform.  The JIT isn't mcized yet, boo.

This fixes Olden/voronoi, bh and a ton of other stuff that
uses the jit.

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

14 years agomachine a mutable machineinstr down into emitInstruction.
Chris Lattner [Fri, 8 Oct 2010 23:54:01 +0000 (23:54 +0000)]
machine a mutable machineinstr down into emitInstruction.

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

14 years agoFix the store part of this as well. Fixes smg2000.
Eric Christopher [Fri, 8 Oct 2010 23:52:16 +0000 (23:52 +0000)]
Fix the store part of this as well.  Fixes smg2000.

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

14 years agoRename SplitEditor::rewrite to finish() and break it out into a couple of new
Jakob Stoklund Olesen [Fri, 8 Oct 2010 23:42:21 +0000 (23:42 +0000)]
Rename SplitEditor::rewrite to finish() and break it out into a couple of new
functions: computeRemainder and rewrite.

When the remainder breaks up into multiple components, remember to rewrite those
uses as well.

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

14 years agoAvoid compiler warning: comparison between signed and unsigned integer.
Evan Cheng [Fri, 8 Oct 2010 23:01:57 +0000 (23:01 +0000)]
Avoid compiler warning: comparison between signed and unsigned integer.

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

14 years agoExtract method ProcessUses from LocalRewriter::RewriteMBB. Both parent and child
Jakob Stoklund Olesen [Fri, 8 Oct 2010 22:14:41 +0000 (22:14 +0000)]
Extract method ProcessUses from LocalRewriter::RewriteMBB. Both parent and child
are still way too long, but it's a start.

No functional change intended.

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

14 years agoDo not check that the bodies of two defs of same linkonce global are the same.
Anton Korobeynikov [Fri, 8 Oct 2010 21:50:04 +0000 (21:50 +0000)]
Do not check that the bodies of two defs of same linkonce global are the same.
Such a check does not make any sense in presense of inlining and other compiler-dependent stuff.
This should fix bunch of warnings on mingw32.

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

14 years agoImplement a few more binary encoding bits. Still very early stage proof-of-
Jim Grosbach [Fri, 8 Oct 2010 21:45:55 +0000 (21:45 +0000)]
Implement a few more binary encoding bits. Still very early stage proof-of-
concept level stuff at this point, but it is generally working for those
instructions that know how to map the operands.

This patch fills in the register operands for add/sub/or/etc instructions
and adds the conditional execution predicate encoding.

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

14 years agoAllow << streaming of MCOperand.
Jim Grosbach [Fri, 8 Oct 2010 21:36:13 +0000 (21:36 +0000)]
Allow << streaming of MCOperand.

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

14 years agoClassify value numbers into connected components in linear time.
Jakob Stoklund Olesen [Fri, 8 Oct 2010 21:19:28 +0000 (21:19 +0000)]
Classify value numbers into connected components in linear time.

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

14 years agoCall InitSections in llc and clang so that the binaries produced by them
Rafael Espindola [Fri, 8 Oct 2010 19:37:38 +0000 (19:37 +0000)]
Call InitSections in llc and clang so that the binaries produced by them
are easier to diff with those produced by llvm-mc.

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

14 years agoFilter out illegal formulae after updating offsets, not before, so that
Dan Gohman [Fri, 8 Oct 2010 19:33:26 +0000 (19:33 +0000)]
Filter out illegal formulae after updating offsets, not before, so that
formulae which become illegal as a result of the offset updating don't
escape.

This is for rdar://8529692. No testcase yet, because the given cases
hit use-list ordering differences.

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

14 years agoRecommit 116056, now with the missing file...
Cameron Esfahani [Fri, 8 Oct 2010 19:24:18 +0000 (19:24 +0000)]
Recommit 116056, now with the missing file...

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

14 years agoDon't waste time unfolding simple loads. The unfolded copy won't be hoisted.
Evan Cheng [Fri, 8 Oct 2010 18:59:19 +0000 (18:59 +0000)]
Don't waste time unfolding simple loads. The unfolded copy won't be hoisted.

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

14 years agoFix operand latency computation in cases where the definition operand is
Evan Cheng [Fri, 8 Oct 2010 18:42:25 +0000 (18:42 +0000)]
Fix operand latency computation in cases where the definition operand is
implicit. e.g.
%D6<def>, %D7<def> = VLD1q16 %R2<kill>, 0, ..., %Q3<imp-def>
%Q1<def> = VMULv8i16 %Q1<kill>, %Q3<kill>, ...

The real definition indices are 0,1.

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

14 years agoCrashRecovery: Fix raise() override to actually send the right signal, *cough*.
Daniel Dunbar [Fri, 8 Oct 2010 18:31:34 +0000 (18:31 +0000)]
CrashRecovery: Fix raise() override to actually send the right signal, *cough*.

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

14 years agoA few 80 column cleanups
Jim Grosbach [Fri, 8 Oct 2010 18:13:57 +0000 (18:13 +0000)]
A few 80 column cleanups

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

14 years agotrailing whitespace
Jim Grosbach [Fri, 8 Oct 2010 18:09:59 +0000 (18:09 +0000)]
trailing whitespace

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

14 years agoReapply 116059, this time without the fatfingered pasto at the top.
Jim Grosbach [Fri, 8 Oct 2010 17:45:54 +0000 (17:45 +0000)]
Reapply 116059, this time without the fatfingered pasto at the top.

''const'ify getMachineOpValue() and associated helpers.'

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

14 years agoReverting 116059. Bots are unhappy with it.
Jim Grosbach [Fri, 8 Oct 2010 17:28:40 +0000 (17:28 +0000)]
Reverting 116059. Bots are unhappy with it.

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

14 years agoreverting 116056: win64_params.ll may need to be conditionalized?
Andrew Trick [Fri, 8 Oct 2010 17:22:42 +0000 (17:22 +0000)]
reverting 116056: win64_params.ll may need to be conditionalized?

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

14 years agoLine number 0 indicates there is no source line/file name info available for this...
Devang Patel [Fri, 8 Oct 2010 17:18:54 +0000 (17:18 +0000)]
Line number 0 indicates there is no source line/file name info available for this construct.

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

14 years ago'const'ify getMachineOpValue() and associated helpers.
Jim Grosbach [Fri, 8 Oct 2010 16:52:44 +0000 (16:52 +0000)]
'const'ify getMachineOpValue() and associated helpers.

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

14 years agoStart separating out code metrics into code size metrics and code performance metrics...
Kenneth Uildriks [Fri, 8 Oct 2010 13:57:31 +0000 (13:57 +0000)]
Start separating out code metrics into code size metrics and code performance metrics.  Partial Specialization will apply the former to function specializations, and the latter to all callsites that can use a specialization, in order to decide whether to create a specialization

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

14 years agoSmall patch to restore home register stack space allocation for the Win64 case. ...
Cameron Esfahani [Fri, 8 Oct 2010 10:31:30 +0000 (10:31 +0000)]
Small patch to restore home register stack space allocation for the Win64 case.  Add test case.  This code eventually needs to be tighter, since it's always allocating it, even in leaf routines.

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

14 years agoChange register allocation order for ARM VFP and NEON registers to put the
Bob Wilson [Fri, 8 Oct 2010 06:15:13 +0000 (06:15 +0000)]
Change register allocation order for ARM VFP and NEON registers to put the
callee-saved registers at the end of the lists.  Also prefer to avoid using
the low registers that are in register subclasses required by certain
instructions, so that those registers will more likely be available when needed.
This change makes a huge improvement in spilling in some cases.  Thanks to
Jakob for helping me realize the problem.

Most of this patch is fixing the testsuite.  There are quite a few places
where we're checking for specific registers.  I changed those to wildcards
in places where that doesn't weaken the tests.  The spill-q.ll and
thumb2-spill-q.ll tests stopped spilling with this change, so I added a bunch
of live values to force spills on those tests.

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

14 years agotestcase that goes with r116053
Chris Lattner [Fri, 8 Oct 2010 05:12:30 +0000 (05:12 +0000)]
testcase that goes with r116053

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

14 years agofix a subtle bug I introduced in my refactoring, where we stopped preferring
Chris Lattner [Fri, 8 Oct 2010 05:12:14 +0000 (05:12 +0000)]
fix a subtle bug I introduced in my refactoring, where we stopped preferring
the i8 versions of instructions in some cases.  In test6, we started
generating:

cmpq $0, -8(%rsp)            ## encoding: [0x48,0x81,0x7c,0x24,0xf8,0x00,0x00,0x00,0x00]
                                        ## <MCInst #478 CMP64mi32
                                        ##  <MCOperand Reg:114>
                                        ##  <MCOperand Imm:1>
                                        ##  <MCOperand Reg:0>
                                        ##  <MCOperand Imm:-8>
                                        ##  <MCOperand Reg:0>
                                        ##  <MCOperand Imm:0>>

instead of:

cmpq $0, -8(%rsp)            ## encoding: [0x48,0x83,0x7c,0x24,0xf8,0x00]
                                        ## <MCInst #479 CMP64mi8
                                        ##  <MCOperand Reg:114>
                                        ##  <MCOperand Imm:1>
                                        ##  <MCOperand Reg:0>
                                        ##  <MCOperand Imm:-8>
                                        ##  <MCOperand Reg:0>
                                        ##  <MCOperand Imm:0>>

Fix this and add some comments.

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

14 years agorename test
Chris Lattner [Fri, 8 Oct 2010 05:05:06 +0000 (05:05 +0000)]
rename test

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

14 years agomerge tests
Chris Lattner [Fri, 8 Oct 2010 05:04:58 +0000 (05:04 +0000)]
merge tests

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

14 years agofilecheckize.
Chris Lattner [Fri, 8 Oct 2010 05:02:29 +0000 (05:02 +0000)]
filecheckize.

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

14 years agoreapply: Use the new TB_NOT_REVERSABLE flag instead of special
Chris Lattner [Fri, 8 Oct 2010 03:57:25 +0000 (03:57 +0000)]
reapply: Use the new TB_NOT_REVERSABLE flag instead of special
reapply: reimplement the second half of the or/add optimization.  We should now

with no changes.  Turns out that one missing "Defs = [EFLAGS]" can upset things
a bit.

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

14 years agoreapply the patch reverted in r116033:
Chris Lattner [Fri, 8 Oct 2010 03:54:52 +0000 (03:54 +0000)]
reapply the patch reverted in r116033:
"Reimplement (part of) the or -> add optimization.  Matching 'or' into 'add'"

With a critical fix: the add pseudos clobber EFLAGS.

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

14 years agoFix Formatting.
Michael J. Spencer [Fri, 8 Oct 2010 03:17:21 +0000 (03:17 +0000)]
Fix Formatting.

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

14 years agoMC-COFF: Fix Simple and Complex type. Fixes PR8320.
Michael J. Spencer [Fri, 8 Oct 2010 03:17:11 +0000 (03:17 +0000)]
MC-COFF: Fix Simple and Complex type. Fixes PR8320.

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

14 years agoFix Whitespace.
Michael J. Spencer [Fri, 8 Oct 2010 03:16:56 +0000 (03:16 +0000)]
Fix Whitespace.

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

14 years agoUpdate CMake.
Daniel Dunbar [Fri, 8 Oct 2010 02:30:03 +0000 (02:30 +0000)]
Update CMake.

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

14 years agoRevert "Reimplement (part of) the or -> add optimization. Matching 'or' into
Daniel Dunbar [Fri, 8 Oct 2010 02:07:32 +0000 (02:07 +0000)]
Revert "Reimplement (part of) the or -> add optimization.  Matching 'or' into
'add'", which seems to have broken just about everything.

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

14 years agoRevert "Use the new TB_NOT_REVERSABLE flag instead of special ", which depends
Daniel Dunbar [Fri, 8 Oct 2010 02:07:29 +0000 (02:07 +0000)]
Revert "Use the new TB_NOT_REVERSABLE flag instead of special ", which depends
on r116007, which I am about to revert.

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

14 years agoRevert "reimplement the second half of the or/add optimization. We should now",
Daniel Dunbar [Fri, 8 Oct 2010 02:07:26 +0000 (02:07 +0000)]
Revert "reimplement the second half of the or/add optimization.  We should now",
which depends on r116007, which I am about to revert.

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

14 years agoFix -Asserts warning.
Daniel Dunbar [Fri, 8 Oct 2010 02:07:22 +0000 (02:07 +0000)]
Fix -Asserts warning.

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

14 years agoMove to thumb2 loads, fixes a problem with incoming registers
Eric Christopher [Fri, 8 Oct 2010 01:13:17 +0000 (01:13 +0000)]
Move to thumb2 loads, fixes a problem with incoming registers
as thumb1.

Fixes lencod.

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

14 years agoreimplement the second half of the or/add optimization. We should now
Chris Lattner [Fri, 8 Oct 2010 01:05:10 +0000 (01:05 +0000)]
reimplement the second half of the or/add optimization.  We should now
only end up emitting LEA instead of OR.  If we aren't able to promote
something into an LEA, we should never be emitting it as an ADD.

Add some testcases that we emit "or" in cases where we used to produce
an "add".

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

14 years agoAdd test file for simple ARM binary encodings with MC
Jim Grosbach [Fri, 8 Oct 2010 00:47:59 +0000 (00:47 +0000)]
Add test file for simple ARM binary encodings with MC

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

14 years agoEnable binary encoding of some simple instructions.
Jim Grosbach [Fri, 8 Oct 2010 00:39:21 +0000 (00:39 +0000)]
Enable binary encoding of some simple instructions.

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

14 years agoTry to fix ocaml bindings.
Eric Christopher [Fri, 8 Oct 2010 00:36:21 +0000 (00:36 +0000)]
Try to fix ocaml bindings.

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

14 years agoMake <target>CodeEmitter::getBinaryCodeForInstr() a const method.
Jim Grosbach [Fri, 8 Oct 2010 00:21:28 +0000 (00:21 +0000)]
Make <target>CodeEmitter::getBinaryCodeForInstr() a const method.

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

14 years agoUse the new TB_NOT_REVERSABLE flag instead of special
Chris Lattner [Fri, 8 Oct 2010 00:03:02 +0000 (00:03 +0000)]
Use the new TB_NOT_REVERSABLE flag instead of special
casing FsMOVAPDrr/FsMOVAPSrr.

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

14 years agoMC-COFF: Add test for my last commit.
Michael J. Spencer [Fri, 8 Oct 2010 00:00:28 +0000 (00:00 +0000)]
MC-COFF: Add test for my last commit.

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

14 years agosimplify some map operations.
Chris Lattner [Thu, 7 Oct 2010 23:57:02 +0000 (23:57 +0000)]
simplify some map operations.

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

14 years agoMC-COFF: Handle relaxation in COFF better. Fixes PR8321.
Michael J. Spencer [Thu, 7 Oct 2010 23:55:40 +0000 (23:55 +0000)]
MC-COFF: Handle relaxation in COFF better. Fixes PR8321.

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

14 years agoDelete the FormulaSorter class and inline its one method into its
Dan Gohman [Thu, 7 Oct 2010 23:52:18 +0000 (23:52 +0000)]
Delete the FormulaSorter class and inline its one method into its
one user. This code will be restructured soon and FormulaSorter
is getting in the way.

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

14 years agoFix a spello.
Dan Gohman [Thu, 7 Oct 2010 23:43:09 +0000 (23:43 +0000)]
Fix a spello.

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

14 years agoCharge a formula for explicit multiplies on scaled registers too,
Dan Gohman [Thu, 7 Oct 2010 23:41:58 +0000 (23:41 +0000)]
Charge a formula for explicit multiplies on scaled registers too,
not just base registers.

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

14 years agoUse size_t for consistency.
Dan Gohman [Thu, 7 Oct 2010 23:37:58 +0000 (23:37 +0000)]
Use size_t for consistency.

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

14 years agoWhen merging one use into another, transfer the offsets from
Dan Gohman [Thu, 7 Oct 2010 23:36:45 +0000 (23:36 +0000)]
When merging one use into another, transfer the offsets from
the old use to the new one.

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

14 years agoReimplement (part of) the or -> add optimization. Matching 'or' into 'add'
Chris Lattner [Thu, 7 Oct 2010 23:36:18 +0000 (23:36 +0000)]
Reimplement (part of) the or -> add optimization.  Matching 'or' into 'add'
is general goodness because it allows ORs to be converted to LEA to avoid
inserting copies.  However, this is bad because it makes the generated .s
file less obvious and gives valgrind heartburn (tons of false positives in
bitfield code).

While the general fix should be in valgrind, we can at least try to avoid
emitting ADD instructions that *don't* get promoted to LEA.  This is more
work because it requires introducing pseudo instructions to represents
"add that knows the bits are disjoint", but hey, people really love valgrind.

This fixes this testcase:
https://bugs.kde.org/show_bug.cgi?id=242137#c20

the add r/i cases are coming next.

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

14 years agoAfter splitting, the remaining LiveInterval may be fragmented into multiple
Jakob Stoklund Olesen [Thu, 7 Oct 2010 23:34:34 +0000 (23:34 +0000)]
After splitting, the remaining LiveInterval may be fragmented into multiple
connected components. These components should be allocated different virtual
registers because there is no reason for them to be allocated together.

Add the ConnectedVNInfoEqClasses class to calculate the connected components,
and move values to new LiveIntervals.

Use it from SplitKit::rewrite by creating new virtual registers for the
components.

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

14 years agoFix LSR to keep the RegUseTracker up to date when combining users.
Dan Gohman [Thu, 7 Oct 2010 23:33:43 +0000 (23:33 +0000)]
Fix LSR to keep the RegUseTracker up to date when combining users.
This doesn't usually matter, because the other heuristics usually
succeed regardless, but it's good to keep the register use
bookkeeping consistent.

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

14 years agoRemove LoopIndexSplit pass. It is neither maintained nor used by anyone.
Devang Patel [Thu, 7 Oct 2010 23:29:37 +0000 (23:29 +0000)]
Remove LoopIndexSplit pass. It is neither maintained nor used by anyone.

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

14 years agoUnbreak cmake build.
John Thompson [Thu, 7 Oct 2010 23:12:15 +0000 (23:12 +0000)]
Unbreak cmake build.

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

14 years agoCode refactoring.
Evan Cheng [Thu, 7 Oct 2010 23:12:15 +0000 (23:12 +0000)]
Code refactoring.

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

14 years agoReduce casting in various tables by defining the table
Chris Lattner [Thu, 7 Oct 2010 23:08:41 +0000 (23:08 +0000)]
Reduce casting in various tables by defining the table
with the right types.

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

14 years agoWarn about broken GCCs on ARM due to the problem fixed:
Nick Lewycky [Thu, 7 Oct 2010 22:30:47 +0000 (22:30 +0000)]
Warn about broken GCCs on ARM due to the problem fixed:
http://gcc.gnu.org/ml/gcc-patches/2010-09/msg01070.html

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

14 years agosimplify code: don't build up vector only to assert it is empty.
Chris Lattner [Thu, 7 Oct 2010 22:26:19 +0000 (22:26 +0000)]
simplify code: don't build up vector only to assert it is empty.

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

14 years agoNow with fewer extraneous semicolons!
Owen Anderson [Thu, 7 Oct 2010 22:25:06 +0000 (22:25 +0000)]
Now with fewer extraneous semicolons!

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

14 years agoMove checking for t2MOVCCi16 to the right place.
Jim Grosbach [Thu, 7 Oct 2010 22:14:01 +0000 (22:14 +0000)]
Move checking for t2MOVCCi16 to the right place.

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

14 years agoTrivial MC code emitter shell. No instruction forms actually handled yet.
Jim Grosbach [Thu, 7 Oct 2010 22:12:50 +0000 (22:12 +0000)]
Trivial MC code emitter shell. No instruction forms actually handled yet.

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

14 years agoCorrectly check if a path is a directory. Fix by Brian Korver.
Evan Cheng [Thu, 7 Oct 2010 22:05:57 +0000 (22:05 +0000)]
Correctly check if a path is a directory. Fix by Brian Korver.

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

14 years agoProvie a clearner interface so that FE can decide whether a function has prototype...
Devang Patel [Thu, 7 Oct 2010 22:03:01 +0000 (22:03 +0000)]
Provie a clearner interface so that FE can decide whether a function has prototype or not.

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

14 years agoInclude the auto-generated bits for machine encoding.
Jim Grosbach [Thu, 7 Oct 2010 21:57:55 +0000 (21:57 +0000)]
Include the auto-generated bits for machine encoding.

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

14 years agoFix typo in comment.
Nick Lewycky [Thu, 7 Oct 2010 21:55:16 +0000 (21:55 +0000)]
Fix typo in comment.

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

14 years agoRemember to promote load/store types for stack to register size.
Eric Christopher [Thu, 7 Oct 2010 21:40:18 +0000 (21:40 +0000)]
Remember to promote load/store types for stack to register size.

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

14 years agoconvert test to use the existing classes that the multipatterns
Chris Lattner [Thu, 7 Oct 2010 21:31:03 +0000 (21:31 +0000)]
convert test to use the existing classes that the multipatterns
use.  Since TEST is completely different than all other binops,
don't define a multipattern for it.

This completes factorization of binops.

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

14 years agoconvert cmp to use a multipattern
Chris Lattner [Thu, 7 Oct 2010 20:56:25 +0000 (20:56 +0000)]
convert cmp to use a multipattern

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

14 years agoCanonicalize X86ISD::MOVDDUP nodes to v2f64 to make sure all cases match. Also elimin...
Evan Cheng [Thu, 7 Oct 2010 20:50:20 +0000 (20:50 +0000)]
Canonicalize X86ISD::MOVDDUP nodes to v2f64 to make sure all cases match. Also eliminate unneeded isel patterns. rdar://8520311

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

14 years agoThis file needs ToolOutputFile.h too.
Dan Gohman [Thu, 7 Oct 2010 20:48:46 +0000 (20:48 +0000)]
This file needs ToolOutputFile.h too.

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

14 years agoARM instruction don't have instruction prefixes, so remove the helper functions
Jim Grosbach [Thu, 7 Oct 2010 20:41:30 +0000 (20:41 +0000)]
ARM instruction don't have instruction prefixes, so remove the helper functions
for them from the MCCodeEmitter.

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

14 years agoAdd output stream operator for MCInst.
Jim Grosbach [Thu, 7 Oct 2010 20:38:37 +0000 (20:38 +0000)]
Add output stream operator for MCInst.

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

14 years agoMove tool_output_file into its own file.
Dan Gohman [Thu, 7 Oct 2010 20:32:40 +0000 (20:32 +0000)]
Move tool_output_file into its own file.

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

14 years agoAdd initialization routines for Instrumentation.
Owen Anderson [Thu, 7 Oct 2010 20:17:24 +0000 (20:17 +0000)]
Add initialization routines for Instrumentation.

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

14 years agoreduce redundancy between pattern copies.
Chris Lattner [Thu, 7 Oct 2010 20:14:23 +0000 (20:14 +0000)]
reduce redundancy between pattern copies.

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

14 years agothe opcode for BinOpMI/BinOpMI8 is always the same, remove the argument.
Chris Lattner [Thu, 7 Oct 2010 20:06:24 +0000 (20:06 +0000)]
the opcode for BinOpMI/BinOpMI8 is always the same, remove the argument.

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

14 years agoImprove comment.
Owen Anderson [Thu, 7 Oct 2010 20:05:18 +0000 (20:05 +0000)]
Improve comment.

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