aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add the long awaited memory operand folding support for linear scanAlkis Evlogimenos2004-03-016-30/+89
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12058 91177308-0d34-0410-b5e6-96231b3b80d8
* * If a badref has a name, print it out for ease of debuggingMisha Brukman2004-03-011-15/+17
| | | | | | | * Doxygenify (some) comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12057 91177308-0d34-0410-b5e6-96231b3b80d8
* Add new methodChris Lattner2004-03-012-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12056 91177308-0d34-0410-b5e6-96231b3b80d8
* Correctly add an array marker on a node when appropriate!Chris Lattner2004-03-011-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12055 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix grammar and doxygenify comments.Misha Brukman2004-03-011-6/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12054 91177308-0d34-0410-b5e6-96231b3b80d8
* * Add implementation of ExtractBasicBlock()Misha Brukman2004-03-011-0/+10
| | | | | | | * Add comments to ExtractLoop() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12053 91177308-0d34-0410-b5e6-96231b3b80d8
* Add ability to extract a single basic block into a new function.Misha Brukman2004-03-011-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12052 91177308-0d34-0410-b5e6-96231b3b80d8
* * HTML 4.01 Strict complianceMisha Brukman2004-03-011-401/+355
| | | | | | | * Removed unnecessary tabs in the entire file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12051 91177308-0d34-0410-b5e6-96231b3b80d8
* HTML 4.01 Strict compliance.Misha Brukman2004-03-011-33/+39
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12050 91177308-0d34-0410-b5e6-96231b3b80d8
* Add this back, as its absence introduces assertions, and it seems to work nowChris Lattner2004-03-011-4/+1
| | | | | | | that Instructions are annotable again git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12045 91177308-0d34-0410-b5e6-96231b3b80d8
* fix bug in previous checkinTanya Lattner2004-03-011-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12044 91177308-0d34-0410-b5e6-96231b3b80d8
* TargetCacheInfo has been removed; its only uses were to propagate a constantBrian Gaeke2004-03-0112-119/+7
| | | | | | | | | | (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
* Adding new Modulo Scheduling graph files.Tanya Lattner2004-03-016-0/+1538
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12031 91177308-0d34-0410-b5e6-96231b3b80d8
* Removing old graph files with new graph files that I wrote. Updated ↵Tanya Lattner2004-03-016-552/+1364
| | | | | | ModuloScheduling pass, but still in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12030 91177308-0d34-0410-b5e6-96231b3b80d8
* Expand on my note-to-selfChris Lattner2004-03-011-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12029 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle passing constant integers to functions much more efficiently. InsteadChris Lattner2004-03-012-20/+46
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Don't look in the .libs directories that libtool makesBrian Gaeke2004-03-011-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12027 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a minor code-quality issue. When passing 8 and 16-bit integer constantsChris Lattner2004-03-012-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fix the "partial pool allocator" on em3d and others. The problem is thatChris Lattner2004-03-012-8/+16
| | | | | | | | | | 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
* Make Module annotable. Reid has a bunch of code that depends on this, andChris Lattner2004-03-011-1/+1
| | | | | | | | | 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
* Disable tail duplication in a case that breaks on Olden/tspChris Lattner2004-03-012-1/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12021 91177308-0d34-0410-b5e6-96231b3b80d8
* Doxygenify comments.Misha Brukman2004-02-291-16/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12015 91177308-0d34-0410-b5e6-96231b3b80d8
* * Remove function to find "main" in a Module, there's a method for thatMisha Brukman2004-02-292-336/+248
| | | | | | | * 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
* Fix -debug-pass=Executions, which relied on Function, Module, and BasicBlockChris Lattner2004-02-292-22/+28
| | | | | | | being annotable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12013 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug: test/Regression/Transforms/LowerInvoke/2004-02-29-PHICrash.llxChris Lattner2004-02-291-2/+5
| | | | | | | ... 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
* Testcase for a bug that caused a whole bunch of testcases to die in the nightlyChris Lattner2004-02-291-0/+16
| | | | | | | tester last night. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12011 91177308-0d34-0410-b5e6-96231b3b80d8
* Add an assertChris Lattner2004-02-291-1/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12010 91177308-0d34-0410-b5e6-96231b3b80d8
* Add back #include I messed upChris Lattner2004-02-291-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12009 91177308-0d34-0410-b5e6-96231b3b80d8
* Urg, forgot to check this in.Chris Lattner2004-02-291-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12007 91177308-0d34-0410-b5e6-96231b3b80d8
* Module does not need to be annotatable aka annotableChris Lattner2004-02-291-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12005 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove public header. It's been moved to lib/Target/SparcV9Chris Lattner2004-02-291-95/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12004 91177308-0d34-0410-b5e6-96231b3b80d8
* Move the private MachineInstrAnnot.h into a private directory.Chris Lattner2004-02-295-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12003 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove use of an ugly headerChris Lattner2004-02-291-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12002 91177308-0d34-0410-b5e6-96231b3b80d8
* Move methods out of .h fileChris Lattner2004-02-291-0/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12001 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not use explicit casts that hide the dependence on Instruction beingChris Lattner2004-02-292-16/+4
| | | | | | | annotable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12000 91177308-0d34-0410-b5e6-96231b3b80d8
* Ugh, the old sparc backend attaches MachineCodeForInstruction annotations onChris Lattner2004-02-291-1/+2
| | | | | | | | | 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
* Add instruction name description.Alkis Evlogimenos2004-02-291-2/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11998 91177308-0d34-0410-b5e6-96231b3b80d8
* Use correct template for SHLD and SHRD instructions so that the memoryAlkis Evlogimenos2004-02-291-9/+9
| | | | | | | operand size is correctly specified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11997 91177308-0d34-0410-b5e6-96231b3b80d8
* Improve allocation order:Alkis Evlogimenos2004-02-291-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* A big X86 instruction rename. The instructions are renamed to makeAlkis Evlogimenos2004-02-2911-1021/+1021
| | | | | | | | | | | | | | | | | 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
* Remove dead member variables of SparcV9SchedInfo and TargetSchedInfoBrian Gaeke2004-02-292-20/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11994 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate the X86-specific BMI functions, using BuildMI instead.Chris Lattner2004-02-292-374/+352
| | | | | | | Replace uses of addZImm with addImm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11992 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a miscompilation of 197.parser that occurs when you have single basicChris Lattner2004-02-292-16/+28
| | | | | | | block loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11990 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR255: [tailduplication] Single basic block loops are very rareChris Lattner2004-02-291-1/+2
| | | | | | | | 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
* Update comment at head of file. Also fix C 'typedef struct' nonsense IBrian Gaeke2004-02-292-14/+18
| | | | | | | inadvertently left in here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11988 91177308-0d34-0410-b5e6-96231b3b80d8
* Adjust to change in TII ctor argumentsChris Lattner2004-02-295-15/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11987 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate the distinction between "real" and "unreal" instructionsChris Lattner2004-02-294-10/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11986 91177308-0d34-0410-b5e6-96231b3b80d8
* Add more architectures, and ELF64 stuff.Brian Gaeke2004-02-292-2/+98
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11985 91177308-0d34-0410-b5e6-96231b3b80d8
* These two virtual methods are never called.Chris Lattner2004-02-298-105/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11984 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove a TON of flags that noone cares aboutChris Lattner2004-02-291-362/+362
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11983 91177308-0d34-0410-b5e6-96231b3b80d8