Skip to content
  1. Oct 20, 2003
  2. Oct 17, 2003
  3. Oct 13, 2003
  4. Oct 10, 2003
  5. Sep 30, 2003
  6. Sep 06, 2003
    • Misha Brukman's avatar
      Added some optimizations: · c1ac706a
      Misha Brukman authored
      * Generate a single BA instead of 6-instruction JUMP if possible
        (this occurs both in the creation and overwriting of the stub code)
      * If possible, rewrite the ORIGINAL call to call the generated function
        directly, thus bypassing the stub entirely
      
      Also added some statistics on how often calls are overwritten and how often the
      CompilationCallback is invoked.
      
      llvm-svn: 8376
      c1ac706a
  7. Aug 29, 2003
    • Misha Brukman's avatar
      * Use alloca() to force GCC not to eliminate frame pointer · 9770b835
      Misha Brukman authored
      * Break apart saving and restoring registers into separate functions
      * Instead of saving single and double FP registers, just save the double
        registers -- aliasing helps preserve the single FP registers as well.
      * Request just as much memory for a stub as we actually use
      
      llvm-svn: 8200
      9770b835
  8. Aug 15, 2003
  9. Aug 14, 2003
  10. Aug 07, 2003
  11. Aug 06, 2003
    • Misha Brukman's avatar
      SparcV9CodeEmitter.cpp: · 4510698a
      Misha Brukman authored
      * Doxygen-ified comments
      * Added capability to make far calls (i.e., beyond 30 bits in CALL instr)
        which implies that we need to delete function references that were added by
        the call to addFunctionReference() because the actual call instruction is 10
        instructions away (thanks to 64-bit address construction)
      * Cleaned up code that generates far jumps by using an array+loop
      
      SparcV9CodeEmitter.h:
      * Explained more of the side-effects of emitFarCall()
      
      llvm-svn: 7639
      4510698a
  12. Aug 02, 2003
  13. Jul 29, 2003
  14. Jul 27, 2003
  15. Jul 16, 2003
  16. Jul 15, 2003
    • Misha Brukman's avatar
      Correctly handle calls to functions which are further away than 2**32 bits will · 384cb5dd
      Misha Brukman authored
      allow, i.e. make a sequence of instructions to enable an indirect call using
      jump-and-link and 2 temporary registers (which we save and ultimately restore).
      
      Warning: if the delay slot of a function call is used to do meaningful work and
      not just a NOP, this behavior is incorrect. However, the Sparc backend does not
      yet utilize the delay slots effectively, so it is not necessary to make an
      overly complicated algorithm for something that's not used.
      
      llvm-svn: 7178
      384cb5dd
    • Misha Brukman's avatar
      * Added support for the %ccr register · b402819d
      Misha Brukman authored
      * FP double registers are now coded correctly
      * Removed function which converted registers based on register types, it was
        broken (because regTypes are broken)
      
      llvm-svn: 7175
      b402819d
  17. Jul 03, 2003
    • Misha Brukman's avatar
      Apparently, the "regType" and "regClass" used in the Sparc backend are not both · bb956054
      Misha Brukman authored
      correct: empirically, "regType" is wrong for a number of registers. Thus, one
      can only rely on the "regClass" to figure out what kind of register one is
      dealing with.
      
      This change switches to using only "regClass" and adds a few extra DEBUG() print
      statements and a few clean-ups in comments and code, mostly minor.
      
      llvm-svn: 7103
      bb956054
  18. Jun 06, 2003
  19. Jun 05, 2003
  20. Jun 04, 2003
    • Misha Brukman's avatar
      * Instead of re-inventing the MachineConstantPool emitter that's already given · efafdf80
      Misha Brukman authored
        in Emitter.cpp, just convert the Sparc version of the constant pool into
        what's already supported and inter-operate.
      * Implemented a first pass at lazy function resolution in the JITResolver. That
        required adding a SparcV9CodeEmitter pointer to simplify generating
        bit-patterns of the instructions.
      * SparcV9CodeEmitter now creates and destroys static TheJITResolver, which makes
        sense because the SparcV9CodeEmitter is the only user of TheJITResolver, and
        lives for the entire duration of the JIT (via PassManager which lives in VM).
      * Changed all return values in the JITResolver to uint64_t because of the 64-bit
        Sparc architecture.
      * Added a new version of getting the value of a GlobalValue in the
        SparcV9CodeEmitter, which now works for already-generated functions (JITted or
        library functions).
      * Removed little-used and unused functions, cleaning up the internal view of the
        SparcV9CodeEmitter.
      
      llvm-svn: 6612
      efafdf80
  21. Jun 03, 2003
  22. Jun 02, 2003
  23. May 31, 2003
  24. May 30, 2003
    • Misha Brukman's avatar
      Added: · 5bf351c8
      Misha Brukman authored
      * ability to save BasicBlock references to be resolved later
      * register remappings from the enum values to the real hardware numbers
      
      llvm-svn: 6449
      5bf351c8
  25. May 28, 2003
  26. May 27, 2003
Loading