| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | Remove unused variable. | Reid Spencer | 2004-10-08 | 1 | -1/+0 | |
| | | | | | llvm-svn: 16844 | |||||
| * | Make it so that positional parameters can have spaces in them. | Reid Spencer | 2004-10-08 | 1 | -1/+1 | |
| | | | | | llvm-svn: 16843 | |||||
| * | Implement SRA for global variables. This allows the other global variable | Chris Lattner | 2004-10-08 | 1 | -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 testcase | Chris Lattner | 2004-10-08 | 1 | -0/+19 | |
| | | | | | llvm-svn: 16841 | |||||
| * | Fix bug: 2004-10-08-SelectSetCCFold.llx. Normally this is hidden by the | Chris Lattner | 2004-10-08 | 1 | -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 Lattner | 2004-10-08 | 1 | -0/+8 | |
| | | | | | | | it cannot be folded in. llvm-svn: 16839 | |||||
| * | Properly `quote' names, and don't forget to add the ending quote! | Misha Brukman | 2004-10-08 | 1 | -24/+24 | |
| | | | | | llvm-svn: 16838 | |||||
| * | Add the --with-automake option to AutoRegen.sh and provide the automake | Reid Spencer | 2004-10-08 | 2 | -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:test27 | Chris Lattner | 2004-10-08 | 1 | -0/+25 | |
| | | | | | | | This comes up when doing adds to bitfield elements. llvm-svn: 16836 | |||||
| * | New testcase | Chris Lattner | 2004-10-08 | 1 | -0/+7 | |
| | | | | | llvm-svn: 16835 | |||||
| * | Little patch to turn (shl (add X, 123), 4) -> (add (shl X, 4), 123 << 4) | Chris Lattner | 2004-10-08 | 1 | -0/+3 | |
| | | | | | | | | This triggers in cases of bitfield additions, opening opportunities for future improvements. llvm-svn: 16834 | |||||
| * | New testcase | Chris Lattner | 2004-10-08 | 1 | -0/+6 | |
| | | | | | llvm-svn: 16833 | |||||
| * | Implement logical and with an immediate that consists of a contiguous block | Nate Begeman | 2004-10-08 | 1 | -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 typo | Misha Brukman | 2004-10-08 | 1 | -1/+1 | |
| | | | | | llvm-svn: 16831 | |||||
| * | Make comment header span the entire line | Misha Brukman | 2004-10-08 | 1 | -1/+1 | |
| | | | | | llvm-svn: 16830 | |||||
| * | Describe how to configure tests to work with f2c | Misha Brukman | 2004-10-08 | 1 | -0/+26 | |
| | | | | | llvm-svn: 16829 | |||||
| * | * Reformat to fit 80 cols | Misha Brukman | 2004-10-08 | 1 | -54/+53 | |
| | | | | | | | * Add missing <li> tags llvm-svn: 16828 | |||||
| * | Several fixes and enhancements to the PPC32 backend. | Nate Begeman | 2004-10-07 | 3 | -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 from | Nate Begeman | 2004-10-07 | 1 | -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 include | Nate Begeman | 2004-10-07 | 1 | -1/+0 | |
| | | | | | llvm-svn: 16824 | |||||
| * | Improve comments, no functionality changes | Chris Lattner | 2004-10-07 | 1 | -18/+53 | |
| | | | | | llvm-svn: 16814 | |||||
| * | Fix a nasty dangling pointer problem, due to a free'd pointer being left in | Chris Lattner | 2004-10-07 | 1 | -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 Type | Chris Lattner | 2004-10-07 | 1 | -0/+1 | |
| | | | | | llvm-svn: 16812 | |||||
| * | Unfortunately the fix for the previous bug introduced the previous | Chris Lattner | 2004-10-07 | 1 | -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 again | Chris Lattner | 2004-10-07 | 1 | -1/+1 | |
| | | | | | llvm-svn: 16810 | |||||
| * | These files now live in Transforms/GlobalOpt | Chris Lattner | 2004-10-07 | 4 | -63/+0 | |
| | | | | | llvm-svn: 16809 | |||||
| * | Move these files from Transforms/GlobalConstifier | Chris Lattner | 2004-10-07 | 4 | -0/+63 | |
| | | | | | llvm-svn: 16808 | |||||
| * | Fix a bug in my previous change. Unfortunately this reverts most of the | Chris Lattner | 2004-10-07 | 1 | -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 Spencer | 2004-10-07 | 2 | -2/+11 | |
| | | | | | llvm-svn: 16805 | |||||
| * | Fix a bug in the safety analysis routine | Chris Lattner | 2004-10-07 | 1 | -3/+3 | |
| | | | | | llvm-svn: 16804 | |||||
| * | Comment cleanups | Chris Lattner | 2004-10-07 | 1 | -4/+1 | |
| | | | | | llvm-svn: 16803 | |||||
| * | * Rename pass to globalopt, since we do more than just constify | Chris Lattner | 2004-10-07 | 2 | -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 pass | Chris Lattner | 2004-10-07 | 4 | -11/+9 | |
| | | | | | llvm-svn: 16801 | |||||
| * | This pass is not needed, as there is only ever one global: the stack | Chris Lattner | 2004-10-07 | 1 | -2/+0 | |
| | | | | | llvm-svn: 16800 | |||||
| * | Add new testcase, rename pass | Chris Lattner | 2004-10-07 | 4 | -3/+11 | |
| | | | | | llvm-svn: 16799 | |||||
| * | Don't add libz or libbz2 to the USEDLIBS lists, those are for LLVM libraries. | Chris Lattner | 2004-10-07 | 1 | -2/+2 | |
| | | | | | llvm-svn: 16798 | |||||
| * | Don't call memset if malloc returns a null pointer | Chris Lattner | 2004-10-06 | 1 | -1/+2 | |
| | | | | | llvm-svn: 16797 | |||||
| * | Implement GlobalConstifier/trivialstore.llx, and also do some | Chris Lattner | 2004-10-06 | 1 | -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 testcase | Chris Lattner | 2004-10-06 | 1 | -0/+17 | |
| | | | | | llvm-svn: 16791 | |||||
| * | Dont' let null nodes sneak past cast instructions | Chris Lattner | 2004-10-06 | 1 | -1/+4 | |
| | | | | | llvm-svn: 16779 | |||||
| * | Undoxyfy internal method. | Misha Brukman | 2004-10-06 | 1 | -3/+2 | |
| | | | | | llvm-svn: 16774 | |||||
| * | Doxygen-ify comments | Misha Brukman | 2004-10-06 | 1 | -2/+3 | |
| | | | | | llvm-svn: 16773 | |||||
| * | Change Type::isAbstract to have better comments, a more correct name | Chris Lattner | 2004-10-06 | 1 | -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 argument | Chris Lattner | 2004-10-06 | 1 | -3/+3 | |
| | | | | | llvm-svn: 16771 | |||||
| * | Correct some typeos | Chris Lattner | 2004-10-06 | 1 | -3/+3 | |
| | | | | | llvm-svn: 16770 | |||||
| * | Instcombine: -(X sdiv C) -> (X sdiv -C), tested by sub.ll:test16 | Chris Lattner | 2004-10-06 | 1 | -0/+8 | |
| | | | | | llvm-svn: 16769 | |||||
| * | New testcase | Chris Lattner | 2004-10-06 | 1 | -0/+6 | |
| | | | | | llvm-svn: 16768 | |||||
| * | Remove debugging code, fix encoding problem. This fixes the problems | Chris Lattner | 2004-10-06 | 2 | -3/+2 | |
| | | | | | | | the JIT had last night. llvm-svn: 16766 | |||||
| * | Turning on fsel code gen now that we can do so would be good. | Nate Begeman | 2004-10-06 | 1 | -11/+10 | |
| | | | | | llvm-svn: 16765 | |||||
| * | Implement floating point select for lt, gt, le, ge using the powerpc fsel | Nate Begeman | 2004-10-06 | 1 | -25/+113 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | instruction. Now, rather than emitting the following loop out of bisect: .LBB_main_19: ; no_exit.0.i rlwinm r3, r2, 3, 0, 28 lfdx f1, r3, r27 addis r3, r30, ha16(.CPI_main_1-"L00000$pb") lfd f2, lo16(.CPI_main_1-"L00000$pb")(r3) fsub f2, f2, f1 addis r3, r30, ha16(.CPI_main_1-"L00000$pb") lfd f4, lo16(.CPI_main_1-"L00000$pb")(r3) fcmpu cr0, f1, f4 bge .LBB_main_64 ; no_exit.0.i .LBB_main_63: ; no_exit.0.i b .LBB_main_65 ; no_exit.0.i .LBB_main_64: ; no_exit.0.i fmr f2, f1 .LBB_main_65: ; no_exit.0.i addi r3, r2, 1 rlwinm r3, r3, 3, 0, 28 lfdx f1, r3, r27 addis r3, r30, ha16(.CPI_main_1-"L00000$pb") lfd f4, lo16(.CPI_main_1-"L00000$pb")(r3) fsub f4, f4, f1 addis r3, r30, ha16(.CPI_main_1-"L00000$pb") lfd f5, lo16(.CPI_main_1-"L00000$pb")(r3) fcmpu cr0, f1, f5 bge .LBB_main_67 ; no_exit.0.i .LBB_main_66: ; no_exit.0.i b .LBB_main_68 ; no_exit.0.i .LBB_main_67: ; no_exit.0.i fmr f4, f1 .LBB_main_68: ; no_exit.0.i fadd f1, f2, f4 addis r3, r30, ha16(.CPI_main_2-"L00000$pb") lfd f2, lo16(.CPI_main_2-"L00000$pb")(r3) fmul f1, f1, f2 rlwinm r3, r2, 3, 0, 28 lfdx f2, r3, r28 fadd f4, f2, f1 fcmpu cr0, f4, f0 bgt .LBB_main_70 ; no_exit.0.i .LBB_main_69: ; no_exit.0.i b .LBB_main_71 ; no_exit.0.i .LBB_main_70: ; no_exit.0.i fmr f0, f4 .LBB_main_71: ; no_exit.0.i fsub f1, f2, f1 addi r2, r2, -1 fcmpu cr0, f1, f3 blt .LBB_main_73 ; no_exit.0.i .LBB_main_72: ; no_exit.0.i b .LBB_main_74 ; no_exit.0.i .LBB_main_73: ; no_exit.0.i fmr f3, f1 .LBB_main_74: ; no_exit.0.i cmpwi cr0, r2, -1 fmr f16, f0 fmr f17, f3 bgt .LBB_main_19 ; no_exit.0.i We emit this instead: .LBB_main_19: ; no_exit.0.i rlwinm r3, r2, 3, 0, 28 lfdx f1, r3, r27 addis r3, r30, ha16(.CPI_main_1-"L00000$pb") lfd f2, lo16(.CPI_main_1-"L00000$pb")(r3) fsub f2, f2, f1 fsel f1, f1, f1, f2 addi r3, r2, 1 rlwinm r3, r3, 3, 0, 28 lfdx f2, r3, r27 addis r3, r30, ha16(.CPI_main_1-"L00000$pb") lfd f4, lo16(.CPI_main_1-"L00000$pb")(r3) fsub f4, f4, f2 fsel f2, f2, f2, f4 fadd f1, f1, f2 addis r3, r30, ha16(.CPI_main_2-"L00000$pb") lfd f2, lo16(.CPI_main_2-"L00000$pb")(r3) fmul f1, f1, f2 rlwinm r3, r2, 3, 0, 28 lfdx f2, r3, r28 fadd f4, f2, f1 fsub f5, f0, f4 fsel f0, f5, f0, f4 fsub f1, f2, f1 addi r2, r2, -1 fsub f2, f1, f3 fsel f3, f2, f3, f1 cmpwi cr0, r2, -1 fmr f16, f0 fmr f17, f3 bgt .LBB_main_19 ; no_exit.0.i llvm-svn: 16764 | |||||

