Skip to content
  1. Dec 16, 2013
  2. Dec 14, 2013
  3. Dec 13, 2013
  4. Dec 12, 2013
    • Rafael Espindola's avatar
      Switch to the new MingW ABI. · 32cb5ac9
      Rafael Espindola authored
      GCC 4.7 changed the MingW ABI. On the LLVM side it means that sret functions
      don't pop the stack.
      
      llvm-svn: 197163
      32cb5ac9
    • Andrea Di Biagio's avatar
      Added new X86 patterns to select SSE scalar fp arithmetic instructions from · 9b5c3dcf
      Andrea Di Biagio authored
      a vector packed single/double fp operation followed by a vector insert.
      
      The effect is that the backend coverts the packed fp instruction
      followed by a vectro insert into a SSE or AVX scalar fp instruction.
      
      For example, given the following code:
         __m128 foo(__m128 A, __m128 B) {
           __m128 C = A + B;
           return (__m128) {c[0], a[1], a[2], a[3]};
         }
      
       previously we generated:
         addps %xmm0, %xmm1
         movss %xmm1, %xmm0
       
       we now generate:
         addss %xmm1, %xmm0
      
      llvm-svn: 197145
      9b5c3dcf
  5. Dec 11, 2013
    • Elena Demikhovsky's avatar
      AVX-512: Removed "z" suffix from AVX-512 instructions, since it is incompatible with GCC. · cf088098
      Elena Demikhovsky authored
      I moved a test from avx512-vbroadcast-crash.ll to avx512-vbroadcast.ll
      I defined HasAVX512 predicate as AssemblerPredicate. It means that you should invoke llvm-mc with "-mcpu=knl" to get encoding for AVX-512 instructions. I need this to let AsmMatcher to set different encoding for AVX and AVX-512 instructions that have the same mnemonic and operands (all scalar instructions).
      
      llvm-svn: 197041
      cf088098
    • NAKAMURA Takumi's avatar
      Prune redundant dependencies in LLVMBuild.txt. · 8bc9bfaa
      NAKAMURA Takumi authored
      llvm-svn: 196988
      8bc9bfaa
    • Reid Kleckner's avatar
      Revert the backend fatal error from r196939 · ad92aca4
      Reid Kleckner authored
      The combination of inline asm, stack realignment, and dynamic allocas
      turns out to be too common to reject out of hand.
      
      ASan inserts empy inline asm fragments and uses aligned allocas.
      Compiling any trivial function containing a dynamic alloca with ASan is
      enough to trigger the check.
      
      XFAIL the test cases that would be miscompiled and add one that uses the
      relevant functionality.
      
      llvm-svn: 196986
      ad92aca4
  6. Dec 10, 2013
  7. Dec 09, 2013
  8. Dec 06, 2013
  9. Dec 05, 2013
    • Rafael Espindola's avatar
      Remove the isImplicitlyPrivate argument of getNameWithPrefix. · 117b20c4
      Rafael Espindola authored
      getSymbolWithGlobalValueBase use is to create a name of a new symbol based
      on the name of an existing GV. Assert that and then remove the last call
      to pass true to isImplicitlyPrivate.
      
      This gives the mangler API a 1:1 mapping from GV to names, which is what we
      need to drop the mangler dependency on the target (and use an extended
      datalayout instead).
      
      llvm-svn: 196472
      117b20c4
    • Alp Toker's avatar
      Correct word hyphenations · f907b891
      Alp Toker authored
      This patch tries to avoid unrelated changes other than fixing a few
      hyphen-related ambiguities and contractions in nearby lines.
      
      llvm-svn: 196471
      f907b891
    • Rafael Espindola's avatar
      Hide the stub created for MO_ExternalSymbol too. · 01d19d02
      Rafael Espindola authored
      given
      
      declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i32, i1)
      declare void @foo()
      define void @bar() {
        call void @foo()
        call void @llvm.memset.p0i8.i32(i8* null, i8 0, i32 188, i32 1, i1 false)
        ret void
      }
      
      We used to produce
      
      L_foo$stub:
              .indirect_symbol        _foo
              .ascii  "\364\364\364\364\364"
      
      _memset$stub:
              .indirect_symbol        _memset
              .ascii  "\364\364\364\364\364"
      
      We not produce a private stub for memset too.
      
      Stubs are not needed with recent linkers, but we still produce them for darwin8.
      
      Thanks to David Fang for confirming that gcc used to do this too.
      
      llvm-svn: 196468
      01d19d02
    • Cameron McInally's avatar
      Add AVX512 patterns for v16i32 broadcast and v2i64 zero extend load. · 30bbb214
      Cameron McInally authored
      Patch by Aleksey Bader.
      
      llvm-svn: 196435
      30bbb214
    • Kevin Enderby's avatar
      Fix a bug in darwin's 32-bit X86 handling of evaluating fixups. · 86496a45
      Kevin Enderby authored
      Where it would use a scattered relocation entry but falls back to a
      normal relocation entry because the FixupOffset is more than 24-bits.
      
      The bug is in the X86MachObjectWriter::RecordScatteredRelocation() where
      it changes reference parameter FixedValue but then returns false to indicate
      it did not create a scattered relocation entry.  The fix is simply to save the
      original value of the parameter FixedValue at the start of the method and
      restore it if we are returning false in that case.
      
      rdar://15526046
      
      llvm-svn: 196432
      86496a45
  10. Dec 04, 2013
  11. Dec 03, 2013
    • Rafael Espindola's avatar
      Fix mingw32 thiscall + sret. · 0a2baf8e
      Rafael Espindola authored
      Unlike msvc, when handling a thiscall + sret gcc will
      * Put the sret in %ecx
      * Put the this pointer is (%esp)
      
      This fixes, for example, calling stringstream::str.
      
      llvm-svn: 196312
      0a2baf8e
    • Michael Liao's avatar
      Enhance the fix of PR17631 · 14b02848
      Michael Liao authored
      - The fix to PR17631 fixes part of the cases where 'vzeroupper' should
        not be issued before 'call' insn. There're other cases where helper
        calls will be inserted not limited to epilog. These helper calls do
        not follow the standard calling convention and won't clobber any YMM
        registers. (So far, all call conventions will clobber any or part of
        YMM registers.)
        This patch enhances the previous fix to cover more cases 'vzerosupper' should
        not be inserted by checking if that function call won't clobber any YMM
        registers and skipping it if so.
      
      llvm-svn: 196261
      14b02848
    • Rafael Espindola's avatar
      Refactor the setting of PrivateGlobalPrefix. · 5113d166
      Rafael Espindola authored
      No functionality change.
      
      llvm-svn: 196170
      5113d166
  12. Dec 02, 2013
  13. Dec 01, 2013
  14. Nov 29, 2013
    • Lang Hames's avatar
      Refactor a lot of patchpoint/stackmap related code to simplify and make it · 39609996
      Lang Hames authored
      target independent.
      
      Most of the x86 specific stackmap/patchpoint handling was necessitated by the
      use of the native address-mode format for frame index operands. PEI has now
      been modified to treat stackmap/patchpoint similarly to DEBUG_INFO, allowing
      us to use a simple, platform independent register/offset pair for frame
      indexes on stackmap/patchpoints.
      
      Notes:
        - Folding is now platform independent and automatically supported.
        - Emiting patchpoints with direct memory references now just involves calling
          the TargetLoweringBase::emitPatchPoint utility method from the target's
          XXXTargetLowering::EmitInstrWithCustomInserter method. (See
          X86TargetLowering for an example).
        - No more ugly platform-specific operand parsers.
      
      This patch shouldn't change the generated output for X86. 
      
      llvm-svn: 195944
      39609996
  15. Nov 28, 2013
Loading