Skip to content
  1. Apr 29, 2013
  2. Apr 28, 2013
  3. Apr 27, 2013
    • Joerg Sonnenberger's avatar
      GCC doesn't support __has_attribute. · a39fe8c5
      Joerg Sonnenberger authored
      llvm-svn: 180683
      a39fe8c5
    • Dmitri Gribenko's avatar
      ArrayRef'ize Sema::ActOnEnumBody. No functionality change. · e5fde996
      Dmitri Gribenko authored
      Patch by Robert Wilhelm.
      
      llvm-svn: 180682
      e5fde996
    • Joerg Sonnenberger's avatar
      Use static_cast. · 85ad6c99
      Joerg Sonnenberger authored
      llvm-svn: 180680
      85ad6c99
    • Joerg Sonnenberger's avatar
      Use reinterpret_casts directly in place of C-style casts. · 2ed7030c
      Joerg Sonnenberger authored
      llvm-svn: 180679
      2ed7030c
    • Joerg Sonnenberger's avatar
      Only use Clang pragma when compiling with clang. · ff3ce2bd
      Joerg Sonnenberger authored
      llvm-svn: 180678
      ff3ce2bd
    • Ulrich Weigand's avatar
      · e037a492
      Ulrich Weigand authored
      Handle tied sub-operands in AsmMatcherEmitter
      
      The problem this patch addresses is the handling of register tie
      constraints in AsmMatcherEmitter, where one operand is tied to a
      sub-operand of another operand.  The typical scenario for this to
      happen is the tie between the "write-back" register of a pre-inc
      instruction, and the base register sub-operand of the memory address
      operand of that instruction.
      
      The current AsmMatcherEmitter code attempts to handle tied
      operands by emitting the operand as usual first, and emitting
      a CVT_Tied node when handling the second (tied) operand.  However,
      this really only works correctly if the tied operand does not
      have sub-operands (and isn't a sub-operand itself).  Under those
      circumstances, a wrong MC operand list is generated.
      
      In discussions with Jim Grosbach, it turned out that the MC operand
      list really ought not to contain tied operands in the first place;
      instead, it ought to consist of exactly those operands that are
      named in the AsmString.  However, getting there requires significant
      rework of (some) targets.
      
      This patch fixes the immediate problem, and at the same time makes
      one (small) step in the direction of the long-term solution, by
      implementing two changes:
      
      1. Restricts the AsmMatcherEmitter handling of tied operands to
         apply solely to simple operands (not complex operands or
         sub-operand of such).
      
      This means that at least we don't get silently corrupt MC operand
      lists as output.  However, if we do have tied sub-operands, they
      would now no longer be handled at all, except for:
      
      2. If we have an operand that does not occur in the AsmString,
         and also isn't handled as tied operand, simply emit a dummy
         MC operand (constant 0).
      
      This works as long as target code never attempts to access
      MC operands that do no not occur in the AsmString (and are
      not tied simple operands), which happens to be the case for
      all targets where this situation can occur (ARM and PowerPC).
      
      [ Note that this change means that many of the ARM custom
        converters are now superfluous, since the implement the
        same "hack" now performed already by common code. ]
      
      Longer term, we ought to fix targets to never access *any*
      MC operand that does not occur in the AsmString (including
      tied simple operands), and then finally completely remove
      all such operands from the MC operand list.
      
      Patch approved by Jim Grosbach.
      
      llvm-svn: 180677
      e037a492
    • Shuxin Yang's avatar
      Fix a XOR reassociation bug. · 04a4fd43
      Shuxin Yang authored
      When Reassociator optimize "(x | C1)" ^ "(X & C2)", it may swap the two
      subexpressions, however, it forgot to swap cached constants (of C1 and C2)
      accordingly.
      
      rdar://13739160
      
      llvm-svn: 180676
      04a4fd43
    • Dmitri Gribenko's avatar
      Documentation: end option description with a period · 7d8b607f
      Dmitri Gribenko authored
      Patch by Dimitry Andric.
      
      llvm-svn: 180675
      7d8b607f
    • Dmitri Gribenko's avatar
      Documentation: Change UTF-8 ellipsis character to ASCII ... sequence · b8f9f3ef
      Dmitri Gribenko authored
      Patch by Dimitry Andric
      
      llvm-svn: 180674
      b8f9f3ef
    • Benjamin Kramer's avatar
      Silence a silly sign compare warning from GCC. · 34463cf4
      Benjamin Kramer authored
      llvm-svn: 180673
      34463cf4
    • Dmitri Gribenko's avatar
      Documentation: add an idea for a cpp14-migrate transform for N3421 · d3c5a51e
      Dmitri Gribenko authored
      llvm-svn: 180672
      d3c5a51e
    • Tim Northover's avatar
      AArch64: convert MC-layer test to .s file · 72e12260
      Tim Northover authored
      The CodeGen aspects of this test are already covered by cfi-frame.ll;
      making it an assembly file reduces the risk of incidental changes
      affecting the test.
      
      llvm-svn: 180671
      72e12260
    • Benjamin Kramer's avatar
      Exit early when $PWD isn't set. Remove unused unistd.h include. · 85f5aa1e
      Benjamin Kramer authored
      llvm-svn: 180670
      85f5aa1e
    • Benjamin Kramer's avatar
      Use LLVM's preferred current_path API instead of calling getcwd(3) directly. · 698d7c86
      Benjamin Kramer authored
      The existing code also failed to allocate a buffer for it so getcwd corrupted
      the stack. sys::fs::current_path takes care of the memory management.
      
      llvm-svn: 180669
      698d7c86
    • Michael Gottesman's avatar
      [objc-arc] Test cleanups. · b33b6cb8
      Michael Gottesman authored
      Mainly adding paranoid checks for the closing brace of a function to
      help with FileCheck error readability. Also some other minor changes.
      
      No actual CHECK changes.
      
      llvm-svn: 180668
      b33b6cb8
    • Andrew Trick's avatar
      Generalize the MachineTraceMetrics public API. · 85058af6
      Andrew Trick authored
      Naturally, we should be able to pass in extra instructions, not just
      extra blocks.
      
      llvm-svn: 180667
      85058af6
    • Andrew Trick's avatar
      Add target flags to MachineMemOperands. · bcda4313
      Andrew Trick authored
      This seems to me an obvious place to allow target passes to annotate
      memory operations. There are plenty of bits, and I'm not aware of
      another good way for early target passes to propagate hints along to
      later passes. Target independent transforms can simply preserve them,
      the way they preserve the other flags. Like MachineMemOperands in
      general, if the target flags are lost we must still generate correct
      code.
      
      This has lots of uses, but I want this flexibility now to make it
      easier to work with the new MachineTraceMetrics
      analysis. MachineTraceMetrics can gather a lot of information about
      instructions based on the surrounding code. This information can be
      used to influence postRA machine passes that don't work on SSA form.
      
      llvm-svn: 180666
      bcda4313
    • Andrew Trick's avatar
      whitespace · 94c08a7b
      Andrew Trick authored
      llvm-svn: 180665
      94c08a7b
    • Sean Callanan's avatar
      Performance optimizations to ClangUserExpression, · df56540a
      Sean Callanan authored
      mostly related to management of the stack frame
      for the interpreter.
      
        - First, if the expression can be interpreted,
          allocate the stack frame in the target process
          (to make sure pointers are valid) but only
          read/write to the copy in the host's memory.
      
        - Second, keep the memory allocations for the
          stack frame and the materialized struct as
          member variables of ClangUserExpression.  This
          avoids memory allocations and deallocations
          each time the expression runs.
      
      <rdar://problem/13043685>
      
      llvm-svn: 180664
      df56540a
    • Sean Callanan's avatar
      Fixed a crash when we tried dyn_cast<>ing a · 956dca92
      Sean Callanan authored
      null pointer.
      
      <rdar://problem/13745684>
      
      llvm-svn: 180663
      956dca92
    • Sean Callanan's avatar
      Fixed the anonymous testcase. It was testing · a30b5b7a
      Sean Callanan authored
      access to 'z' where 'z' was not in scope.
      
      llvm-svn: 180662
      a30b5b7a
Loading