Skip to content
  1. Jul 03, 2009
    • Tilmann Scheller's avatar
      Small cleanups in the PowerPC backend. · 98bdaaa3
      Tilmann Scheller authored
      Small refactoring in LowerFORMAL_ARGUMENTS().
      Correct minor formatting issues.
      Remove size argument of CreateCopyOfByValArgument().
      Remove dead argument from CalculateStackSlotSize().
      Remove unused variable ReturnAddrIndex from various targets.
      
      llvm-svn: 74763
      98bdaaa3
  2. Jul 01, 2009
  3. May 27, 2009
  4. Feb 07, 2009
  5. Jan 01, 2009
    • Duncan Sands's avatar
      Fix PR3274: when promoting the condition of a BRCOND node, · 8feb694e
      Duncan Sands authored
      promote from i1 all the way up to the canonical SetCC type.
      In order to discover an appropriate type to use, pass
      MVT::Other to getSetCCResultType.  In order to be able to
      do this, change getSetCCResultType to take a type as an
      argument, not a value (this is also more logical).
      
      llvm-svn: 61542
      8feb694e
  6. Oct 18, 2008
    • Dan Gohman's avatar
      Teach DAGCombine to fold constant offsets into GlobalAddress nodes, · 2fe6bee5
      Dan Gohman authored
      and add a TargetLowering hook for it to use to determine when this
      is legal (i.e. not in PIC mode, etc.)
      
      This allows instruction selection to emit folded constant offsets
      in more cases, such as the included testcase, eliminating the need
      for explicit arithmetic instructions.
      
      This eliminates the need for the C++ code in X86ISelDAGToDAG.cpp
      that attempted to achieve the same effect, but wasn't as effective.
      
      Also, fix handling of offsets in GlobalAddressSDNodes in several
      places, including changing GlobalAddressSDNode's offset from
      int to int64_t.
      
      The Mips, Alpha, Sparc, and CellSPU targets appear to be
      unaware of GlobalAddress offsets currently, so set the hook to
      false on those targets.
      
      llvm-svn: 57748
      2fe6bee5
  7. Sep 23, 2008
  8. Sep 13, 2008
    • Dan Gohman's avatar
      Define CallSDNode, an SDNode subclass for use with ISD::CALL. · d3fe174c
      Dan Gohman authored
      Currently it just holds the calling convention and flags
      for isVarArgs and isTailCall.
      
      And it has several utility methods, which eliminate magic
      5+2*i and similar index computations in several places.
      
      CallSDNodes are not CSE'd. Teach UpdateNodeOperands to handle
      nodes that are not CSE'd gracefully.
      
      llvm-svn: 56183
      d3fe174c
  9. Aug 13, 2008
    • Bruno Cardoso Lopes's avatar
      Removed SELECT_CC custom lowering. This is not needed anymore, the SELECT node · 92c64ae2
      Bruno Cardoso Lopes authored
      is lowered properly and covers everything LowerSELECT_CC did.
      Added method printUnsignedImm in AsmPrinter to print uimm16 operands. This
      avoid the ugly instruction by instruction checking in printOperand.
      Added a swap instruction present in the allegrex core.
      Added two conditional instructions present in the allegrex core : MOVZ and MOVN.
      They both allow a more efficient SELECT operation for integers.
      Also added SELECT patterns to optimize MOVZ and MOVN usage.
      The brcond and setcc patterns were cleaned: redundant and suboptimal patterns
      were
      removed. The suboptimals were replaced by more efficient ones.
      Fixed some instructions that were using immZExt16 instead of immSExt16.
      
      llvm-svn: 54724
      92c64ae2
  10. Aug 07, 2008
    • Bruno Cardoso Lopes's avatar
      Added Mips support for DYNAMIC_STACKALLOC · 02ff450f
      Bruno Cardoso Lopes authored
      Fixed bug in adjustMipsStackFrame, which was breaking
      while trying to access a dead stack object index. Also added
      one more alignment before fixing the callee saved registers
      stack offset adjustment.
      
      llvm-svn: 54485
      02ff450f
  11. Aug 04, 2008
  12. Aug 02, 2008
  13. Jul 31, 2008
  14. Jul 29, 2008
  15. Jul 28, 2008
  16. Jul 27, 2008
  17. Jul 23, 2008
  18. Jul 21, 2008
  19. Jul 09, 2008
  20. Jul 05, 2008
    • Bruno Cardoso Lopes's avatar
      Several changes to Mips backend, experimental fp support being the most · c9c3f499
      Bruno Cardoso Lopes authored
      important.
      - Cleanup in the Subtarget info with addition of new features, not all support
        yet, but they allow the future inclusion of features easier. Among new features,
        we have : Arch family info (mips1, mips2, ...), ABI info (o32, eabi), 64-bit
        integer
        and float registers, allegrex vector FPU (VFPU), single float only support.
      - TargetMachine now detects allegrex core.
      - Added allegrex (Mips32r2) sext_inreg instructions.
      - *Added Float Point Instructions*, handling single float only, and
        aliased accesses for 32-bit FPUs.
      - Some cleanup in FP instruction formats and FP register classes.
      - Calling conventions improved to support mips 32-bit EABI.
      - Added Asm Printer support for fp cond codes.
      - Added support for sret copy to a return register.
      - EABI support added into LowerCALL and FORMAL_ARGS.
      - MipsFunctionInfo now keeps a virtual register per function to track the
        sret on function entry until function ret.
      - MipsInstrInfo FP support into methods (isMoveInstr, isLoadFromStackSlot, ...),
        FP cond codes mapping and initial FP Branch Analysis.
      - Two new Mips SDNode to handle fp branch and compare instructions : FPBrcond,
        FPCmp
      - MipsTargetLowering : handling different FP classes, Allegrex support, sret
        return copy, no homing location within EABI, non 32-bit stack objects
        arguments, and asm constraint for float.
      
      llvm-svn: 53146
      c9c3f499
  21. Jun 06, 2008
    • Duncan Sands's avatar
      Wrap MVT::ValueType in a struct to get type safety · 13237ac3
      Duncan Sands authored
      and better control the abstraction.  Rename the type
      to MVT.  To update out-of-tree patches, the main
      thing to do is to rename MVT::ValueType to MVT, and
      rewrite expressions like MVT::getSizeInBits(VT) in
      the form VT.getSizeInBits().  Use VT.getSimpleVT()
      to extract a MVT::SimpleValueType for use in switch
      statements (you will get an assert failure if VT is
      an extended value type - these shouldn't exist after
      type legalization).
      This results in a small speedup of codegen and no
      new testsuite failures (x86-64 linux).
      
      llvm-svn: 52044
      13237ac3
    • Bruno Cardoso Lopes's avatar
      Added custom SELECT_CC lowering · 4eed3afd
      Bruno Cardoso Lopes authored
      Added special isel for ADDE,SUBE and new patterns to match SUBC,ADDC
      
      llvm-svn: 52031
      4eed3afd
  22. Mar 10, 2008
  23. Dec 29, 2007
  24. Nov 12, 2007
  25. Nov 05, 2007
  26. Oct 09, 2007
  27. Aug 21, 2007
  28. Aug 18, 2007
  29. Aug 02, 2007
  30. Jul 11, 2007
  31. Jun 06, 2007
    • Bruno Cardoso Lopes's avatar
      Initial Mips support, here we go! =) · 35e43c49
      Bruno Cardoso Lopes authored
      - Modifications from the last patch included
        (issues pointed by Evan Cheng are now fixed).
      - Added more MipsI instructions.
      - Added more patterns to match branch instructions.
      
      llvm-svn: 37461
      35e43c49
Loading