Skip to content
  1. Jun 26, 2012
    • Jack Carter's avatar
      There are a number of generic inline asm operand modifiers that · 5e69cffe
      Jack Carter authored
      up to r158925 were handled as processor specific. Making them 
      generic and putting tests for these modifiers in the CodeGen/Generic
      directory caused a number of targets to fail. 
      
      This commit addresses that problem by having the targets call 
      the generic routine for generic modifiers that they don't currently
      have explicit code for.
      
      For now only generic print operands 'c' and 'n' are supported.vi
      
      
      Affected files:
      
          test/CodeGen/Generic/asm-large-immediate.ll
          lib/Target/PowerPC/PPCAsmPrinter.cpp
          lib/Target/NVPTX/NVPTXAsmPrinter.cpp
          lib/Target/ARM/ARMAsmPrinter.cpp
          lib/Target/XCore/XCoreAsmPrinter.cpp
          lib/Target/X86/X86AsmPrinter.cpp
          lib/Target/Hexagon/HexagonAsmPrinter.cpp
          lib/Target/CellSPU/SPUAsmPrinter.cpp
          lib/Target/Sparc/SparcAsmPrinter.cpp
          lib/Target/MBlaze/MBlazeAsmPrinter.cpp
          lib/Target/Mips/MipsAsmPrinter.cpp
          
      MSP430 isn't represented because it did not even run with
      the long existing 'c' modifier and it was not apparent what
      needs to be done to get it inline asm ready.
      
      Contributer: Jack Carter
      llvm-svn: 159203
      5e69cffe
    • Elena Demikhovsky's avatar
      Removed unused variable · 863d2d32
      Elena Demikhovsky authored
      llvm-svn: 159197
      863d2d32
    • Bill Wendling's avatar
      Rename to match other X86_64* names. · 8ed44466
      Bill Wendling authored
      llvm-svn: 159196
      8ed44466
    • Elena Demikhovsky's avatar
      Shuffle optimization for AVX/AVX2. · 26088d2e
      Elena Demikhovsky authored
      The current patch optimizes frequently used shuffle patterns and gives these instruction sequence reduction.
      Before:
            vshufps $-35, %xmm1, %xmm0, %xmm2 ## xmm2 = xmm0[1,3],xmm1[1,3]
             vpermilps       $-40, %xmm2, %xmm2 ## xmm2 = xmm2[0,2,1,3]
             vextractf128    $1, %ymm1, %xmm1
             vextractf128    $1, %ymm0, %xmm0
             vshufps $-35, %xmm1, %xmm0, %xmm0 ## xmm0 = xmm0[1,3],xmm1[1,3]
             vpermilps       $-40, %xmm0, %xmm0 ## xmm0 = xmm0[0,2,1,3]
             vinsertf128     $1, %xmm0, %ymm2, %ymm0
      After:
            vshufps $13, %ymm0, %ymm1, %ymm1 ## ymm1 = ymm1[1,3],ymm0[0,0],ymm1[5,7],ymm0[4,4]
            vshufps $13, %ymm0, %ymm0, %ymm0 ## ymm0 = ymm0[1,3,0,0,5,7,4,4]
            vunpcklps       %ymm1, %ymm0, %ymm0 ## ymm0 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
      
      llvm-svn: 159188
      26088d2e
    • Craig Topper's avatar
      Remove some duplicate instructions that exist only to given different... · 94bf0f38
      Craig Topper authored
      Remove some duplicate instructions that exist only to given different mnemonics for the assembler. Use InstAlias instead.
      
      llvm-svn: 159184
      94bf0f38
    • Eli Friedman's avatar
      Make some ugly hacks for inline asm operands which name a specific register a... · bbcd09cc
      Eli Friedman authored
      Make some ugly hacks for inline asm operands which name a specific register a bit more thorough.  PR13196.
      
      llvm-svn: 159176
      bbcd09cc
  2. Jun 25, 2012
  3. Jun 24, 2012
  4. Jun 23, 2012
  5. Jun 22, 2012
    • Jakob Stoklund Olesen's avatar
      Functions calling __builtin_eh_return must have a frame pointer. · 321d41a8
      Jakob Stoklund Olesen authored
      The code in X86TargetLowering::LowerEH_RETURN() assumes that a frame
      pointer exists, but the frame pointer was forced by the presence of
      llvm.eh.unwind.init which isn't guaranteed.
      
      If llvm.eh.unwind.init is actually required in functions calling
      eh.return (is it?), we should diagnose that instead of emitting bad
      machine code.
      
      This should fix the dragonegg-x86_64-linux-gcc-4.6-test bot.
      
      llvm-svn: 158961
      321d41a8
  6. Jun 20, 2012
  7. Jun 19, 2012
    • Rafael Espindola's avatar
      Move the support for using .init_array from ARM to the generic · ca3e0ee8
      Rafael Espindola authored
      TargetLoweringObjectFileELF. Use this to support it on X86. Unlike ARM,
      on X86 it is not easy to find out if .init_array should be used or not, so
      the decision is made via TargetOptions and defaults to off.
      
      Add a command line option to llc that enables it.
      
      llvm-svn: 158692
      ca3e0ee8
  8. Jun 18, 2012
    • Chandler Carruth's avatar
      Temporarily revert r158087. · 2cc11fd8
      Chandler Carruth authored
      This patch causes problems when both dynamic stack realignment and
      dynamic allocas combine in the same function. With this patch, we no
      longer build the epilog correctly, and silently restore registers from
      the wrong position in the stack.
      
      Thanks to Matt for tracking this down, and getting at least an initial
      test case to Chad. I'm going to try to check a variation of that test
      case in so we can easily track the fixes required.
      
      llvm-svn: 158654
      2cc11fd8
  9. Jun 16, 2012
  10. Jun 15, 2012
  11. Jun 13, 2012
  12. Jun 10, 2012
  13. Jun 09, 2012
Loading