oota-llvm.git
20 years agoHide variable from other functions.
Alkis Evlogimenos [Thu, 4 Mar 2004 17:50:44 +0000 (17:50 +0000)]
Hide variable from other functions.

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

20 years agoFix BU datastructures with povray!
Chris Lattner [Thu, 4 Mar 2004 17:06:53 +0000 (17:06 +0000)]
Fix BU datastructures with povray!

The problem was that we were merging a field of a node with a value that was
deleted.  Thanks to bugpoint for reducing povray to a nice small 3 function
example.  :)

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

20 years agoMinor changes, remove some debugging code that got checked in somehow.
Chris Lattner [Thu, 4 Mar 2004 17:05:28 +0000 (17:05 +0000)]
Minor changes, remove some debugging code that got checked in somehow.
Make sure to scope the NodeMap passed into cloneInto so that it doesn't point
to nodes that are deleted.  Add some FIXME's for future performance enhancements.

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

20 years agoAsm printer support, based on x86 - only prints mnemonics for now
Brian Gaeke [Thu, 4 Mar 2004 06:00:41 +0000 (06:00 +0000)]
Asm printer support, based on x86 - only prints mnemonics for now

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

20 years agoDouble-FP pseudo-registers.
Brian Gaeke [Thu, 4 Mar 2004 05:15:03 +0000 (05:15 +0000)]
Double-FP pseudo-registers.

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

20 years agoSubtract instructions; minor cleanups
Brian Gaeke [Thu, 4 Mar 2004 04:37:45 +0000 (04:37 +0000)]
Subtract instructions; minor cleanups

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

20 years agoFloating point regs
Brian Gaeke [Thu, 4 Mar 2004 04:37:22 +0000 (04:37 +0000)]
Floating point regs

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

20 years agoOnly clone nodes that are needed in the caller, don't clone ALL aux calls. This...
Chris Lattner [Thu, 4 Mar 2004 03:57:53 +0000 (03:57 +0000)]
Only clone nodes that are needed in the caller, don't clone ALL aux calls.  This improves
povray from having ~600K nodes and 300K call nodes to 65K nodes and 25K call nodes.

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

20 years agoSimple copyConstantToReg support, SETHIi and ORri
Brian Gaeke [Thu, 4 Mar 2004 00:56:25 +0000 (00:56 +0000)]
Simple copyConstantToReg support, SETHIi and ORri

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

20 years agoSupport add - note, still missing important copyConstantToRegister stuff
Brian Gaeke [Wed, 3 Mar 2004 23:03:14 +0000 (23:03 +0000)]
Support add - note, still missing important copyConstantToRegister stuff

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

20 years agoFix a minor bug handling incomplete programs
Chris Lattner [Wed, 3 Mar 2004 23:00:19 +0000 (23:00 +0000)]
Fix a minor bug handling incomplete programs

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

20 years agoFix a DSA bug that caused DSA to generate incredibly huge graphs and take forever to
Chris Lattner [Wed, 3 Mar 2004 22:01:09 +0000 (22:01 +0000)]
Fix a DSA bug that caused DSA to generate incredibly huge graphs and take forever to
do it on povray.  The problem is that we were not copying globals from callees to
callers unless the existed in both graphs.  We should have copied them in the case
where the global pointed to a node that was copied as well.

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

20 years agoRename method, add new method
Chris Lattner [Wed, 3 Mar 2004 22:00:20 +0000 (22:00 +0000)]
Rename method, add new method

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

20 years agoDeinline methods, add fast exit
Chris Lattner [Wed, 3 Mar 2004 20:55:27 +0000 (20:55 +0000)]
Deinline methods, add fast exit

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

20 years agoDe-inline methods
Chris Lattner [Wed, 3 Mar 2004 20:55:15 +0000 (20:55 +0000)]
De-inline methods

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

20 years agoMake MachineOperand's value named 'contents'. Make really, really sure
Brian Gaeke [Wed, 3 Mar 2004 19:07:27 +0000 (19:07 +0000)]
Make MachineOperand's value named 'contents'.  Make really, really sure
it is always completely initialized and copied.
Also, fix up many comments and asserts.

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

20 years agoSquash /usr/dcs path; use a 'require <version>' instead.
Brian Gaeke [Wed, 3 Mar 2004 17:38:51 +0000 (17:38 +0000)]
Squash /usr/dcs path; use a 'require <version>' instead.

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

20 years agoAdd my regression finding by binary searching cvs script.
Brian Gaeke [Wed, 3 Mar 2004 08:14:25 +0000 (08:14 +0000)]
Add my regression finding by binary searching cvs script.

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

20 years agoFix a node mapping problem that was causing the pool allocator to locally allocate
Chris Lattner [Wed, 3 Mar 2004 05:34:31 +0000 (05:34 +0000)]
Fix a node mapping problem that was causing the pool allocator to locally allocate
nodes that were globally live, thus breaking programs.

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

20 years agoSPECIFY a target data to initialize the CBE target with. Until now we have
Chris Lattner [Wed, 3 Mar 2004 02:14:15 +0000 (02:14 +0000)]
SPECIFY a target data to initialize the CBE target with.  Until now we have
been using the default target data layout object to lower malloc instructions,
causing us to allocate more memory than we needed!  This could improve the
performance of the CBE generated code substantially!

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

20 years agoAdd a new constructor
Chris Lattner [Wed, 3 Mar 2004 02:12:47 +0000 (02:12 +0000)]
Add a new constructor

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

20 years agoDon't emit things like malloc(16*1). Allocation instructions are fixed arity now.
Chris Lattner [Wed, 3 Mar 2004 01:40:53 +0000 (01:40 +0000)]
Don't emit things like malloc(16*1).  Allocation instructions are fixed arity now.

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

20 years agoFINALLY be able to get symbolic type names in the globals graph!
Chris Lattner [Tue, 2 Mar 2004 21:39:43 +0000 (21:39 +0000)]
FINALLY be able to get symbolic type names in the globals graph!

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

20 years agoReally, only if reopen
Chris Lattner [Tue, 2 Mar 2004 20:46:18 +0000 (20:46 +0000)]
Really, only if reopen

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

20 years agoAdded EH support.
John Criswell [Tue, 2 Mar 2004 15:54:25 +0000 (15:54 +0000)]
Added EH support.

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

20 years agoMake <di> into <dt> (definition list term).
Alkis Evlogimenos [Tue, 2 Mar 2004 03:36:10 +0000 (03:36 +0000)]
Make <di> into <dt> (definition list term).

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

20 years agoDoxygenify comments.
Misha Brukman [Tue, 2 Mar 2004 00:22:19 +0000 (00:22 +0000)]
Doxygenify comments.

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

20 years agoImplement ExtractCodeRegion()
Misha Brukman [Tue, 2 Mar 2004 00:20:57 +0000 (00:20 +0000)]
Implement ExtractCodeRegion()

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

20 years agoAdd prototype for ExtractCodeRegion()
Misha Brukman [Tue, 2 Mar 2004 00:20:32 +0000 (00:20 +0000)]
Add prototype for ExtractCodeRegion()

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

20 years agoMake a note that this is usually used via bugpoint.
Misha Brukman [Tue, 2 Mar 2004 00:19:09 +0000 (00:19 +0000)]
Make a note that this is usually used via bugpoint.

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

20 years agoDoxygenify some comments.
Misha Brukman [Mon, 1 Mar 2004 23:53:11 +0000 (23:53 +0000)]
Doxygenify some comments.

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

20 years agoFix <p> missing <p> tag
Alkis Evlogimenos [Mon, 1 Mar 2004 23:25:38 +0000 (23:25 +0000)]
Fix <p> missing <p> tag

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

20 years agoAdd a spiller option to llc. A simple spiller will come soon. When we get CFG in...
Alkis Evlogimenos [Mon, 1 Mar 2004 23:18:15 +0000 (23:18 +0000)]
Add a spiller option to llc. A simple spiller will come soon. When we get CFG in the machine code represenation a global spiller will also be possible. Also document the linear scan register allocator but mark it as experimental for now.

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

20 years agoAdd the long awaited memory operand folding support for linear scan
Alkis Evlogimenos [Mon, 1 Mar 2004 20:05:10 +0000 (20:05 +0000)]
Add the long awaited memory operand folding support for linear scan

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

20 years ago* If a badref has a name, print it out for ease of debugging
Misha Brukman [Mon, 1 Mar 2004 19:48:13 +0000 (19:48 +0000)]
* If a badref has a name, print it out for ease of debugging
* Doxygenify (some) comments

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

20 years agoAdd new method
Chris Lattner [Mon, 1 Mar 2004 19:36:50 +0000 (19:36 +0000)]
Add new method

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

20 years agoCorrectly add an array marker on a node when appropriate!
Chris Lattner [Mon, 1 Mar 2004 19:02:54 +0000 (19:02 +0000)]
Correctly add an array marker on a node when appropriate!

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

20 years agoFix grammar and doxygenify comments.
Misha Brukman [Mon, 1 Mar 2004 18:31:19 +0000 (18:31 +0000)]
Fix grammar and doxygenify comments.

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

20 years ago* Add implementation of ExtractBasicBlock()
Misha Brukman [Mon, 1 Mar 2004 18:28:34 +0000 (18:28 +0000)]
* Add implementation of ExtractBasicBlock()
* Add comments to ExtractLoop()

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

20 years agoAdd ability to extract a single basic block into a new function.
Misha Brukman [Mon, 1 Mar 2004 18:27:13 +0000 (18:27 +0000)]
Add ability to extract a single basic block into a new function.

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

20 years ago* HTML 4.01 Strict compliance
Misha Brukman [Mon, 1 Mar 2004 18:21:04 +0000 (18:21 +0000)]
* HTML 4.01 Strict compliance
* Removed unnecessary tabs in the entire file

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

20 years agoHTML 4.01 Strict compliance.
Misha Brukman [Mon, 1 Mar 2004 17:47:27 +0000 (17:47 +0000)]
HTML 4.01 Strict compliance.

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

20 years agoAdd this back, as its absence introduces assertions, and it seems to work now
Chris Lattner [Mon, 1 Mar 2004 15:28:27 +0000 (15:28 +0000)]
Add this back, as its absence introduces assertions, and it seems to work now
that Instructions are annotable again

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

20 years agofix bug in previous checkin
Tanya Lattner [Mon, 1 Mar 2004 15:05:17 +0000 (15:05 +0000)]
fix bug in previous checkin

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

20 years agoTargetCacheInfo has been removed; its only uses were to propagate a constant
Brian Gaeke [Mon, 1 Mar 2004 06:43:29 +0000 (06:43 +0000)]
TargetCacheInfo has been removed; its only uses were to propagate a constant
(16) into certain areas of the SPARC V9 back-end. I'm fairly sure the US IIIi's
dcache has 32-byte lines, so I'm not sure where the 16 came from. However, in
the interest of not breaking things any more than they already are, I'm going
to leave the constant alone.

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

20 years agoAdding new Modulo Scheduling graph files.
Tanya Lattner [Mon, 1 Mar 2004 02:50:57 +0000 (02:50 +0000)]
Adding new Modulo Scheduling graph files.

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

20 years agoRemoving old graph files with new graph files that I wrote. Updated ModuloScheduling...
Tanya Lattner [Mon, 1 Mar 2004 02:50:01 +0000 (02:50 +0000)]
Removing old graph files with new graph files that I wrote. Updated ModuloScheduling pass, but still in progress.

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

20 years agoExpand on my note-to-self
Chris Lattner [Mon, 1 Mar 2004 02:44:44 +0000 (02:44 +0000)]
Expand on my note-to-self

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

20 years agoHandle passing constant integers to functions much more efficiently. Instead
Chris Lattner [Mon, 1 Mar 2004 02:42:43 +0000 (02:42 +0000)]
Handle passing constant integers to functions much more efficiently.  Instead
of generating this code:

        mov %EAX, 4
        mov DWORD PTR [%ESP], %EAX
        mov %AX, 123
        movsx %EAX, %AX
        mov DWORD PTR [%ESP + 4], %EAX
        call Y

we now generate:
        mov DWORD PTR [%ESP], 4
        mov DWORD PTR [%ESP + 4], 123
        call Y

Which hurts the eyes less.  :)

Considering that register pressure around call sites is already high (with all
of the callee clobber registers n stuff), this may help a lot.

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

20 years agoDon't look in the .libs directories that libtool makes
Brian Gaeke [Mon, 1 Mar 2004 02:41:22 +0000 (02:41 +0000)]
Don't look in the .libs directories that libtool makes

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

20 years agoFix a minor code-quality issue. When passing 8 and 16-bit integer constants
Chris Lattner [Mon, 1 Mar 2004 02:34:08 +0000 (02:34 +0000)]
Fix a minor code-quality issue.  When passing 8 and 16-bit integer constants
to function calls, we would emit dead code, like this:

int Y(int, short, double);
int X() {
  Y(4, 123, 4);
}

--- Old
X:
        sub %ESP, 20
        mov %EAX, 4
        mov DWORD PTR [%ESP], %EAX
***     mov %AX, 123
        mov %AX, 123
        movsx %EAX, %AX
        mov DWORD PTR [%ESP + 4], %EAX
        fld QWORD PTR [.CPIX_0]
        fstp QWORD PTR [%ESP + 8]
        call Y
        mov %EAX, 0
        # IMPLICIT_USE %EAX %ESP
        add %ESP, 20
        ret

Now we emit:
X:
        sub %ESP, 20
        mov %EAX, 4
        mov DWORD PTR [%ESP], %EAX
        mov %AX, 123
        movsx %EAX, %AX
        mov DWORD PTR [%ESP + 4], %EAX
        fld QWORD PTR [.CPIX_0]
        fstp QWORD PTR [%ESP + 8]
        call Y
        mov %EAX, 0
        # IMPLICIT_USE %EAX %ESP
        add %ESP, 20
        ret

Next up, eliminate the mov AX and movsx entirely!

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

20 years agoFix the "partial pool allocator" on em3d and others. The problem is that
Chris Lattner [Mon, 1 Mar 2004 01:42:26 +0000 (01:42 +0000)]
Fix the "partial pool allocator" on em3d and others.  The problem is that
DSNodes, unlike other GraphTraits nodes, can have null outgoing edges, and
df_iterator doesn't take this into consideration.  As a workaround, the
successor iterator now handles null nodes and 'indicates' that null has
no successors.

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

20 years agoMake Module annotable. Reid has a bunch of code that depends on this, and
Chris Lattner [Mon, 1 Mar 2004 01:25:37 +0000 (01:25 +0000)]
Make Module annotable.  Reid has a bunch of code that depends on this, and
we really don't win that much by eliminating this (not many Modules are
allocated), so it's not worth it.  When we can, we should revisit this in
the future.

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

20 years agoDisable tail duplication in a case that breaks on Olden/tsp
Chris Lattner [Mon, 1 Mar 2004 01:12:13 +0000 (01:12 +0000)]
Disable tail duplication in a case that breaks on Olden/tsp

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

20 years agoDoxygenify comments.
Misha Brukman [Sun, 29 Feb 2004 23:55:11 +0000 (23:55 +0000)]
Doxygenify comments.

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

20 years ago* Remove function to find "main" in a Module, there's a method for that
Misha Brukman [Sun, 29 Feb 2004 23:09:10 +0000 (23:09 +0000)]
* Remove function to find "main" in a Module, there's a method for that
* Removing extraneous empty space and empty comment lines

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

20 years agoFix -debug-pass=Executions, which relied on Function, Module, and BasicBlock
Chris Lattner [Sun, 29 Feb 2004 22:37:04 +0000 (22:37 +0000)]
Fix -debug-pass=Executions, which relied on Function, Module, and BasicBlock
being annotable

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

20 years agoFix bug: test/Regression/Transforms/LowerInvoke/2004-02-29-PHICrash.llx
Chris Lattner [Sun, 29 Feb 2004 22:24:41 +0000 (22:24 +0000)]
Fix bug: test/Regression/Transforms/LowerInvoke/2004-02-29-PHICrash.llx

... which tickled the lowerinvoke pass because it used the BCE routines.

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

20 years agoTestcase for a bug that caused a whole bunch of testcases to die in the nightly
Chris Lattner [Sun, 29 Feb 2004 22:15:51 +0000 (22:15 +0000)]
Testcase for a bug that caused a whole bunch of testcases to die in the nightly
tester last night.

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

20 years agoAdd an assert
Chris Lattner [Sun, 29 Feb 2004 22:01:51 +0000 (22:01 +0000)]
Add an assert

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

20 years agoAdd back #include I messed up
Chris Lattner [Sun, 29 Feb 2004 21:40:53 +0000 (21:40 +0000)]
Add back #include I messed up

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

20 years agoUrg, forgot to check this in.
Chris Lattner [Sun, 29 Feb 2004 21:03:08 +0000 (21:03 +0000)]
Urg, forgot to check this in.

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

20 years agoModule does not need to be annotatable aka annotable
Chris Lattner [Sun, 29 Feb 2004 19:27:55 +0000 (19:27 +0000)]
Module does not need to be annotatable aka annotable

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

20 years agoRemove public header. It's been moved to lib/Target/SparcV9
Chris Lattner [Sun, 29 Feb 2004 19:13:20 +0000 (19:13 +0000)]
Remove public header.  It's been moved to lib/Target/SparcV9

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

20 years agoMove the private MachineInstrAnnot.h into a private directory.
Chris Lattner [Sun, 29 Feb 2004 19:12:51 +0000 (19:12 +0000)]
Move the private MachineInstrAnnot.h into a private directory.

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

20 years agoRemove use of an ugly header
Chris Lattner [Sun, 29 Feb 2004 19:04:31 +0000 (19:04 +0000)]
Remove use of an ugly header

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

20 years agoMove methods out of .h file
Chris Lattner [Sun, 29 Feb 2004 19:02:39 +0000 (19:02 +0000)]
Move methods out of .h file

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

20 years agoDo not use explicit casts that hide the dependence on Instruction being
Chris Lattner [Sun, 29 Feb 2004 19:02:26 +0000 (19:02 +0000)]
Do not use explicit casts that hide the dependence on Instruction being
annotable

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

20 years agoUgh, the old sparc backend attaches MachineCodeForInstruction annotations on
Chris Lattner [Sun, 29 Feb 2004 18:54:23 +0000 (18:54 +0000)]
Ugh, the old sparc backend attaches MachineCodeForInstruction annotations on
LLVM instructions.  Because it contains an explicit cast, we didn't catch it.
I guess instruction's will be annotable for the duration of the sparcv9's
existence.

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

20 years agoAdd instruction name description.
Alkis Evlogimenos [Sun, 29 Feb 2004 18:44:03 +0000 (18:44 +0000)]
Add instruction name description.

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

20 years agoUse correct template for SHLD and SHRD instructions so that the memory
Alkis Evlogimenos [Sun, 29 Feb 2004 09:19:40 +0000 (09:19 +0000)]
Use correct template for SHLD and SHRD instructions so that the memory
operand size is correctly specified.

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

20 years agoImprove allocation order:
Alkis Evlogimenos [Sun, 29 Feb 2004 09:17:01 +0000 (09:17 +0000)]
Improve allocation order:

1) For 8-bit registers try to use first the ones that are parts of the
   same register (AL then AH). This way we only alias 2 16/32-bit
   registers after allocating 4 8-bit variables.

2) Move EBX as the last register to allocate. This will cause less
   spills to happen since we will have 8-bit registers available up to
   register excaustion (assuming we use the allocation order). It
   would be nice if we could push all of the 8-bit aliased registers
   towards the end but we much prefer to keep callee saved register to
   the end to avoid saving them on entry and exit of the function.

For example this gives a slight reduction of spills with linear scan
on 164.gzip.

Before:

11221 asm-printer           - Number of machine instrs printed
  975 spiller               - Number of loads added
  675 spiller               - Number of stores added
  398 spiller               - Number of register spills

After:

11182 asm-printer           - Number of machine instrs printed
  952 spiller               - Number of loads added
  652 spiller               - Number of stores added
  386 spiller               - Number of register spills

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

20 years agoA big X86 instruction rename. The instructions are renamed to make
Alkis Evlogimenos [Sun, 29 Feb 2004 08:50:03 +0000 (08:50 +0000)]
A big X86 instruction rename. The instructions are renamed to make
their names more decriptive. A name consists of the base name, a
default operand size followed by a character per operand with an
optional special size. For example:

ADD8rr -> add, 8-bit register, 8-bit register

IMUL16rmi -> imul, 16-bit register, 16-bit memory, 16-bit immediate

IMUL16rmi8 -> imul, 16-bit register, 16-bit memory, 8-bit immediate

MOVSX32rm16 -> movsx, 32-bit register, 16-bit memory

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

20 years agoRemove dead member variables of SparcV9SchedInfo and TargetSchedInfo
Brian Gaeke [Sun, 29 Feb 2004 08:40:03 +0000 (08:40 +0000)]
Remove dead member variables of SparcV9SchedInfo and TargetSchedInfo

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

20 years agoEliminate the X86-specific BMI functions, using BuildMI instead.
Chris Lattner [Sun, 29 Feb 2004 07:22:16 +0000 (07:22 +0000)]
Eliminate the X86-specific BMI functions, using BuildMI instead.
Replace uses of addZImm with addImm.

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

20 years agoFix a miscompilation of 197.parser that occurs when you have single basic
Chris Lattner [Sun, 29 Feb 2004 07:10:16 +0000 (07:10 +0000)]
Fix a miscompilation of 197.parser that occurs when you have single basic
block loops.

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

20 years agoFix PR255: [tailduplication] Single basic block loops are very rare
Chris Lattner [Sun, 29 Feb 2004 06:41:20 +0000 (06:41 +0000)]
Fix PR255: [tailduplication] Single basic block loops are very rare

Note that this is a band-aid put over a band-aid.  This just undisables
tail duplication in on very specific case that it seems to work in.

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

20 years agoUpdate comment at head of file. Also fix C 'typedef struct' nonsense I
Brian Gaeke [Sun, 29 Feb 2004 06:33:28 +0000 (06:33 +0000)]
Update comment at head of file. Also fix C 'typedef struct' nonsense I
inadvertently left in here.

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

20 years agoAdjust to change in TII ctor arguments
Chris Lattner [Sun, 29 Feb 2004 06:31:44 +0000 (06:31 +0000)]
Adjust to change in TII ctor arguments

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

20 years agoEliminate the distinction between "real" and "unreal" instructions
Chris Lattner [Sun, 29 Feb 2004 06:31:16 +0000 (06:31 +0000)]
Eliminate the distinction between "real" and "unreal" instructions

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

20 years agoAdd more architectures, and ELF64 stuff.
Brian Gaeke [Sun, 29 Feb 2004 06:30:25 +0000 (06:30 +0000)]
Add more architectures, and ELF64 stuff.

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

20 years agoThese two virtual methods are never called.
Chris Lattner [Sun, 29 Feb 2004 05:59:33 +0000 (05:59 +0000)]
These two virtual methods are never called.

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

20 years agoRemove a TON of flags that noone cares about
Chris Lattner [Sun, 29 Feb 2004 05:58:30 +0000 (05:58 +0000)]
Remove a TON of flags that noone cares about

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

20 years agoNoone calls these virtual methods
Chris Lattner [Sun, 29 Feb 2004 05:58:16 +0000 (05:58 +0000)]
Noone calls these virtual methods

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

20 years agoThis is the only file in the system that uses this enum. eliminate it.
Chris Lattner [Sun, 29 Feb 2004 05:57:59 +0000 (05:57 +0000)]
This is the only file in the system that uses this enum. eliminate it.

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

20 years agoScrap a huge layer of cruft out of this interface.
Chris Lattner [Sun, 29 Feb 2004 05:57:21 +0000 (05:57 +0000)]
Scrap a huge layer of cruft out of this interface.

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

20 years agoImplement initial prolog/epilog code insertion methods.
Chris Lattner [Sun, 29 Feb 2004 05:18:30 +0000 (05:18 +0000)]
Implement initial prolog/epilog code insertion methods.

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

20 years agoRemove unneeded #include
Chris Lattner [Sun, 29 Feb 2004 05:15:56 +0000 (05:15 +0000)]
Remove unneeded #include

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

20 years agoint64_t -> int
Chris Lattner [Sun, 29 Feb 2004 05:07:02 +0000 (05:07 +0000)]
int64_t -> int

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

20 years agoContinue Alkis's int64_t cleanup. This makes all of the immediate related
Chris Lattner [Sun, 29 Feb 2004 05:06:49 +0000 (05:06 +0000)]
Continue Alkis's int64_t cleanup.  This makes all of the immediate related
methods take an int or unsigned value instead of int64_t.

Also, add an 'addImm' method to the MachineInstrBuilder class, because the
fact that the hardware sign or zero extends it does not/should not matter
to the code generator.  Once the old sparc backend is removed the difference
can be eliminated.

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

20 years agoAdd BuildMI variants that take a MBB::iterator
Chris Lattner [Sun, 29 Feb 2004 04:55:28 +0000 (04:55 +0000)]
Add BuildMI variants that take a MBB::iterator

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

20 years agoUse correct template for ADC instruction with memory operands.
Alkis Evlogimenos [Sun, 29 Feb 2004 02:18:17 +0000 (02:18 +0000)]
Use correct template for ADC instruction with memory operands.

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

20 years agoAdd an instruction selector capable of selecting 'ret void'
Chris Lattner [Sun, 29 Feb 2004 00:27:00 +0000 (00:27 +0000)]
Add an instruction selector capable of selecting 'ret void'

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

20 years agoSHLD and SHRD take 32-bit operands but an 8-bit immediate. Rename them
Alkis Evlogimenos [Sat, 28 Feb 2004 23:46:44 +0000 (23:46 +0000)]
SHLD and SHRD take 32-bit operands but an 8-bit immediate. Rename them
to denote this fact.

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

20 years agoFloating point loads/stores act on memory operands. Rename them to
Alkis Evlogimenos [Sat, 28 Feb 2004 23:42:35 +0000 (23:42 +0000)]
Floating point loads/stores act on memory operands. Rename them to
denote this fact.

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

20 years agoRename instruction templates to be easier to the human eye to
Alkis Evlogimenos [Sat, 28 Feb 2004 23:09:03 +0000 (23:09 +0000)]
Rename instruction templates to be easier to the human eye to
parse. The name is now I (operand size)*. For example:

Im32 -> instruction with 32-bit memory operands.

Im16i8 -> instruction with 16-bit memory operands and 8 bit immediate
          operands.

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

20 years agoUncomment instructions that take both an immediate and a memory
Alkis Evlogimenos [Sat, 28 Feb 2004 22:06:59 +0000 (22:06 +0000)]
Uncomment instructions that take both an immediate and a memory
operand but their sizes differ.

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

20 years agoFix my sloppiness
Brian Gaeke [Sat, 28 Feb 2004 22:06:03 +0000 (22:06 +0000)]
Fix my sloppiness

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

20 years agoEach instruction now has both an ImmType and a MemType. This describes
Alkis Evlogimenos [Sat, 28 Feb 2004 22:02:05 +0000 (22:02 +0000)]
Each instruction now has both an ImmType and a MemType. This describes
the size of the immediate and the memory operand on instructions that
use them. This resolves problems with instructions that take both a
memory and an immediate operand but their sizes differ (i.e. ADDmi32b).

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

20 years agoFix typo in comment
Brian Gaeke [Sat, 28 Feb 2004 21:55:18 +0000 (21:55 +0000)]
Fix typo in comment

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