Skip to content
  1. Dec 28, 2013
    • Chandler Carruth's avatar
      Disable transforms that introduce calls to exp10*() on Linux due to · f5689f83
      Chandler Carruth authored
      widespread glibc bugs.
      
      The glibc implementation of exp10 has a very serious precision bug in
      version 2.15 (and older versions). This is still very widely used (the
      current Ubuntu LTS for example uses it) and so it isn't reasonable to
      make transforms that produce these functions. This fixes many
      miscompiles introduced when we started transforming pow(10.0, ...) into
      exp10, and it may have fixed other latent miscompiles where exp10
      provided sufficient precision but exp10f did not.
      
      This is all really horrible. The primary bug has been fixed for over
      a year and glibc 2.18 works correctly for the test cases I have, but it
      will be 2017 before the LTS using 2.15 is no longer supported by Ubuntu
      (and thus reasonable for folks to be relying on). =[ We're either going
      to need to live without these optimizations, or find a way to switch
      behavior more dynamically than using simply the fact that the OS is
      "Linux".
      
      To make matters worse, there appears to be significant testing and
      fixing of numerous other bugs in the exp10 family of functions right now
      in glibc. While those haven't been causing problems I've seen in the
      wild, it gives me concerns that we may need to wait until an even later
      release of glibc before we can reliably transform code into exp10.
      
      llvm-svn: 198093
      f5689f83
  2. Dec 26, 2013
  3. Dec 25, 2013
  4. Dec 24, 2013
  5. Dec 23, 2013
  6. Dec 22, 2013
  7. Dec 20, 2013
    • Lang Hames's avatar
      ARM AnalyzeBranch should ignore DEBUG_VALUES while analyzing terminators. · 18c98a58
      Lang Hames authored
      Found by inspection by Julien Lerouge. Thanks Julian!
      
      llvm-svn: 197833
      18c98a58
    • Timur Iskhodzhanov's avatar
      c1fb2d61
    • Roman Divacky's avatar
      Implement initial-exec TLS for PPC32. · 32143e2b
      Roman Divacky authored
      llvm-svn: 197824
      32143e2b
    • Zoran Jovanovic's avatar
      Support for microMIPS FPU instructions 1. · ce02486d
      Zoran Jovanovic authored
      llvm-svn: 197815
      ce02486d
    • Richard Sandiford's avatar
      [SystemZ] Optimize comparisons with truncated extended loads · 83a0b6ab
      Richard Sandiford authored
      If the extension of a loaded value is compared against zero and used in
      other arithmetic, InstCombine will change the comparison to use the
      unextended load.  It's also possible that the comparison could be against
      the unextended load from the outset.
      
      In DAG form this becomes a truncation of an extending load.  We want to
      strip the truncation if possible so that we can use load-and-test instructions.
      
      llvm-svn: 197804
      83a0b6ab
    • Richard Sandiford's avatar
      [SystemZ] Extend RISBG optimization · 220ee49b
      Richard Sandiford authored
      The handling of ANY_EXTEND and ZERO_EXTEND was too strict.  In this context
      we can treat ZERO_EXTEND in much the same way as an AND and then also handle
      outermost ZERO_EXTENDs.
      
      I couldn't find a test that benefited from the ANY_EXTEND change, but it's
      more obvious to write it this way once SIGN_EXTEND and ZERO_EXTEND are
      handled differently.
      
      llvm-svn: 197802
      220ee49b
    • Saleem Abdulrasool's avatar
      ARM IAS: add support for the .pool directive · 6e6c239e
      Saleem Abdulrasool authored
      The .pool directive is an alias for the .ltorg directive used to create a
      literal pool.  Simply treat .pool as if .ltorg was passed.
      
      llvm-svn: 197787
      6e6c239e
    • Tom Stellard's avatar
      R600: Allow ftrunc · eddfa694
      Tom Stellard authored
      
      
      v2: Add ftrunc->TRUNC pattern instead of replacing int_AMDGPU_trunc
      v3: move ftrunc pattern next to TRUNC definition, it's available since R600
      
      Patch By: Jan Vesely
      
      Reviewed-by: default avatarTom Stellard <thomas.stellard@amd.com>
      Signed-off-by: default avatarJan Vesely <jan.vesely@rutgers.edu>
      llvm-svn: 197783
      eddfa694
    • 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
  8. Dec 19, 2013
    • David Peixotto's avatar
      Ensure deterministic when printing ARM assembler constant pools · 52303f6e
      David Peixotto authored
      We dump any non-empty assembler constant pools after a successful
      parse of an assembly file that uses the ldr pseudo opcode. These
      per-section constant pools should be output in a deterministic order
      to ensure that we always generate the same output when printing the
      output with an AsmStreamer.
      
      This patch changes the map data struture used to associate a section
      with its constant pool to a MapVector to ensure deterministic
      output. Because this map type does not support deletion, we now
      check that the constant pool is not empty before dumping its entries
      and clear the entries after emitting them with the streamer.
      
      llvm-svn: 197735
      52303f6e
    • 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
Loading