aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* convert over to using TableGen backendsChris Lattner2003-08-068-62/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7628 91177308-0d34-0410-b5e6-96231b3b80d8
* Switch code over to being a TableGenBackendChris Lattner2003-08-064-58/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7627 91177308-0d34-0410-b5e6-96231b3b80d8
* Add more helper methodsChris Lattner2003-08-064-2/+60
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7626 91177308-0d34-0410-b5e6-96231b3b80d8
* New common interface for backends to useChris Lattner2003-08-064-0/+86
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7625 91177308-0d34-0410-b5e6-96231b3b80d8
* Added POOLFLAGS option to run pool allocationSumant Kowshik2003-08-061-1/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7624 91177308-0d34-0410-b5e6-96231b3b80d8
* "fix" coding style stuffChris Lattner2003-08-051-24/+24
| | | | | | | Change some <>'s into &lt;&gt;'s git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7623 91177308-0d34-0410-b5e6-96231b3b80d8
* Completely eliminate the per-machine-instruction regsUsed set.Chris Lattner2003-08-051-15/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This substantially shrinks the size of each machine instruction, which should make allocation faster and the cache footprint of the machine code lighter. Here are some timings for code generation of the larger benchmarks we have. This are timings of code generation phases of the X86 JIT, when compiled in debug mode: Before After Diff 164.gzip: InstSel 0.0878 0.0722 -21.6% RegAlloc 0.2031 0.1757 -15.6% TOTAL 0.5585 0.4999 -11.7% Ptrdist-bc: InstSel 0.0878 0.0722 -21.6% RegAlloc 0.2070 0.1933 - 7.1% TOTAL 0.6972 0.6464 - 7.9% 197.parser: InstSel 0.2148 0.2148 - 0.0% RegAlloc 0.4941 0.4277 -15.5% TOTAL 1.3749 1.2851 - 7.0% 175.vpr: InstSel 0.2519 0.2109 -19.4% RegAlloc 0.5976 0.5663 - 5.5% TOTAL 1.6933 1.6347 - 3.5% 254.gap: InstSel 1.1328 0.9921 -14.2% RegAlloc 2.6933 2.4804 - 8.6% TOTAL 7.7871 7.2499 - 7.4% git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7622 91177308-0d34-0410-b5e6-96231b3b80d8
* Use a new local data structure instead of the MachineInstr::regsUsed setChris Lattner2003-08-052-16/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7621 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a mapChris Lattner2003-08-052-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7620 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor cleanupsChris Lattner2003-08-052-46/+44
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7619 91177308-0d34-0410-b5e6-96231b3b80d8
* Physical registers no longer live in the regsUsed set for each machine instrChris Lattner2003-08-052-36/+60
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7618 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not insert physical regsiters into the regsUsed setChris Lattner2003-08-052-5/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7617 91177308-0d34-0410-b5e6-96231b3b80d8
* Reverted back to using OR for cmp/mv operations for lex/yacc output.John Criswell2003-08-052-6/+6
| | | | | | | | The shell AND/OR operators short-circuit on command success/failure, which is the inverse of exit status (i.e. 0 means success, non-zero means failure). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7616 91177308-0d34-0410-b5e6-96231b3b80d8
* Switched from using diff to cmp for two reasons:John Criswell2003-08-052-6/+6
| | | | | | | | | o Not all versions of diff have the -q option o The cmp program is probably faster than diff Fixed the logic that only copies the file over if no differences are found. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7615 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed minor bug in SafeToHoist and made some changes suggested by Chris.Tanya Lattner2003-08-051-19/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7614 91177308-0d34-0410-b5e6-96231b3b80d8
* Added LICM test cases to:Tanya Lattner2003-08-052-0/+47
| | | | | | | | 1) Check that trapping instructionns that are not guaranteed to execute are not hoisted. 2) Check that trapping instructions that are guaranteed to execute are hoisted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7613 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed LICM bug that hoists trapping instructions that are not guaranteed to ↵Tanya Lattner2003-08-051-5/+59
| | | | | | execute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7612 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor changes:Chris Lattner2003-08-051-52/+48
| | | | | | | | * Expand most tabs into spaces * Move #define DEBUG_TYPE to top of file to avoid warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7611 91177308-0d34-0410-b5e6-96231b3b80d8
* Add more verbose commentChris Lattner2003-08-051-10/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7610 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a comment to the method declChris Lattner2003-08-052-14/+22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7609 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unused methodChris Lattner2003-08-051-3/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7608 91177308-0d34-0410-b5e6-96231b3b80d8
* Added declaration of mergeInGlobalsGraphSumant Kowshik2003-08-052-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7607 91177308-0d34-0410-b5e6-96231b3b80d8
* Added function mergeInGlobalsGraph which merges in the entire globals graph ↵Sumant Kowshik2003-08-051-0/+29
| | | | | | with the graph of a function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7606 91177308-0d34-0410-b5e6-96231b3b80d8
* Major bug fixes including a memory leak and tracking some exceptional ↵Sumant Kowshik2003-08-051-83/+317
| | | | | | conditions. Also added support for including global and indirect call information in the DS graphs used by the pool allocation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7605 91177308-0d34-0410-b5e6-96231b3b80d8
* Specify DEBUG_TYPE's for the JIT debug messagesChris Lattner2003-08-052-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7604 91177308-0d34-0410-b5e6-96231b3b80d8
* This method has now been changed to preserve flags for us!Chris Lattner2003-08-051-5/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7603 91177308-0d34-0410-b5e6-96231b3b80d8
* All callers of these methods actually wanted them to preserve the flags,Chris Lattner2003-08-052-36/+9
| | | | | | | | | | so get rid of the def/use parameters that were getting passed in. **** This now changes the semantics of these methods to preserve the flags, not clobber them! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7602 91177308-0d34-0410-b5e6-96231b3b80d8
* Added the declaration of InlineIndirectCallsSumant Kowshik2003-08-051-1/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7601 91177308-0d34-0410-b5e6-96231b3b80d8
* Factor shared codeChris Lattner2003-08-051-8/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7600 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug: SimplifyCFG/2003-08-05-InvokeCrash.llChris Lattner2003-08-051-1/+2
| | | | | | | Fix bug: SimplifyCFG/2003-08-05-MishandleInvoke.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7599 91177308-0d34-0410-b5e6-96231b3b80d8
* new testcases that simplifycfg breaksChris Lattner2003-08-052-0/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7598 91177308-0d34-0410-b5e6-96231b3b80d8
* * Removed `using' declaration, now use full namespace qualifier std::stringMisha Brukman2003-08-051-43/+43
| | | | | | | * Simplified code by using an inline function instead of copy-pasted code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7597 91177308-0d34-0410-b5e6-96231b3b80d8
* If we're debugging the SimplifyCFG pass, we _REALLY_ don't want to use it forChris Lattner2003-08-053-8/+14
| | | | | | | narrowing, no matter what. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7596 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement TODO: print out short form of Invoke if possibleChris Lattner2003-08-051-8/+23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7595 91177308-0d34-0410-b5e6-96231b3b80d8
* Only test the vector of functions if it is non-empty.Misha Brukman2003-08-051-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7594 91177308-0d34-0410-b5e6-96231b3b80d8
* Stop special-casing annul and predict bits (which are Sparc-specific anyway)Misha Brukman2003-08-052-16/+2
| | | | | | | since those bits are now hard-coded in Sparc*.td files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7593 91177308-0d34-0410-b5e6-96231b3b80d8
* * Set annul bit to be 0, because the Sparc backend currently does not use it.Misha Brukman2003-08-051-5/+5
| | | | | | | | * Use the name of the predict field instead of just the const 1 in the Instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7592 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bugs handling ESP in alloca referencesChris Lattner2003-08-051-3/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7591 91177308-0d34-0410-b5e6-96231b3b80d8
* No functional changes, comment the fix I just put inChris Lattner2003-08-052-8/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7590 91177308-0d34-0410-b5e6-96231b3b80d8
* The CodeEmitterGenerator used to consider ANY uninitialized field as being anChris Lattner2003-08-052-96/+96
| | | | | | | | operand (unless it's annul or predict). Now we only consider fields to be operands if they are uninitialized AND used in the "Inst" field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7589 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert previous change, and be really anal about what physical registers can do.Chris Lattner2003-08-051-27/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7588 91177308-0d34-0410-b5e6-96231b3b80d8
* This is the real fix for the previous register allocator problem.Chris Lattner2003-08-054-1/+6
| | | | | | | Physical registers should not float around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7587 91177308-0d34-0410-b5e6-96231b3b80d8
* Reformatted code to match the prevalent LLVM style; fit code into 80 columns.Misha Brukman2003-08-051-72/+62
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7586 91177308-0d34-0410-b5e6-96231b3b80d8
* ElectricFence found this bug where we were reading past the vector boundary.Misha Brukman2003-08-041-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7585 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't bother calculating info unless its needed. May reduce number of stack ↵Chris Lattner2003-08-041-4/+2
| | | | | | slots created. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7584 91177308-0d34-0410-b5e6-96231b3b80d8
* * Fix spelling of 'necessary'Chris Lattner2003-08-041-26/+61
| | | | | | | | * Add a lot more DEBUG output, which is better structured than before * Fix bug: Jello/2003-08-04-PhysRegLiveFailure.llx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7583 91177308-0d34-0410-b5e6-96231b3b80d8
* New testcase, identified by Vikram, reduced by BrianChris Lattner2003-08-041-0/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7582 91177308-0d34-0410-b5e6-96231b3b80d8
* Add patterns for (mov R, R) (mov R, I) and subtracts. The moves are to enableChris Lattner2003-08-041-14/+14
| | | | | | | testing, the subtracts are because I was in the neighborhood. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7581 91177308-0d34-0410-b5e6-96231b3b80d8
* Change comments into something that TableGen can read!Chris Lattner2003-08-041-6/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7580 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow instructions to have a DAG pattern associated with them.Chris Lattner2003-08-041-0/+20
| | | | | | | Define a few preliminary node types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7579 91177308-0d34-0410-b5e6-96231b3b80d8