summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* InstrSched has been moved to lib/Target/SparcV9Misha Brukman2004-10-081-1/+1
| | | | llvm-svn: 16850
* InstrSched is SparcV9-specific and so has been moved to lib/Target/SparcV9/Misha Brukman2004-10-087-2/+2
| | | | llvm-svn: 16849
* Single-space instead of double-spacing in the MakefileMisha Brukman2004-10-081-3/+1
| | | | llvm-svn: 16848
* Build InstrSched as well, and all three subdirs can be built independentlyMisha Brukman2004-10-081-1/+1
| | | | llvm-svn: 16847
* Single-space instead of double-spacing in the MakefileMisha Brukman2004-10-081-2/+1
| | | | llvm-svn: 16845
* Remove unused variable.Reid Spencer2004-10-081-1/+0
| | | | llvm-svn: 16844
* Make it so that positional parameters can have spaces in them.Reid Spencer2004-10-081-1/+1
| | | | llvm-svn: 16843
* Implement SRA for global variables. This allows the other global variableChris Lattner2004-10-081-32/+137
| | | | | | | | | | | optimizations to trigger much more often. This allows the elimination of several dozen more global variables in Programs/External. Note that we only do this for non-constant globals: constant globals will already be optimized out if the accesses to them permit it. This implements Transforms/GlobalOpt/globalsra.llx llvm-svn: 16842
* New testcaseChris Lattner2004-10-081-0/+19
| | | | llvm-svn: 16841
* Fix bug: 2004-10-08-SelectSetCCFold.llx. Normally this is hidden by theChris Lattner2004-10-081-1/+2
| | | | | | instcombine xform, which is why we didn't notice it before. llvm-svn: 16840
* New testcase. The setcc is only used by a select, but not as a condition:Chris Lattner2004-10-081-0/+8
| | | | | | it cannot be folded in. llvm-svn: 16839
* Properly `quote' names, and don't forget to add the ending quote!Misha Brukman2004-10-081-24/+24
| | | | llvm-svn: 16838
* Add the --with-automake option to AutoRegen.sh and provide the automakeReid Spencer2004-10-082-10/+519
| | | | | | | | | | version of the configure script. This is an early commit of the automake support so that automake support can be tested on multiple platforms. Many additional Makefile.am need to be added to LLVM before this is of any use. Please wait until automake support is announced on llvmdev list before using the --with-automake option. llvm-svn: 16837
* Instcombine (X & FF00) + xx00 -> (X+xx00) & FF00, implementing and.ll:test27Chris Lattner2004-10-081-0/+25
| | | | | | This comes up when doing adds to bitfield elements. llvm-svn: 16836
* New testcaseChris Lattner2004-10-081-0/+7
| | | | llvm-svn: 16835
* Little patch to turn (shl (add X, 123), 4) -> (add (shl X, 4), 123 << 4)Chris Lattner2004-10-081-0/+3
| | | | | | | This triggers in cases of bitfield additions, opening opportunities for future improvements. llvm-svn: 16834
* New testcaseChris Lattner2004-10-081-0/+6
| | | | llvm-svn: 16833
* Implement logical and with an immediate that consists of a contiguous blockNate Begeman2004-10-081-5/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of one or more 1 bits (may wrap from least significant bit to most significant bit) as the rlwinm rather than andi., andis., or some longer instructons sequence. int andn4(int z) { return z & -4; } int clearhi(int z) { return z & 0x0000FFFF; } int clearlo(int z) { return z & 0xFFFF0000; } int clearmid(int z) { return z & 0x00FFFF00; } int clearwrap(int z) { return z & 0xFF0000FF; } _andn4: rlwinm r3, r3, 0, 0, 29 blr _clearhi: rlwinm r3, r3, 0, 16, 31 blr _clearlo: rlwinm r3, r3, 0, 0, 15 blr _clearmid: rlwinm r3, r3, 0, 8, 23 blr _clearwrap: rlwinm r3, r3, 0, 24, 7 blr llvm-svn: 16832
* Fix usage description typoMisha Brukman2004-10-081-1/+1
| | | | llvm-svn: 16831
* Make comment header span the entire lineMisha Brukman2004-10-081-1/+1
| | | | llvm-svn: 16830
* Describe how to configure tests to work with f2cMisha Brukman2004-10-081-0/+26
| | | | llvm-svn: 16829
* * Reformat to fit 80 colsMisha Brukman2004-10-081-54/+53
| | | | | | * Add missing <li> tags llvm-svn: 16828
* Several fixes and enhancements to the PPC32 backend.Nate Begeman2004-10-073-147/+154
| | | | | | | | | | | | | | | | | | | | | | 1. Fix an illegal argument to getClassB when deciding whether or not to sign extend a byte load. 2. Initial addition of isLoad and isStore flags to the instruction .td file for eventual use in a scheduler. 3. Rewrite of how constants are handled in emitSimpleBinaryOperation so that we can emit the PowerPC shifted immediate instructions far more often. This allows us to emit the following code: int foo(int x) { return x | 0x00F0000; } _foo: .LBB_foo_0: ; entry ; IMPLICIT_DEF oris r3, r3, 15 blr llvm-svn: 16826
* Add ori reg, reg, 0 as a move instruction. This can be generated fromNate Begeman2004-10-071-0/+11
| | | | | | | | | | | | | | | | | loading a 32bit constant into a register whose low halfword is all zeroes. We now omit the ori after the lis for the following C code: int bar(int y) { return y * 0x00F0000; } _bar: .LBB_bar_0: ; entry ; IMPLICIT_DEF lis r2, 15 mullw r3, r3, r2 blr llvm-svn: 16825
* Remove unnecessary header includeNate Begeman2004-10-071-1/+0
| | | | llvm-svn: 16824
* Improve comments, no functionality changesChris Lattner2004-10-071-18/+53
| | | | llvm-svn: 16814
* Fix a nasty dangling pointer problem, due to a free'd pointer being left inChris Lattner2004-10-071-0/+3
| | | | | | | a map. This caused problems if a later object happened to be allocated at the free'd object's address. llvm-svn: 16813
* Get friendly with TypeChris Lattner2004-10-071-0/+1
| | | | llvm-svn: 16812
* Unfortunately the fix for the previous bug introduced the previousChris Lattner2004-10-071-41/+67
| | | | | | | | | | exponential behavior (bork!). This patch processes stuff with an explicit SCC finder, allowing the algorithm to be more clear, efficient, and also (as a bonus) correct! This gets us back to taking 0.6s to disassemble my horrible .bc file that previously took something > 30 mins. llvm-svn: 16811
* Change signature of this method againChris Lattner2004-10-071-1/+1
| | | | llvm-svn: 16810
* These files now live in Transforms/GlobalOptChris Lattner2004-10-074-63/+0
| | | | llvm-svn: 16809
* Move these files from Transforms/GlobalConstifierChris Lattner2004-10-074-0/+63
| | | | llvm-svn: 16808
* Fix a bug in my previous change. Unfortunately this reverts most of theChris Lattner2004-10-071-3/+4
| | | | | | speedup, but has the advantage of not breaking a bunch of programs! llvm-svn: 16806
* Make these scripts work on SunOS too.Reid Spencer2004-10-072-2/+11
| | | | llvm-svn: 16805
* Fix a bug in the safety analysis routineChris Lattner2004-10-071-3/+3
| | | | llvm-svn: 16804
* Comment cleanupsChris Lattner2004-10-071-4/+1
| | | | llvm-svn: 16803
* * Rename pass to globalopt, since we do more than just constifyChris Lattner2004-10-072-147/+250
| | | | | | | | | | | | | | | | * Instead of handling dead functions specially, just nuke them. * Be more aggressive about cleaning up after constification, in particular, handle getelementptr instructions and constantexprs. * Be a little bit more structured about how we process globals. *** Delete globals that are only stored to, and never read. These are clearly not useful, so they should go. This implements deadglobal.llx This last one triggers quite a few times. In particular, 2208 in the external tests, 1865 of which are in 252.eon. This shrinks eon from 1995094 to 1732341 bytes of bytecode. llvm-svn: 16802
* Rename passChris Lattner2004-10-074-11/+9
| | | | llvm-svn: 16801
* This pass is not needed, as there is only ever one global: the stackChris Lattner2004-10-071-2/+0
| | | | llvm-svn: 16800
* Add new testcase, rename passChris Lattner2004-10-074-3/+11
| | | | llvm-svn: 16799
* Don't add libz or libbz2 to the USEDLIBS lists, those are for LLVM libraries.Chris Lattner2004-10-071-2/+2
| | | | llvm-svn: 16798
* Don't call memset if malloc returns a null pointerChris Lattner2004-10-061-1/+2
| | | | llvm-svn: 16797
* Implement GlobalConstifier/trivialstore.llx, and also do someChris Lattner2004-10-061-3/+52
| | | | | | | | | | | | | | | | | | | | | | | | simplifications of the resultant program to avoid making later passes do it all. This allows us to constify globals that just have the same constant that they are initialized stored into them. Suprisingly this comes up ALL of the freaking time, dozens of times in SPEC, 30 times in vortex alone. For example, on 256.bzip2, it allows us to constify these two globals: %smallMode = internal global ubyte 0 ; <ubyte*> [#uses=8] %verbosity = internal global int 0 ; <int*> [#uses=49] Which (with later optimizations) results in the bytecode file shrinking from 82286 to 69686 bytes! Lets hear it for IPO :) For the record, it's nuking lots of "if (verbosity > 2) { do lots of stuff }" code. llvm-svn: 16793
* New testcaseChris Lattner2004-10-061-0/+17
| | | | llvm-svn: 16791
* Dont' let null nodes sneak past cast instructionsChris Lattner2004-10-061-1/+4
| | | | llvm-svn: 16779
* Undoxyfy internal method.Misha Brukman2004-10-061-3/+2
| | | | llvm-svn: 16774
* Doxygen-ify commentsMisha Brukman2004-10-061-2/+3
| | | | llvm-svn: 16773
* Change Type::isAbstract to have better comments, a more correct nameChris Lattner2004-10-061-12/+19
| | | | | | | | | | | | (PromoteAbstractToConcrete), and to use a set to avoid recomputation. In particular, this set eliminates the potentially exponential cases from this little recursive algorithm. On a particularly nasty testcase, llvm-dis on the .bc file went from 34 minutes (which is when I killed it, it still hadn't finished) to 0.57s. Remember kids, exponential algorithms are bad. llvm-svn: 16772
* Rename method, change comment, add argumentChris Lattner2004-10-061-3/+3
| | | | llvm-svn: 16771
* Correct some typeosChris Lattner2004-10-061-3/+3
| | | | llvm-svn: 16770
OpenPOWER on IntegriCloud