aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2004-09-30There is no need to call MachineInstr::print directly, just send the MI& to ↵Chris Lattner
an ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16613 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30* Wrap some comments to 80 colsChris Lattner
* Add const_iterator stuff * Add a print method, which means that I can now call dump() from the debugger. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16612 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30Simplify the logic in the simple spiller and capitalize some variablesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16609 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30Switch from defaulting to the 'local' spiller to the 'simple' spiller. TheChris Lattner
two spillers produce perfectly identical code (at least on povray and eon), but the simple spiller is substantially faster than the local spiller. Once the local spiller is improved, we can switch back. Switching cuts 5.2% off of the llc time for povray (about 1.3s). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16608 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30Don't use a densemap for keeping track of which vregs are already loaded, justChris Lattner
use a simple vector. This speeds up -spiller=simple from taking 22s to taking .1s on povray (debug build). This change does not modify the generated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16607 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30Use longer and more explicit names for instance vars (particularly importantChris Lattner
data structures). Fix the print method to send to the right ostream, not always cerr. Delete typedefs that are only used once. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16606 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30Free the VirtRegMap at the end of MachineFunction processing instead of atChris Lattner
the beginning of processing the next one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16605 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-30Reindent code, improve comments, move huge nested methods out of classes,Chris Lattner
prune #includes, add print/dump methods, etc. No functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16604 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28Add includes and use std:: for standard library calls to make codeAlkis Evlogimenos
compile on windows. This patch was contributed by Paolo Invernizzi. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16539 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28Fix includes. Patch contributed by Paolo Invernizzi!Alkis Evlogimenos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16533 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-09Grow the map on entry so that we don't crash if joinIntervals neverAlkis Evlogimenos
runs (if coalescing is disabled for example). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16259 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-08Use a DenseMap for mapping reg->reg. This improves the LiveIntervalAlkis Evlogimenos
analysis running time from 2.7869secs to 2.5226secs on 176.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16244 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-05Indent to 2 spaces and cleanup excess whitespace.Alkis Evlogimenos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16188 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-05Indent to 2 spaces.Alkis Evlogimenos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16187 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-03Order #includes alphabetically, local .h files first.Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16153 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-03Fixes to make LLVM compile with vc7.1.Alkis Evlogimenos
Patch contributed by Paolo Invernizzi! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16152 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-02Change the way we choose a free register: instead of picking the firstAlkis Evlogimenos
free allocatable register, we prefer the a free one with the most uses of inactive intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16148 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-02Change the way we choose a free register: instead of picking the firstAlkis Evlogimenos
free allocatable register, we prefer the a free one with the most uses of inactive intervals. This causes less spills and performes a bit better compared to gcc: Program | GCC/LLC (Before)| GCC/LLC (After) 164.gzip/164.gzip | 0.59 | 0.60 175.vpr/175.vpr | 0.57 | 0.58 176.gcc/176.gcc | 0.59 | 0.61 181.mcf/181.mcf | 0.94 | 0.95 186.crafty/186.crafty | 0.62 | 0.62 197.parser/197.parser | 0.89 | 0.88 252.eon/252.eon | 0.61 | 0.66 253.perlbmk/253.perlbmk | 0.79 | 0.84 254.gap/254.gap | 0.81 | 0.81 255.vortex/255.vortex | 0.92 | 0.93 256.bzip2/256.bzip2 | 0.69 | 0.69 300.twolf/300.twolf | 0.91 | 0.90 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16147 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-02We don't need to sort the added vector as unhandled intervals areAlkis Evlogimenos
stored in a binary heap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16143 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-01Changes For Bug 352Reid Spencer
Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-01Be a bit more efficient when processing the active and inactiveAlkis Evlogimenos
lists. Instead of scanning the vector backwards, scan it forward and swap each element we want to erase. Then at the end erase all removed intervals at once. This doesn't save much: 0.08s out of 4s when compiling 176.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16136 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-01Give a better assertion if we see a use before a def.Alkis Evlogimenos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16135 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-31Minor code clarity changes.Alkis Evlogimenos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16123 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29Put this change back in after testing from Reid proved its innocence. ↵Nate Begeman
getSpillSize now returns value in bits git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16102 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-28Remove dead code.Alkis Evlogimenos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16077 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27Now that LiveIntervals::addIntervalsForSpills is fixed, do not requireAlkis Evlogimenos
LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16076 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27Only update LiveVariables if it is available. addIntervalsForSpillsAlkis Evlogimenos
runs after the initial run of the live interval analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16075 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27Back out this change as it broke the build last night. This should beAlkis Evlogimenos
investicated further as the linearscan variants don't really need LiveVariables... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16074 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27Back out change to divide getSpillSize by 8 until I figure out why it breaks ↵Nate Begeman
x86, which has register sizes in bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16073 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27The linear scan variants do not require the LiveVariables analysis.Alkis Evlogimenos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16071 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27Register sizes are in bits, not bytesNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16070 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-26Use newly added API in MRegisterInfo and don't expose the allocatableAlkis Evlogimenos
register set anymore. Its users now use the MRegisterInfo API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16061 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-26Use newly added API in MRegisterInfo.Alkis Evlogimenos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16060 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-24Fix a bug in a previous checkin of mine, correctingChris Lattner
Regression.CodeGen.Generic.2004-04-09-SameValueCoalescing.llx and the code size problem. This bug prevented us from doing most register coallesces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16031 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-24Do not use .xword and friends to emit zeros on V9. Apparently there are issuesChris Lattner
with emitting .xwords when not on an 8-byte boundary (.xword 0 is not the same as 8 .byte 0's). Because we do not know when or when we are not aligned, just emit bytes like the old V9 asmprinter did. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16006 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21Register info alignment is in bits, frame object alignment is (currently) inChris Lattner
bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15970 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21Now that we have per-register spill size/alignment info, remove more usesChris Lattner
of getRegClass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15967 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-18Instead of using isDummyPhiInstr, we just compare the opcode with V9::PHI.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15906 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-18Instead of using isDummyPhiInstr, we just compare the opcode with V9::PHI.Brian Gaeke
Also, squash a use of TargetInstrInfo::isNop(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15905 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-18Rename varChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15897 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17Add support for targets without a .zero directiveChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15894 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17Add support for alignmentChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15888 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17Use a designated comment character when printing comments.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15880 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17Add support for targets that have .quad, drop extra tab insertedChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15870 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17Implement emitGlobalConstantChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15868 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17We now allow targets to use any prefix they want for global symbols. LetsChris Lattner
hear it for ".". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15863 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-17Some asmwriters want an _ prefixChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15845 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16Initial implementation of the asmprinter base classChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15838 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16Move this code to lib/Target/SparcV9/MachineFunctionInfo.cppChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15834 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16This file is moving to lib/Target/SparcV9Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15833 91177308-0d34-0410-b5e6-96231b3b80d8