|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| ... |  | 
| | 
| 
| 
| | llvm-svn: 15926 | 
| | 
| 
| 
| | llvm-svn: 15914 | 
| | 
| 
| 
| 
| 
| 
| 
| | Change int->float cast code to put conversion constants in constant pool.
Shorten code sequence for constant pool fp loads.
Remove LOADLoDirect/LOADLoIndirect psuedo instructions and tweak asmwriter
llvm-svn: 15913 | 
| | 
| 
| 
| 
| 
| 
| 
| | that have a frame pointer.  This change fixes Burg.  In addition, make
the necessary changes to floating point code gen and constant loading after
Chris Lattner's fixes to the asm writer.  These changes fix MallocBench/gs
llvm-svn: 15873 | 
| | 
| 
| 
| | llvm-svn: 15850 | 
| | 
| 
| 
| 
| 
| | sized allocas.
llvm-svn: 15806 | 
| | 
| 
| 
| 
| 
| | double store; optimize cmplwi generation.
llvm-svn: 15759 | 
| | 
| 
| 
| 
| 
| | linkage function addresses
llvm-svn: 15742 | 
| | 
| 
| 
| 
| 
| 
| | Darwin.  Also, change asm printer to output proper stubs for external
functions whose address is passed as an argument to aid in bugpointing.
llvm-svn: 15721 | 
| | 
| 
| 
| | llvm-svn: 15720 | 
| | 
| 
| 
| | llvm-svn: 15719 | 
| | 
| 
| 
| 
| 
| | printer.
llvm-svn: 15662 | 
| | 
| 
| 
| | llvm-svn: 15661 | 
| | 
| 
| 
| | llvm-svn: 15648 | 
| | 
| 
| 
| | llvm-svn: 15634 | 
| | 
| 
| 
| | llvm-svn: 15631 | 
| | 
| 
| 
| 
| 
| 
| 
| | Replace STDX (store 64 bit int indexed) with STFDX (store double indexed)
Fix latent bug in indexed load generation
Generate indexed loads and stores in many more cases
llvm-svn: 15626 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Use a PowerPC specific prolog epilog inserter to control where spilled
callee save regs are placed on the stack.
Get rid of implicit return address stack slot, save return address reg
(LR) in appropriate slot
Improve code generated for functions that don't have calls or access
globals
Note from Chris: PowerPCPEI will eventually be eliminated, once the
functionality is merged into CodeGen/PrologEpilogInserter.cpp
llvm-svn: 15536 | 
| | 
| 
| 
| | llvm-svn: 15306 | 
| | 
| 
| 
| | llvm-svn: 15299 | 
| | 
| 
| 
| 
| 
| | Patch by Nate Begeman.
llvm-svn: 15282 | 
| | 
| 
| 
| | llvm-svn: 15270 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | * Implemented GEP folding
* Dynamically output global address stuff once per function
* Fix casting fp<->short/byte
Patch contributed by Nate Begeman.
llvm-svn: 15237 | 
| | 
| 
| 
| | llvm-svn: 15146 | 
| | 
| 
| 
| | llvm-svn: 15143 | 
| | 
| 
| 
| 
| 
| 
| 
| | * Function pointers implemented correctly using appropriate stubs
Contributed by Nate Begeman.
llvm-svn: 15133 | 
| | 
| 
| 
| 
| 
| | * Fix indentation back to 2 spaces
llvm-svn: 15121 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * Don't allow negative immediates to users of unsigned immediates
* Fix long compares
* Support <const int>, op as a potential immediate candidate
* Fix sign extension of short and byte loads
* Fix and improve integer casts
* Fix passing of doubles as vararg functions
Patch contributed by Nate Begeman.
llvm-svn: 15109 | 
| | 
| 
| 
| 
| 
| | * Fix opcode RLWNM -> RLWINM since it uses an immediate const shift value
llvm-svn: 15087 | 
| | 
| 
| 
| 
| 
| 
| | dyn_cast<>ing and checking Constant's value
* Convert tabs to spaces
llvm-svn: 15086 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * 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 | 
| | 
| 
| 
| | llvm-svn: 15047 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * 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 | 
| | 
| 
| 
| 
| 
| | will avoid extra register-to-register copies.  Thanks to Chris for the idea.
llvm-svn: 15019 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * Fn args passed in registers are now recorded as used by the call instruction
`-> asm printer updated to not print out those registers with the call instr
* Stack frame layout in prolog/epilog fixed, spills and vararg fns now work
* float/double to signed int codegen now correct
* various single precision float codegen bugs fixed
* const integer multiply codegen fixed
* select and setcc blocks inserted into the correct place in machine CFG
* load of integer constant code optimized
All of Shootout tests now work.  Great thanks to Nate Begeman for the patch!
llvm-svn: 15014 | 
| | 
| 
| 
| | llvm-svn: 14971 | 
| | 
| 
| 
| | llvm-svn: 14961 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | a funky way to "use" R0 for a 0-valued operand
* Add IMPLICIT_DEFs for incoming function arguments via registers to help the
  register allocator not clobber those registers
* Implement comparisons with longs
* Teach emitSelectOperation() to fold the SetCC operation
Patch contributed by Nate Begeman
llvm-svn: 14901 | 
| | 
| 
| 
| | llvm-svn: 14841 | 
| | 
| 
| 
| | llvm-svn: 14822 | 
| | 
| 
| 
| | llvm-svn: 14819 | 
| | 
| 
| 
| 
| 
| | * Clarify variable name (StoreInst SI instead of LI)
llvm-svn: 14818 | 
| | 
| 
| 
| 
| 
| | * Correctly load FP constants from the constant pool, should be refactored
llvm-svn: 14799 | 
| | 
| 
| 
| | llvm-svn: 14782 | 
| | 
| 
| 
| | llvm-svn: 14744 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | The large diff is because of indentation of a whole region
* Fix querying predecessor blocks in SelectPHINodes(), thanks to Brian (v8)
* Add support for external functions malloc() and free()
* Fix some code indentation
Remember, kids: It's not plagiarism if you "creatively borrow" from your
sources.  It's called "research"!
llvm-svn: 14723 | 
| | 
| 
| 
| | llvm-svn: 14703 | 
| | 
| 
| 
| 
| 
| | * Non-const FP values must be loaded into int regs (for vararg fns) via memory
llvm-svn: 14701 | 
| | 
| 
| 
| 
| 
| | * Load FP values into int regs as well for vararg functions; without memory ops!
llvm-svn: 14700 | 
| | 
| 
| 
| 
| 
| | * Tabs to spaces
llvm-svn: 14673 |