summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Fit to 80 columns.Alkis Evlogimenos2004-07-221-10/+11
| | | | llvm-svn: 15105
* Some compile time improvements resulting in a 1sec speedup in the 5secAlkis Evlogimenos2004-07-221-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 andChris Lattner2004-07-221-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 setsChris Lattner2004-07-221-11/+13
| | | | llvm-svn: 15099
* Remove extraneous punctuationChris Lattner2004-07-221-2/+2
| | | | llvm-svn: 15098
* Update GC intrinsics to take a pointer to the object as well as a pointerChris Lattner2004-07-221-5/+8
| | | | | | to the field being updated. Patch contributed by Tobias Nurmiranta llvm-svn: 15097
* Updates to gc intrinsics, contributed by Tobias NurmirantaChris Lattner2004-07-221-2/+2
| | | | llvm-svn: 15096
* Use reverse iterators when updating the vector, since scanning fromAlkis Evlogimenos2004-07-221-11/+14
| | | | | | the end will reduce erase() runtimes. llvm-svn: 15093
* That funny 2-address lowering pass can also cause multiple definitions,Chris Lattner2004-07-221-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 cleanupsChris Lattner2004-07-211-8/+6
| | | | llvm-svn: 15091
* Fix cases where we generated horrible code like this:Chris Lattner2004-07-211-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 Gaeke2004-07-2120-21/+0
| | | | | | "Support/Debug.h". llvm-svn: 15089
* * Add the lost fix to define the second reg of a 2-reg representation of longsMisha Brukman2004-07-212-2/+8
| | | | | | * Fix opcode RLWNM -> RLWINM since it uses an immediate const shift value llvm-svn: 15087
* * Speed up canUseAsImmediateForOpcode() by comparing Operand beforeMisha Brukman2004-07-212-38/+38
| | | | | | | dyn_cast<>ing and checking Constant's value * Convert tabs to spaces llvm-svn: 15086
* * Further cleanup.Chris Lattner2004-07-211-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 Brukman2004-07-212-14/+58
| | | | | | | * Fix printing of `zeroinitializer' * Fix printing of `linkonce' globals, complete with stubs llvm-svn: 15084
* * Fix printing of signed immediate valuesMisha Brukman2004-07-212-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 defensiveChris Lattner2004-07-211-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 Brukman2004-07-211-3/+3
| | | | llvm-svn: 15081
* Fix analysis name.Alkis Evlogimenos2004-07-211-1/+1
| | | | llvm-svn: 15078
* Add SUBI instructionMisha Brukman2004-07-211-0/+1
| | | | llvm-svn: 15077
* Clear spilled list at once. Remove unused vector.Alkis Evlogimenos2004-07-211-3/+2
| | | | llvm-svn: 15073
* Change std::list into a std::vector for IntervalSets. This reducesAlkis Evlogimenos2004-07-211-4/+5
| | | | | | compile time for 176.gcc from 5.6 secs to 4.7 secs. llvm-svn: 15072
* Improve file comment.Alkis Evlogimenos2004-07-211-1/+7
| | | | llvm-svn: 15069
* Add Iterative scan register allocator.Alkis Evlogimenos2004-07-212-4/+479
| | | | llvm-svn: 15068
* Linearscan is no longer experimental.Alkis Evlogimenos2004-07-211-1/+1
| | | | llvm-svn: 15067
* Add capability to remove aliasing aliassets from an ASTChris Lattner2004-07-211-0/+56
| | | | llvm-svn: 15066
* Make the AST interface a bit richer by returning whether an insertion causedChris Lattner2004-07-211-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 ofChris Lattner2004-07-211-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 usChris Lattner2004-07-211-4/+8
| | | | | | to miscompile the SingleSource/Regression/C++/pointer_member.cpp program. llvm-svn: 15062
* Solaris hack for isinf()Brian Gaeke2004-07-211-0/+5
| | | | llvm-svn: 15058
* Emit NaNs and INFs bit-identically to the bytecode file, if the system hasBrian Gaeke2004-07-211-2/+64
| | | | | | | printf("%a") support. Patch contributed by Bill Wendling. llvm-svn: 15056
* Add platform-independent wrapper function for isinf().Brian Gaeke2004-07-211-0/+31
| | | | | | Patch contributed by Bill Wendling. llvm-svn: 15050
* Shorts are aligned to 2 bytes, bools to 1 byte (in structs).Misha Brukman2004-07-201-1/+1
| | | | llvm-svn: 15048
* Treat external variables similarly to those with weak linkage: load indirect.Misha Brukman2004-07-202-8/+8
| | | | llvm-svn: 15047
* Differentiate between global and weak symbol loadsMisha Brukman2004-07-201-1/+2
| | | | llvm-svn: 15037
* * Differentiate between global and weak symbol loadsMisha Brukman2004-07-202-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 loadsMisha Brukman2004-07-202-12/+6
| | | | llvm-svn: 15035
* Double alignment in structs is 4 bytes, not 8. Patch by Nate Begeman.Misha Brukman2004-07-201-1/+1
| | | | llvm-svn: 15034
* Add function to clear all virtual->physical mappings but not assignedAlkis Evlogimenos2004-07-201-0/+5
| | | | | | stack slots. This is in preparation for the iterative linear scan. llvm-svn: 15032
* Remove unneeded functor. LiveInterval has a < operator.Alkis Evlogimenos2004-07-201-11/+1
| | | | llvm-svn: 15031
* Fix a serious code pessimization problem. If an inlined function has a singleChris Lattner2004-07-201-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.llChris Lattner2004-07-201-11/+16
| | | | llvm-svn: 15029
* Ignore instructions that are in trivially dead functions. This allows usChris Lattner2004-07-201-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 Brukman2004-07-201-18/+11
| | | | llvm-svn: 15026
* Implement InstCombine/GEPIdxCanon.llChris Lattner2004-07-201-1/+10
| | | | llvm-svn: 15024
* Implement SimplifyCFG/BrUnwind.llChris Lattner2004-07-201-2/+9
| | | | llvm-svn: 15022
* Move handing of GlobalValues from getReg() to copyConstantToRegister(), thisMisha Brukman2004-07-202-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 weChris Lattner2004-07-201-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 instructionMisha Brukman2004-07-202-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
OpenPOWER on IntegriCloud