Skip to content
  1. Dec 20, 2011
    • Akira Hatanaka's avatar
      64-bit data directive. · cf10f088
      Akira Hatanaka authored
      llvm-svn: 147005
      cf10f088
    • Akira Hatanaka's avatar
      32-to-64-bit sext_inreg pattern. · 494fdf14
      Akira Hatanaka authored
      llvm-svn: 147004
      494fdf14
    • Akira Hatanaka's avatar
      Add code in MipsDAGToDAGISel for selecting constant +0.0. · dac1d48d
      Akira Hatanaka authored
      MIPS64 can generate constant +0.0 with a single DMTC1 instruction. 
      
      llvm-svn: 146999
      dac1d48d
    • Jakob Stoklund Olesen's avatar
      Heed spill slot alignment on ARM. · b95c102c
      Jakob Stoklund Olesen authored
      Use the spill slot alignment as well as the local variable alignment to
      determine when the stack needs to be realigned. This works now that the
      ARM target can always realign the stack by using a base pointer.
      
      Still respect the ARMBaseRegisterInfo::canRealignStack() function
      vetoing a realigned stack.  Don't use aligned spill code in that case.
      
      llvm-svn: 146997
      b95c102c
    • Evan Cheng's avatar
      68132d80
    • Elena Demikhovsky's avatar
      This is the second fix related to VZEXT_MOVL node. · ec7e6e09
      Elena Demikhovsky authored
      The failure that I see in the current version is:
      
      LLVM ERROR: Cannot select: 0x18b8f70: v4i64 = X86ISD::VZEXT_MOVL 0x18beee0 [ID=14]
        0x18beee0: v4i64 = insert_subvector 0x18b8c70, 0x18b9170, 0x18b9570 [ID=13]
          0x18b8c70: v4i64 = insert_subvector 0x18b9870, 0x18bf4e0, 0x18b9970 [ID=12]
            0x18b9870: v4i64 = undef [ID=4]
            0x18bf4e0: v2i64 = bitcast 0x18bf3e0 [ID=10]
              0x18bf3e0: v4i32 = BUILD_VECTOR 0x18b9770, 0x18b9770, 0x18b9770, 0x18b9770 [ID=8]
                0x18b9770: i32 = TargetConstant<0> [ID=6]
                0x18b9770: i32 = TargetConstant<0> [ID=6]
                0x18b9770: i32 = TargetConstant<0> [ID=6]
                0x18b9770: i32 = TargetConstant<0> [ID=6]
            0x18b9970: i32 = Constant<0> [ID=3]
          0x18b9170: v2i64 = undef [ORD=1] [ID=1]
          0x18b9570: i32 = Constant<2> [ID=5]
      
      llvm-svn: 146975
      ec7e6e09
    • Chandler Carruth's avatar
      Begin teaching the X86 target how to efficiently codegen patterns that · 24680c24
      Chandler Carruth authored
      use the zero-undefined variants of CTTZ and CTLZ. These are just simple
      patterns for now, there is more to be done to make real world code using
      these constructs be optimized and codegen'ed properly on X86.
      
      The existing tests are spiffed up to check that we no longer generate
      unnecessary cmov instructions, and that we generate the very important
      'xor' to transform bsr which counts the index of the most significant
      one bit to the number of leading (most significant) zero bits. Also they
      now check that when the variant with defined zero result is used, the
      cmov is still produced.
      
      llvm-svn: 146974
      24680c24
    • Bob Wilson's avatar
      Mark ARM eh_sjlj_dispatchsetup as clobbering all registers. Radar 10567930. · 75f12cc3
      Bob Wilson authored
      We used to rely on the *eh_sjlj_setjmp instructions to mark that a function
      with setjmp/longjmp exception handling clobbers all the registers.  But with
      the recent reorganization of ARM EH, those eh_sjlj_setjmp instructions are
      expanded away earlier, before PEI can see them to determine what registers to
      save and restore.  Mark the dispatchsetup instruction in the same way, since
      that instruction cannot be expanded early.  This also more accurately reflects
      when the registers are clobbered.
      
      llvm-svn: 146949
      75f12cc3
    • Evan Cheng's avatar
      Move tests to FileCheck. · 3bfaefe9
      Evan Cheng authored
      llvm-svn: 146923
      3bfaefe9
  2. Dec 19, 2011
  3. Dec 17, 2011
  4. Dec 16, 2011
  5. Dec 15, 2011
  6. Dec 14, 2011
  7. Dec 13, 2011
  8. Dec 12, 2011
    • Akira Hatanaka's avatar
      Test case for r146432 by Jack Carter. · 9e5908ae
      Akira Hatanaka authored
      llvm-svn: 146433
      9e5908ae
    • Bob Wilson's avatar
      Implement 'e' and 'f' modifiers for Neon inline asm. <rdar://problem/10551006> · fadc2c83
      Bob Wilson authored
      These modifiers simply select either the low or high D subregister of a Neon
      Q register.  I've also removed the unimplemented 'p' modifier, which turns out
      to be a bit different than the comment here suggests and as far as I can tell
      was only intended for internal use in Apple's version of gcc.
      
      llvm-svn: 146417
      fadc2c83
    • Tony Linthicum's avatar
      Hexagon backend support · 1213a7a5
      Tony Linthicum authored
      llvm-svn: 146412
      1213a7a5
    • Chandler Carruth's avatar
      Manually upgrade the test suite to specify the flag to cttz and ctlz. · 6b0e34c4
      Chandler Carruth authored
      I followed three heuristics for deciding whether to set 'true' or
      'false':
      
      - Everything target independent got 'true' as that is the expected
        common output of the GCC builtins.
      - If the target arch only has one way of implementing this operation,
        set the flag in the way that exercises the most of codegen. For most
        architectures this is also the likely path from a GCC builtin, with
        'true' being set. It will (eventually) require lowering away that
        difference, and then lowering to the architecture's operation.
      - Otherwise, set the flag differently dependending on which target
        operation should be tested.
      
      Let me know if anyone has any issue with this pattern or would like
      specific tests of another form. This should allow the x86 codegen to
      just iteratively improve as I teach the backend how to differentiate
      between the two forms, and everything else should remain exactly the
      same.
      
      llvm-svn: 146370
      6b0e34c4
  9. Dec 11, 2011
  10. Dec 10, 2011
Loading