Skip to content
  1. Dec 12, 2012
    • John McCall's avatar
      Rewrite calls to bitcast unprototyped functions when emitting a definition. · 49954ca0
      John McCall authored
      My variadics patch, r169588, changed these calls to typically be
      bitcasts rather than calls to a supposedly variadic function.
      This totally subverted a hack where we intentionally dropped
      excess arguments from such calls in order to appease the inliner
      and a "warning" from the optimizer.  This patch extends the hack
      to also work with bitcasts, as well as teaching it to rewrite
      invokes.
      
      llvm-svn: 170034
      49954ca0
  2. Dec 10, 2012
  3. Dec 07, 2012
    • John McCall's avatar
      Fix the required args count for variadic blocks. · c818bbb8
      John McCall authored
      We were emitting calls to blocks as if all arguments were
      required --- i.e. with signature (A,B,C,D,...) rather than
      (A,B,...).  This patch fixes that and accounts for the
      implicit block-context argument as a required argument.
      In addition, this patch changes the function type under which
      we call unprototyped functions on platforms like x86-64 that
      guarantee compatibility of variadic functions with unprototyped
      function types;  previously we would always call such functions
      under the LLVM type T (...)*, but now we will call them under
      the type T (A,B,C,D,...)*.  This last change should have no
      material effect except for making the type conventions more
      explicit;  it was a side-effect of the most convenient implementation.
      
      llvm-svn: 169588
      c818bbb8
  4. Dec 06, 2012
    • NAKAMURA Takumi's avatar
      clang/test/CodeGen/2008-01-07-UnusualIntSize.c: Add triple x86_64. It doesn't... · dbe7d7e9
      NAKAMURA Takumi authored
      clang/test/CodeGen/2008-01-07-UnusualIntSize.c: Add triple x86_64. It doesn't assume 32-bit target, for now.
      
      llvm-svn: 169492
      dbe7d7e9
    • Chandler Carruth's avatar
      Rework the bitfield access IR generation to address PR13619 and · ff0e3a1e
      Chandler Carruth authored
      generally support the C++11 memory model requirements for bitfield
      accesses by relying more heavily on LLVM's memory model.
      
      The primary change this introduces is to move from a manually aligned
      and strided access pattern across the bits of the bitfield to a much
      simpler lump access of all bits in the bitfield followed by math to
      extract the bits relevant for the particular field.
      
      This simplifies the code significantly, but relies on LLVM to
      intelligently lowering these integers.
      
      I have tested LLVM's lowering both synthetically and in benchmarks. The
      lowering appears to be functional, and there are no really significant
      performance regressions. Different code patterns accessing bitfields
      will vary in how this impacts them. The only real regressions I'm seeing
      are a few patterns where the LLVM code generation for loads that feed
      directly into a mask operation don't take advantage of the x86 ability
      to do a smaller load and a cheap zero-extension. This doesn't regress
      any benchmark in the nightly test suite on my box past the noise
      threshold, but my box is quite noisy. I'll be watching the LNT numbers,
      and will look into further improvements to the LLVM lowering as needed.
      
      llvm-svn: 169489
      ff0e3a1e
  5. Dec 05, 2012
  6. Dec 04, 2012
  7. Dec 02, 2012
  8. Dec 01, 2012
  9. Nov 30, 2012
  10. Nov 28, 2012
  11. Nov 27, 2012
    • Will Dietz's avatar
      Add -fsanitize=integer for reporting suspicious integer behaviors. · 1897cb3b
      Will Dietz authored
      Introduces new sanitizer "unsigned-integer-overflow".
      
      llvm-svn: 168701
      1897cb3b
    • Bill Schmidt's avatar
      This patch addresses an incompatibility relative to the 64-bit PowerPC · 90b22c9d
      Bill Schmidt authored
      ELF ABI.
      
      Complex values are to be passed in registers as though the real and
      imaginary parts were passed as separate parameters.  Prior to this
      patch, complex values were passed as byval aggregates.  It turns out
      that specifying getDirect() for all complex types when classifying the
      argument type results in the desired behavior.
      
      The new Clang test case verifies that the correct LLVM IR is generated
      for caller and callee for each of the underlying types for _Complex.
      
      llvm-svn: 168673
      90b22c9d
  12. Nov 26, 2012
  13. Nov 23, 2012
  14. Nov 17, 2012
  15. Nov 16, 2012
  16. Nov 14, 2012
  17. Nov 13, 2012
  18. Nov 12, 2012
  19. Nov 10, 2012
    • Michael Liao's avatar
      Add clang support of RTM from TSX · 625a875f
      Michael Liao authored
      - New options '-mrtm'/'-mno-rtm' are added to enable/disable RTM feature
      - Builtin macro '__RTM__' is defined if RTM feature is enabled
      - RTM intrinsic header is added and introduces 3 new intrinsics, namely
        '_xbegin', '_xend', and '_xabort'.
      - 3 new builtins are added to keep compatible with gcc, namely
        '__builtin_ia32_xbegin', '__builtin_ia32_xend', and '__builtin_ia32_xabort'.
      - Test cases for pre-defined macro and new intrinsic codegen are added.
      
      llvm-svn: 167665
      625a875f
    • Meador Inge's avatar
      Add a few more test cases for verifying -fno-builtin. · 2461d8a6
      Meador Inge authored
      Some holes in testing where discovered while working on the LLVM library
      call simplifiers.
      
      llvm-svn: 167661
      2461d8a6
    • Justin Holewinski's avatar
      [NVPTX] Add __nvvm_* intrinsics as Clang builtins · c0cad046
      Justin Holewinski authored
      Fixes bug 13354.
      
      llvm-svn: 167647
      c0cad046
  20. Nov 08, 2012
Loading