Skip to content
  1. Jan 01, 2014
  2. Dec 31, 2013
  3. Dec 30, 2013
  4. Dec 29, 2013
  5. Dec 28, 2013
    • Craig Topper's avatar
      bf096926
    • Craig Topper's avatar
      Minor indentation fix to match other switch statements. Change... · e829fe42
      Craig Topper authored
      Minor indentation fix to match other switch statements. Change llvm_unreachable text to match similar places.
      
      llvm-svn: 198116
      e829fe42
    • Andrea Di Biagio's avatar
      [X86] Teach the backend how to fold target specific dag node for packed · eaceba0e
      Andrea Di Biagio authored
      vector shift by immedate count (VSHLI/VSRLI/VSRAI) into a build_vector when
      the vector in input to the shift is a build_vector of all constants or UNDEFs.
      
      Target specific nodes for packed shifts by immediate count are in
      general introduced by function 'getTargetVShiftByConstNode' (in
      X86ISelLowering.cpp) when lowering shift operations, SSE/AVX immediate
      shift intrinsics and (only in very few cases) SIGN_EXTEND_INREG dag
      nodes.
      
      This patch adds extra rules for simplifying vector shifts inside
      function 'getTargetVShiftByConstNode'.
      
      Added file test/CodeGen/X86/vec_shift5.ll to verify that packed
      shifts by immediate are correctly folded into a build_vector when the
      input vector to the shift dag node is a vector of constants or undefs.
      
      llvm-svn: 198113
      eaceba0e
  6. Dec 25, 2013
  7. Dec 24, 2013
  8. Dec 22, 2013
  9. Dec 20, 2013
    • Timur Iskhodzhanov's avatar
      c1fb2d61
    • Eric Christopher's avatar
      [x86] Rename In32BitMode predicate to Not64BitMode · c0a5aaea
      Eric Christopher authored
      That's what it actually means, and with 16-bit support it's going to be
      a little more relevant since in a few corner cases we may actually want
      to distinguish between 16-bit and 32-bit mode (for example the bare 'push'
      aliases to pushw/pushl etc.)
      
      Patch by David Woodhouse
      
      llvm-svn: 197768
      c0a5aaea
    • 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
  10. 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
  11. 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
  12. Dec 16, 2013
  13. Dec 14, 2013
  14. Dec 13, 2013
Loading