Skip to content
  1. Dec 20, 2013
    • Alp Toker's avatar
      Fix documentation typos · 171b0c36
      Alp Toker authored
      llvm-svn: 197757
      171b0c36
    • Kevin Enderby's avatar
      Un-revert: the buildbot failure in LLVM on lld-x86_64-win7 had me with · 36eba25f
      Kevin Enderby authored
      this commit as the only one on the Blamelist so I quickly reverted this.
      However it was actually Nick's change who has since fixed that issue.
      
      Original commit message:
      
      Changed the X86 assembler for intel syntax to work with directional labels.
      
      The X86 assembler as a separate code to parser the intel assembly syntax
      in X86AsmParser::ParseIntelOperand().  This did not parse directional labels.
      And if something like 1f was used as a branch target it would get an
      "Unexpected token" error.
      
      The fix starts in X86AsmParser::ParseIntelExpression() in the case for
      AsmToken::Integer, it needs to grab the IntVal from the current token
      then look for a 'b' or 'f' following an Integer.  Then it basically needs to
      do what is done in AsmParser::parsePrimaryExpr() for directional
      labels.  It saves the MCExpr it creates in the IntelExprStateMachine
      in the Sym field.
      
      When it returns to X86AsmParser::ParseIntelOperand() it looks
      for a non-zero Sym field in the IntelExprStateMachine and if
      set it creates a memory operand not an immediate operand
      it would normally do for the Integer.
      
      rdar://14961158
      
      llvm-svn: 197744
      36eba25f
  2. Dec 19, 2013
    • Kevin Enderby's avatar
      Revert my change to the X86 assembler for intel syntax to work with · d6f2a637
      Kevin Enderby authored
      directional labels.  Because it doesn't work for windows :)
      
      llvm-svn: 197731
      d6f2a637
    • Kevin Enderby's avatar
      Changed the X86 assembler for intel syntax to work with directional labels. · 592d3ac2
      Kevin Enderby authored
      The X86 assembler has a separate code to parser the intel assembly syntax
      in X86AsmParser::ParseIntelOperand().  This did not parse directional labels.
      And if something like 1f was used as a branch target it would get an
      "Unexpected token" error.
      
      The fix starts in X86AsmParser::ParseIntelExpression() in the case for
      AsmToken::Integer, it needs to grab the IntVal from the current token
      then look for a 'b' or 'f' following the Integer.  Then it basically needs to
      do what is done in AsmParser::parsePrimaryExpr() for directional
      labels.  It saves the MCExpr it creates in the IntelExprStateMachine
      in the Sym field.
      
      When it returns to X86AsmParser::ParseIntelOperand() it looks
      for a non-zero Sym field in the IntelExprStateMachine and if
      set it creates a memory operand not an immediate operand
      it would normally do for the Integer.
      
      rdar://14961158
      
      llvm-svn: 197728
      592d3ac2
    • Quentin Colombet's avatar
      [X86][fast-isel] Fix select lowering. · 90a646e4
      Quentin Colombet authored
      The condition in selects is supposed to be i1.
      Make sure we are just reading the less significant bit
      of the 8 bits width value to match this constraint.
      
      <rdar://problem/15651765>
      
      llvm-svn: 197712
      90a646e4
    • Josh Magee's avatar
      [stackprotector] Use analysis from the StackProtector pass for stack layout in... · 22b8ba2d
      Josh Magee authored
      [stackprotector] Use analysis from the StackProtector pass for stack layout in PEI a nd LocalStackSlot passes.
      
      This changes the MachineFrameInfo API to use the new SSPLayoutKind information
      produced by the StackProtector pass (instead of a boolean flag) and updates a
      few pass dependencies (to preserve the SSP analysis).
      
      The stack layout follows the same approach used prior to this change - i.e.,
      only LargeArray stack objects will be placed near the canary and everything
      else will be laid out normally.  After this change, structures containing large
      arrays will also be placed near the canary - a case previously missed by the
      old implementation.
      
      Out of tree targets will need to update their usage of
      MachineFrameInfo::CreateStackObject to remove the MayNeedSP argument. 
      
      The next patch will implement the rules for sspstrong and sspreq.  The end goal
      is to support ssp-strong stack layout rules.
      
      WIP.
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2158
      
      llvm-svn: 197653
      22b8ba2d
    • Rafael Espindola's avatar
      Synchronize the NaCl DataLayout strings with the ones in clang. · ddb913cc
      Rafael Espindola authored
      Patch by Derek Schuff.
      
      llvm-svn: 197640
      ddb913cc
  3. Dec 17, 2013
    • Duncan P. N. Exon Smith's avatar
      Assert that the last operand is actually EFLAGS · ab5dbebc
      Duncan P. N. Exon Smith authored
      This is another follow-up to r197503, after a post-commit review by
      Andy.
      
      <rdar://problem/15627766>
      
      llvm-svn: 197520
      ab5dbebc
    • Duncan P. N. Exon Smith's avatar
      Revert "Revert "Mark vastart_save_xmm_regs as changing EFLAGS"" · 512601d7
      Duncan P. N. Exon Smith authored
      This reverts commit r197481, recommiting r197469 with an extra fix.
      
      The vastart_save_xmm_regs pseudo-instruction expands to a test and a
      branch, so it modifies EFLAGS.  Mark it so, or else the scheduler might
      place it in the middle of another test+branch.
      
      This fixes a bug exposed by r192750, which changed the initial scheduler
      to source-order as part of enabling the MI Scheduler for X86.
      
      This re-commit changes the VASTART_SAVE_XMM_REGS custom inserter not to
      try to save %flags, and adds a test that catches the bad behavior of
      r197469.
      
      <rdar://problem/15627766>
      
      llvm-svn: 197503
      512601d7
    • Stepan Dyatkovskiy's avatar
      Fix for PR18045: · 7f7c2710
      Stepan Dyatkovskiy authored
      http://llvm.org/bugs/show_bug.cgi?id=18045
      
      Short issue description:
      For X86 machines with sse < sse4.1 we got failures for some
      particular load/store vector sequences:
      
      $ clang-trunk -m32 -O2 test-case.c
      fatal error: error in backend: Cannot select: 0x4200920: v4i32,ch = load 0x41d6ab0, 0x4205850,
            0x41dcb10<LD16[getelementptr inbounds ([4 x i32]* @e, i32 0, i32 0)](align=4)> [ORD=82]
            [ID=58]
        0x4205850: i32 = X86ISD::Wrapper 0x41d5490 [ORD=26] [ID=43]
          0x41d5490: i32 = TargetGlobalAddress<[4 x i32]* @e> 0 [ORD=26] [ID=23]
        0x41dcb10: i32 = undef [ID=2]
      
      The reason is that EltsFromConsecutiveLoads could emit such load instruction
      both before and after legalize stage. Though this instruction is not legal for
      machines with SSSE3 and lower.
      
      The fix: In EltsFromConsecutiveLoads, if we have passed legalize stage, we
      check whether nodes it emits are legal. 
      
      P.S.: If you get failure in time from 12:00 and till 22:00 (UTC-8),
      perhaps I'll slow with response, so you better reject this commit. Thanks!
      
      llvm-svn: 197492
      7f7c2710
    • Elena Demikhovsky's avatar
      AVX-512: Added implementation of CONCAT_VECTORS for v8i1 vectors (by Alexey Bader). · c5f6726a
      Elena Demikhovsky authored
      Added implementation of "truncate" from integer type (i64/i32/i16/i8) to i1.
      
      llvm-svn: 197482
      c5f6726a
    • Duncan P. N. Exon Smith's avatar
      Revert "Mark vastart_save_xmm_regs as changing EFLAGS" · b2d4274d
      Duncan P. N. Exon Smith authored
      This reverts commit r197469.
      
      The sanitizer and dragonegg buildbots are failing, I think because of
      this change.  Reverting until I figure out why.
      
      llvm-svn: 197481
      b2d4274d
    • Duncan P. N. Exon Smith's avatar
      Mark vastart_save_xmm_regs as changing EFLAGS · a4acde39
      Duncan P. N. Exon Smith authored
      The vastart_save_xmm_regs pseudo-instruction expands to a test and a
      branch, so it modifies EFLAGS.  Mark it so, or else the scheduler might
      place it in the middle of another test+branch.
      
      This fixes a bug exposed by r192750, which turned on the MI Scheduler
      for X86.
      
      <rdar://problem/15627766>
      
      llvm-svn: 197469
      a4acde39
  4. Dec 16, 2013
  5. Dec 14, 2013
  6. Dec 13, 2013
  7. 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
  8. 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
  9. Dec 10, 2013
  10. Dec 09, 2013
  11. Dec 06, 2013
  12. 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
Loading