aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Some code cleanups from ChrisAlkis Evlogimenos2004-02-231-9/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11724 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix comments in PhysRegTracker and rename isPhysRegAvail to isRegAvail to be ↵Alkis Evlogimenos2004-02-232-5/+6
| | | | | | consistent with the other two git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11723 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new cmove instructionChris Lattner2004-02-231-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11722 91177308-0d34-0410-b5e6-96231b3b80d8
* Move LiveIntervals.h up to be the first included headerAlkis Evlogimenos2004-02-231-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11721 91177308-0d34-0410-b5e6-96231b3b80d8
* Pull PhysRegTracker out of RegAllocLinearScan as it can be used by other ↵Alkis Evlogimenos2004-02-232-59/+92
| | | | | | allocators as well git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11720 91177308-0d34-0410-b5e6-96231b3b80d8
* Move LiveIntervals.h to lib/CodeGen since it shouldn't be exposed to other ↵Alkis Evlogimenos2004-02-233-215/+4
| | | | | | parts of the compiler git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11719 91177308-0d34-0410-b5e6-96231b3b80d8
* Only insert FP_REG_KILL instructions in MachineBasicBlocks that actuallyChris Lattner2004-02-222-96/+196
| | | | | | | | | | | | | | | | | use FP instructions. This reduces the number of instructions inserted in 176.gcc (for example) from 58074 to 101 (it doesn't use much FP, which is typical). This reduction speeds up the entire code generator. In the case of 176.gcc, llc went from taking 31.38s to 24.78s. The passes that sped up the most are the register allocator and the 2 live variable analysis passes, which sped up 2.3, 1.3, and 1.5s respectively. The asmprinter pass also sped up because it doesn't print the instructions in comments :) Note that this patch is likely to expose latent bugs in machine code passes, because now basicblock can be empty, where they were never empty before. I cleaned out regalloclocal, but who knows about linscan :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11717 91177308-0d34-0410-b5e6-96231b3b80d8
* Another bug fix for empty MBB'sChris Lattner2004-02-221-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11716 91177308-0d34-0410-b5e6-96231b3b80d8
* Move MOTy::UseType enum into MachineOperand. This eliminates theAlkis Evlogimenos2004-02-2212-158/+171
| | | | | | | | | | switch statements in the constructors and simplifies the implementation of the getUseType() member function. You will have to specify defs using MachineOperand::Def instead of MOTy::Def though (similarly for Use and UseAndDef). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11715 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug where we were implicitly assuming that there would be at leastChris Lattner2004-02-221-2/+2
| | | | | | | one terminator instruction in each basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11714 91177308-0d34-0410-b5e6-96231b3b80d8
* Reduce the number of pointless copies inserted due to constant pointer refs.Chris Lattner2004-02-222-12/+24
| | | | | | | Also, make an assertion actually fireable! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11713 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug in previous checkout: leave the iterator at the first instructionChris Lattner2004-02-222-8/+6
| | | | | | | AFTER the GEP that was emitted. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11712 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix silly bug in implementation of getUseType(). Thanks Misha.Alkis Evlogimenos2004-02-221-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11711 91177308-0d34-0410-b5e6-96231b3b80d8
* Completely rewrite how getelementptr instructions are expanded. This has twoChris Lattner2004-02-222-84/+140
| | | | | | | | | | | | | | | (minor) benefits right now: 1. An extra dummy MOVrr32 is gone. This move would often be coallesced by both allocators anyway. 2. The code now uses the gep_type_iterator to walk the gep, which should future proof it a bit. It still assumes that array indexes are Longs though. These don't really justify rewriting the code. The big benefit will come later though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11710 91177308-0d34-0410-b5e6-96231b3b80d8
* When folding memory operands in machine instructions be careful toAlkis Evlogimenos2004-02-222-2/+11
| | | | | | | | leave register operands with the same use/def flags as the original instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11709 91177308-0d34-0410-b5e6-96231b3b80d8
* Significantly simplify gep_type_iterator, and make its interface more ↵Chris Lattner2004-02-221-23/+24
| | | | | | general/powerful git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11708 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a soon-to-be-missing #includeChris Lattner2004-02-221-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11707 91177308-0d34-0410-b5e6-96231b3b80d8
* Get all instruction definitionsChris Lattner2004-02-221-3/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11706 91177308-0d34-0410-b5e6-96231b3b80d8
* Wow this is out of date. When we have _real_ code generator documentation,Chris Lattner2004-02-221-42/+31
| | | | | | | this should be folded into it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11705 91177308-0d34-0410-b5e6-96231b3b80d8
* Print basic block boundaries in machine instruction debug output.Alkis Evlogimenos2004-02-222-4/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11704 91177308-0d34-0410-b5e6-96231b3b80d8
* Link to most recent "LLVM document"Chris Lattner2004-02-222-6/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11703 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement Transforms/InstCombine/cast.ll:test13, a case which occurs in aChris Lattner2004-02-222-4/+35
| | | | | | | hot 164.gzip loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11702 91177308-0d34-0410-b5e6-96231b3b80d8
* Test that the instruction combiner can fold away a cast in a GEP instruction.Chris Lattner2004-02-221-0/+8
| | | | | | | This occurs in 164.gzip, as a result of it declaring arrays extern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11701 91177308-0d34-0410-b5e6-96231b3b80d8
* The two address pass cannot handle two addr instructions where one incomingChris Lattner2004-02-222-18/+32
| | | | | | | | | value is a physreg and one is a virtreg. For this reason, disable copy folding entirely for physregs. Also, use the new isMoveInstr target hook which gives us folding of FP moves as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11700 91177308-0d34-0410-b5e6-96231b3b80d8
* Abstract merging of ranges away from number of slots per instruction.Alkis Evlogimenos2004-02-224-6/+19
| | | | | | | | Also make it less aggressive as the current implementation breaks in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11696 91177308-0d34-0410-b5e6-96231b3b80d8
* Use isNull instead of getNode() to test for existence of a node, this is ↵Chris Lattner2004-02-221-6/+11
| | | | | | | | | | cheaper. FIX MAJOR BUG, whereby we didn't merge null edges correctly. Correcting this fixes poolallocation on 175.vpr, and possibly others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11695 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix an iterator invalidation problem which was causing some nodes to not beChris Lattner2004-02-211-20/+19
| | | | | | | correctly merged over! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11693 91177308-0d34-0410-b5e6-96231b3b80d8
* Use handy methodChris Lattner2004-02-211-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11692 91177308-0d34-0410-b5e6-96231b3b80d8
* Update comments and add warningChris Lattner2004-02-212-4/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11691 91177308-0d34-0410-b5e6-96231b3b80d8
* `cat' is usually in /bin, not /usr/bin, at least on our systems.Misha Brukman2004-02-211-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11690 91177308-0d34-0410-b5e6-96231b3b80d8
* When printing a stack trace, demangle it if possible. Since we are potentiallyChris Lattner2004-02-211-5/+61
| | | | | | | | in a signal handler, allocating memory or doing other unsafe things is bad, which means we should do it in a different process. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11689 91177308-0d34-0410-b5e6-96231b3b80d8
* Make 'fold' statistic's description the same in both allocators.Alkis Evlogimenos2004-02-212-3/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11687 91177308-0d34-0410-b5e6-96231b3b80d8
* Instead of cloning the globals for main into the globals graph at the end ofChris Lattner2004-02-211-17/+11
| | | | | | | | | | BU propagation, clone the globals into the GG of EACH FUNCTION that finishes processing! The GlobalsGraph *must* include all globals and effects from all functions in the program. Fixing this makes pool allocation work better on 175.vpr, but it still ultimately crashes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11686 91177308-0d34-0410-b5e6-96231b3b80d8
* There is no need to merge the globals graph into the function graphs at theChris Lattner2004-02-202-10/+3
| | | | | | | | | end of the BU and CBU passes. The globals will be marked incomplete, so it doesn't matter if they are missing some info, and merging isn't guaranteed to bring everything in anyway! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11684 91177308-0d34-0410-b5e6-96231b3b80d8
* Add two missing returns, which caused us to be very pessimistic about theChris Lattner2004-02-202-2/+3
| | | | | | | printf and scanf families! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11683 91177308-0d34-0410-b5e6-96231b3b80d8
* new testcaseChris Lattner2004-02-201-0/+34
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11682 91177308-0d34-0410-b5e6-96231b3b80d8
* Added the POVRAY_ROOT to locate Povray.John Criswell2004-02-201-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11681 91177308-0d34-0410-b5e6-96231b3b80d8
* Added an option for configuring Povray. By default, it should find my localJohn Criswell2004-02-202-29/+89
| | | | | | | installation of Povray (and not do anything for people who don't have it). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11680 91177308-0d34-0410-b5e6-96231b3b80d8
* Build an archive for use with Povray.John Criswell2004-02-202-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11678 91177308-0d34-0410-b5e6-96231b3b80d8
* Some more statistics improvements.Alkis Evlogimenos2004-02-201-11/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11676 91177308-0d34-0410-b5e6-96231b3b80d8
* Disambiguate statistic descriptions.Alkis Evlogimenos2004-02-201-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11675 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename statistic and add another one.Alkis Evlogimenos2004-02-201-3/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11674 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for some string functions, the scanf family, and sprintfChris Lattner2004-02-201-4/+66
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11673 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a simple implementation of strncpyChris Lattner2004-02-201-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11672 91177308-0d34-0410-b5e6-96231b3b80d8
* New testcase, do not emit a call to __builtin_sqrt, emit a call to sqrt instead!Chris Lattner2004-02-201-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11668 91177308-0d34-0410-b5e6-96231b3b80d8
* Bug fixedChris Lattner2004-02-201-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11662 91177308-0d34-0410-b5e6-96231b3b80d8
* PR244: [llvm-gcc] miscompilation when a function is re-declared as staticChris Lattner2004-02-201-0/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11661 91177308-0d34-0410-b5e6-96231b3b80d8
* Add checks for <execinfo.h> and backtrace().Brian Gaeke2004-02-201-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11660 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix crash in debug output.Alkis Evlogimenos2004-02-201-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11659 91177308-0d34-0410-b5e6-96231b3b80d8
* Use backtrace() and include execinfo.h, if they were detected by autoconf.Brian Gaeke2004-02-201-5/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11658 91177308-0d34-0410-b5e6-96231b3b80d8