Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Fit to 80 columns. | Alkis Evlogimenos | 2004-07-22 | 1 | -10/+11 | |
| | | | | llvm-svn: 15105 | |||||
* | Some compile time improvements resulting in a 1sec speedup in the 5sec | Alkis Evlogimenos | 2004-07-22 | 1 | -75/+53 | |
| | | | | | | | | | | | compilation of gcc: * Use vectors instead of lists for the intervals sets * Use a heap for the unhandled set to keep intervals always sorted and makes insertions back to the heap very fast (compared to scanning a list) llvm-svn: 15103 | |||||
* | This is a trivial dead store elimination pass. It very very simple and | Chris Lattner | 2004-07-22 | 1 | -0/+139 | |
| | | | | | | | can be improved in many ways. But: stop laughing, even with -basicaa it deletes 15% of the stores in 252.eon :) llvm-svn: 15101 | |||||
* | Clean up reference counting to stop "leaking" alias sets | Chris Lattner | 2004-07-22 | 1 | -11/+13 | |
| | | | | llvm-svn: 15099 | |||||
* | Remove extraneous punctuation | Chris Lattner | 2004-07-22 | 1 | -2/+2 | |
| | | | | llvm-svn: 15098 | |||||
* | Update GC intrinsics to take a pointer to the object as well as a pointer | Chris Lattner | 2004-07-22 | 1 | -5/+8 | |
| | | | | | | to the field being updated. Patch contributed by Tobias Nurmiranta llvm-svn: 15097 | |||||
* | Updates to gc intrinsics, contributed by Tobias Nurmiranta | Chris Lattner | 2004-07-22 | 1 | -2/+2 | |
| | | | | llvm-svn: 15096 | |||||
* | Use reverse iterators when updating the vector, since scanning from | Alkis Evlogimenos | 2004-07-22 | 1 | -11/+14 | |
| | | | | | | the end will reduce erase() runtimes. llvm-svn: 15093 | |||||
* | That funny 2-address lowering pass can also cause multiple definitions, | Chris Lattner | 2004-07-22 | 1 | -8/+18 | |
| | | | | | | | fortunately, they are easy to handle if we know about them. This patch fixes some serious pessimization of code produced by the linscan register allocator. llvm-svn: 15092 | |||||
* | Minor cleanups | Chris Lattner | 2004-07-21 | 1 | -8/+6 | |
| | | | | llvm-svn: 15091 | |||||
* | Fix cases where we generated horrible code like this: | Chris Lattner | 2004-07-21 | 1 | -1/+7 | |
| | | | | | | | | | | | | | | | | | mov %EDI, 12 add %EDI, %ECX mov %ECX, 12 add %ECX, %EDX mov %EDX, 12 add %EDX, %ESI instead (really!) generate this: add %ECX, 12 add %EDX, 12 add %ESI, 12 llvm-svn: 15090 | |||||
* | These files don't need to include <iostream> since they include ↵ | Brian Gaeke | 2004-07-21 | 20 | -21/+0 | |
| | | | | | | "Support/Debug.h". llvm-svn: 15089 | |||||
* | * Add the lost fix to define the second reg of a 2-reg representation of longs | Misha Brukman | 2004-07-21 | 2 | -2/+8 | |
| | | | | | | * Fix opcode RLWNM -> RLWINM since it uses an immediate const shift value llvm-svn: 15087 | |||||
* | * Speed up canUseAsImmediateForOpcode() by comparing Operand before | Misha Brukman | 2004-07-21 | 2 | -38/+38 | |
| | | | | | | | dyn_cast<>ing and checking Constant's value * Convert tabs to spaces llvm-svn: 15086 | |||||
* | * Further cleanup. | Chris Lattner | 2004-07-21 | 1 | -9/+27 | |
| | | | | | | | | | | | * Test for whether bits are shifted out during the optzn. If so, the fold is illegal, though it can be handled explicitly for setne/seteq This fixes the miscompilation of 254.gap last night, which was a latent bug exposed by other optimizer improvements. llvm-svn: 15085 | |||||
* | * Fix printing of signed immediate values (Nate Begeman) | Misha Brukman | 2004-07-21 | 2 | -14/+58 | |
| | | | | | | | * Fix printing of `zeroinitializer' * Fix printing of `linkonce' globals, complete with stubs llvm-svn: 15084 | |||||
* | * Fix printing of signed immediate values | Misha Brukman | 2004-07-21 | 2 | -1006/+854 | |
| | | | | | | | | | | | | * Generation of opcodes that take 16 bit immediates * Rewrote multiply to be correct for 64 bit values * Rewrote all the long handling to be correct for PowerPC * Fix visitSelectInst() to define the upper register of the pair of regs representing a long value Patch contributed by Nate Begeman. llvm-svn: 15083 | |||||
* | Make cast-cast code a bit more defensive | Chris Lattner | 2004-07-21 | 1 | -32/+42 | |
| | | | | | | "simplify" a bit of code for comparison/and folding llvm-svn: 15082 | |||||
* | Use addSImm() instead of addImm() for stack offsets, which may be negative. | Misha Brukman | 2004-07-21 | 1 | -3/+3 | |
| | | | | llvm-svn: 15081 | |||||
* | Fix analysis name. | Alkis Evlogimenos | 2004-07-21 | 1 | -1/+1 | |
| | | | | llvm-svn: 15078 | |||||
* | Add SUBI instruction | Misha Brukman | 2004-07-21 | 1 | -0/+1 | |
| | | | | llvm-svn: 15077 | |||||
* | Clear spilled list at once. Remove unused vector. | Alkis Evlogimenos | 2004-07-21 | 1 | -3/+2 | |
| | | | | llvm-svn: 15073 | |||||
* | Change std::list into a std::vector for IntervalSets. This reduces | Alkis Evlogimenos | 2004-07-21 | 1 | -4/+5 | |
| | | | | | | compile time for 176.gcc from 5.6 secs to 4.7 secs. llvm-svn: 15072 | |||||
* | Improve file comment. | Alkis Evlogimenos | 2004-07-21 | 1 | -1/+7 | |
| | | | | llvm-svn: 15069 | |||||
* | Add Iterative scan register allocator. | Alkis Evlogimenos | 2004-07-21 | 2 | -4/+479 | |
| | | | | llvm-svn: 15068 | |||||
* | Linearscan is no longer experimental. | Alkis Evlogimenos | 2004-07-21 | 1 | -1/+1 | |
| | | | | llvm-svn: 15067 | |||||
* | Add capability to remove aliasing aliassets from an AST | Chris Lattner | 2004-07-21 | 1 | -0/+56 | |
| | | | | llvm-svn: 15066 | |||||
* | Make the AST interface a bit richer by returning whether an insertion caused | Chris Lattner | 2004-07-21 | 1 | -19/+32 | |
| | | | | | | an insertion or not (because the pointer set already existed). llvm-svn: 15064 | |||||
* | Remove special casing of pointers and treat them generically as integers of | Chris Lattner | 2004-07-21 | 1 | -8/+5 | |
| | | | | | | the appopriate size. This gives us the ability to eliminate int -> ptr -> int llvm-svn: 15063 | |||||
* | Do not ignore casts unless they are pointer-pointer casts. This caused us | Chris Lattner | 2004-07-21 | 1 | -4/+8 | |
| | | | | | | to miscompile the SingleSource/Regression/C++/pointer_member.cpp program. llvm-svn: 15062 | |||||
* | Solaris hack for isinf() | Brian Gaeke | 2004-07-21 | 1 | -0/+5 | |
| | | | | llvm-svn: 15058 | |||||
* | Emit NaNs and INFs bit-identically to the bytecode file, if the system has | Brian Gaeke | 2004-07-21 | 1 | -2/+64 | |
| | | | | | | | printf("%a") support. Patch contributed by Bill Wendling. llvm-svn: 15056 | |||||
* | Add platform-independent wrapper function for isinf(). | Brian Gaeke | 2004-07-21 | 1 | -0/+31 | |
| | | | | | | Patch contributed by Bill Wendling. llvm-svn: 15050 | |||||
* | Shorts are aligned to 2 bytes, bools to 1 byte (in structs). | Misha Brukman | 2004-07-20 | 1 | -1/+1 | |
| | | | | llvm-svn: 15048 | |||||
* | Treat external variables similarly to those with weak linkage: load indirect. | Misha Brukman | 2004-07-20 | 2 | -8/+8 | |
| | | | | llvm-svn: 15047 | |||||
* | Differentiate between global and weak symbol loads | Misha Brukman | 2004-07-20 | 1 | -1/+2 | |
| | | | | llvm-svn: 15037 | |||||
* | * Differentiate between global and weak symbol loads | Misha Brukman | 2004-07-20 | 2 | -128/+90 | |
| | | | | | | | | | | | | * Fix functions that take more than 32 bytes of args * Alignment of doubles in structs is 4 bytes, not 8 * Fix passing long args: rN = hi, rN+1 = lo * Rewrite signed divide * Rewrite Intrinsic::returnaddress Patch courtesy of Nate Begeman. llvm-svn: 15036 | |||||
* | Differentiate between global and weak symbol loads | Misha Brukman | 2004-07-20 | 2 | -12/+6 | |
| | | | | llvm-svn: 15035 | |||||
* | Double alignment in structs is 4 bytes, not 8. Patch by Nate Begeman. | Misha Brukman | 2004-07-20 | 1 | -1/+1 | |
| | | | | llvm-svn: 15034 | |||||
* | Add function to clear all virtual->physical mappings but not assigned | Alkis Evlogimenos | 2004-07-20 | 1 | -0/+5 | |
| | | | | | | stack slots. This is in preparation for the iterative linear scan. llvm-svn: 15032 | |||||
* | Remove unneeded functor. LiveInterval has a < operator. | Alkis Evlogimenos | 2004-07-20 | 1 | -11/+1 | |
| | | | | llvm-svn: 15031 | |||||
* | Fix a serious code pessimization problem. If an inlined function has a single | Chris Lattner | 2004-07-20 | 1 | -5/+6 | |
| | | | | | | | return, clone the 'ret' BB code into the block AFTER the inlined call, not the other way around. llvm-svn: 15030 | |||||
* | Implement Transforms/InstCombine/IntPtrCast.ll | Chris Lattner | 2004-07-20 | 1 | -11/+16 | |
| | | | | llvm-svn: 15029 | |||||
* | Ignore instructions that are in trivially dead functions. This allows us | Chris Lattner | 2004-07-20 | 1 | -4/+17 | |
| | | | | | | to constify 14 globals instead of 4 in a trivial C++ testcase. llvm-svn: 15027 | |||||
* | Fix stack frame layout in prologue/epilogue. Patch courtesy of Nate Begeman. | Misha Brukman | 2004-07-20 | 1 | -18/+11 | |
| | | | | llvm-svn: 15026 | |||||
* | Implement InstCombine/GEPIdxCanon.ll | Chris Lattner | 2004-07-20 | 1 | -1/+10 | |
| | | | | llvm-svn: 15024 | |||||
* | Implement SimplifyCFG/BrUnwind.ll | Chris Lattner | 2004-07-20 | 1 | -2/+9 | |
| | | | | llvm-svn: 15022 | |||||
* | Move handing of GlobalValues from getReg() to copyConstantToRegister(), this | Misha Brukman | 2004-07-20 | 2 | -38/+22 | |
| | | | | | | will avoid extra register-to-register copies. Thanks to Chris for the idea. llvm-svn: 15019 | |||||
* | Rewrite cast->cast elimination code completely based on the information we | Chris Lattner | 2004-07-20 | 1 | -43/+53 | |
| | | | | | | | | actually care about. Someday when the cast instruction is gone, we can do better here, but this will do for now. This implements instcombine/cast.ll:test17/18 as well. llvm-svn: 15018 | |||||
* | * Fn args passed in registers are now recorded as used by the call instruction | Misha Brukman | 2004-07-20 | 2 | -12/+36 | |
| | | | | | | | | `-> asm printer updated to not print out those registers with the call instr All of Shootout tests now work. Great thanks to Nate Begeman for the patch! llvm-svn: 15015 |