Skip to content
  1. Jun 02, 2013
  2. Jun 01, 2013
  3. May 30, 2013
    • Andrew Trick's avatar
      Order CALLSEQ_START and CALLSEQ_END nodes. · ad6d08ac
      Andrew Trick authored
      Fixes PR16146: gdb.base__call-ar-st.exp fails after
      pre-RA-sched=source fixes.
      
      Patch by Xiaoyi Guo!
      
      This also fixes an unsupported dbg.value test case. Codegen was
      previously incorrect but the test was passing by luck.
      
      llvm-svn: 182885
      ad6d08ac
  4. May 29, 2013
  5. May 25, 2013
  6. May 20, 2013
  7. May 19, 2013
  8. May 17, 2013
  9. May 13, 2013
    • Rafael Espindola's avatar
      Remove the MachineMove class. · 227144c2
      Rafael Espindola authored
      It was just a less powerful and more confusing version of
      MCCFIInstruction. A side effect is that, since MCCFIInstruction uses
      dwarf register numbers, calls to getDwarfRegNum are pushed out, which
      should allow further simplifications.
      
      I left the MachineModuleInfo::addFrameMove interface unchanged since
      this patch was already fairly big.
      
      llvm-svn: 181680
      227144c2
  10. May 10, 2013
  11. Apr 21, 2013
  12. Apr 20, 2013
  13. Apr 16, 2013
  14. Apr 14, 2013
  15. Apr 13, 2013
  16. Apr 09, 2013
  17. Apr 07, 2013
    • Jakob Stoklund Olesen's avatar
      Implement LowerCall_64 for the SPARC v9 64-bit ABI. · a30f4832
      Jakob Stoklund Olesen authored
      There is still no support for byval arguments (which I don't think are
      needed) and varargs.
      
      llvm-svn: 178993
      a30f4832
    • Jakob Stoklund Olesen's avatar
      Implement LowerReturn_64 for SPARC v9. · edaf66b0
      Jakob Stoklund Olesen authored
      Integer return values are sign or zero extended by the callee, and
      structs up to 32 bytes in size can be returned in registers.
      
      The CC_Sparc64 CallingConv definition is shared between
      LowerFormalArguments_64 and LowerReturn_64. Function arguments and
      return values are passed in the same registers.
      
      The inreg flag is also used for return values. This is required to handle
      C functions returning structs containing floats and ints:
      
        struct ifp {
          int i;
          float f;
        };
      
        struct ifp f(void);
      
      LLVM IR:
      
        define inreg { i32, float } @f() {
           ...
           ret { i32, float } %retval
        }
      
      The ABI requires that %retval.i is returned in the high bits of %i0
      while %retval.f goes in %f1.
      
      Without the inreg return value attribute, %retval.i would go in %i0 and
      %retval.f would go in %f3 which is a more efficient way of returning
      %multiple values, but it is not ABI compliant for returning C structs.
      
      llvm-svn: 178966
      edaf66b0
Loading