Skip to content
  1. May 16, 2013
  2. May 15, 2013
    • Howard Hinnant's avatar
      Remove cv qualifiers from member pointers in the __member_pointer_traits test.... · 0125ab80
      Howard Hinnant authored
      Remove cv qualifiers from member pointers in the __member_pointer_traits test.  This was causing a const-qualified bind result to malfunction.  This was a recent regression due to the new use of __member_pointer_traits in restricting the __invokable and __invoke_of tests.
      
      llvm-svn: 181935
      0125ab80
    • Bill Wendling's avatar
      Use proper syntax. · 598123ed
      Bill Wendling authored
      llvm-svn: 181930
      598123ed
    • Hal Finkel's avatar
      Implement PPC counter loops as a late IR-level pass · 25c1992b
      Hal Finkel authored
      The old PPCCTRLoops pass, like the Hexagon pass version from which it was
      derived, could only handle some simple loops in canonical form. We cannot
      directly adapt the new Hexagon hardware loops pass, however, because the
      Hexagon pass contains a fundamental assumption that non-constant-trip-count
      loops will contain a guard, and this is not always true (the result being that
      incorrect negative counts can be generated). With this commit, we replace the
      pass with a late IR-level pass which makes use of SE to calculate the
      backedge-taken counts and safely generate the loop-count expressions (including
      any necessary max() parts). This IR level pass inserts custom intrinsics that
      are lowered into the desired decrement-and-branch instructions.
      
      The most fragile part of this new implementation is that interfering uses of
      the counter register must be detected on the IR level (and, on PPC, this also
      includes any indirect branches in addition to function calls). Also, to make
      all of this work, we need a variant of the mtctr instruction that is marked
      as having side effects. Without this, machine-code level CSE, DCE, etc.
      illegally transform the resulting code. Hopefully, this can be improved
      in the future.
      
      This new pass is smaller than the original (and much smaller than the new
      Hexagon hardware loops pass), and can handle many additional cases correctly.
      In addition, the preheader-creation code has been copied from LoopSimplify, and
      after we decide on where it belongs, this code will be refactored so that it
      can be explicitly shared (making this implementation even smaller).
      
      The new test-case files ctrloop-{le,lt,ne}.ll have been adapted from tests for
      the new Hexagon pass. There are a few classes of loops that this pass does not
      transform (noted by FIXMEs in the files), but these deficiencies can be
      addressed within the SE infrastructure (thus helping many other passes as well).
      
      llvm-svn: 181927
      25c1992b
    • Hal Finkel's avatar
      Fix legalization of SETCC with promoted integer intrinsics · 1f6a7f53
      Hal Finkel authored
      If the input operands to SETCC are promoted, we need to make sure that we
      either use the promoted form of both operands (or neither); a mixture is not
      allowed. This can happen, for example, if a target has a custom promoted
      i1-returning intrinsic (where i1 is not a legal type). In this case, we need to
      use the promoted form of both operands.
      
      This change only augments the behavior of the existing logic in the case where
      the input types (which may or may not have already been legalized) disagree,
      and should not affect existing target code because this case would otherwise
      cause an assert in the SETCC operand promotion code.
      
      This will be covered by (essentially all of the) tests for the new PPCCTRLoops
      infrastructure.
      
      llvm-svn: 181926
      1f6a7f53
    • Bill Wendling's avatar
      Add lldb and polly to the projects to tag. · c6e238c6
      Bill Wendling authored
      llvm-svn: 181925
      c6e238c6
    • Bill Wendling's avatar
      Try to improve performance by using a read/write buffer instead of I/O. · c0540866
      Bill Wendling authored
      The calls to fwrite/fread can be very expensive. GCC avoids this by using a
      buffer to read and write from the file, thus limiting the number of fwrite/fread
      calls.
      
      <rdar://problem/13466086>
      
      llvm-svn: 181924
      c0540866
    • Derek Schuff's avatar
      Fix miscompile due to StackColoring incorrectly merging stack slots (PR15707) · d2c42d76
      Derek Schuff authored
      IR optimisation passes can result in a basic block that contains:
      
        llvm.lifetime.start(%buf)
        ...
        llvm.lifetime.end(%buf)
        ...
        llvm.lifetime.start(%buf)
      
      Before this change, calculateLiveIntervals() was ignoring the second
      lifetime.start() and was regarding %buf as being dead from the
      lifetime.end() through to the end of the basic block.  This can cause
      StackColoring to incorrectly merge %buf with another stack slot.
      
      Fix by removing the incorrect Starts[pos].isValid() and
      Finishes[pos].isValid() checks.
      
      Just doing:
            Starts[pos] = Indexes->getMBBStartIdx(MBB);
            Finishes[pos] = Indexes->getMBBEndIdx(MBB);
      unconditionally would be enough to fix the bug, but it causes some
      test failures due to stack slots not being merged when they were
      before.  So, in order to keep the existing tests passing, treat LiveIn
      and LiveOut separately rather than approximating the live ranges by
      merging LiveIn and LiveOut.
      
      This fixes PR15707.
      Patch by Mark Seaborn.
      
      llvm-svn: 181922
      d2c42d76
    • Ashok Thirumurthi's avatar
      Fixed an xpass due to r181841 on Linux with gcc. Note that the clang variant... · 863bd4a5
      Ashok Thirumurthi authored
      Fixed an xpass due to r181841 on Linux with gcc.  Note that the clang variant contains to xfail, and r181841 is a fix for the test.
      
      llvm-svn: 181918
      863bd4a5
    • Greg Clayton's avatar
      <rdar://problem/13128331> · 9aae0a13
      Greg Clayton authored
      Fixed "target symbols add" to correctly extract all module specifications from a dSYM file that is supplied and match the symbol file to a current target module using the UUID values if they are available.
      
      This fixes the case where you add a dSYM file (like "foo.dSYM") which is for a renamed executable (like "bar"). In our case it was "mach_kernel.dSYM" which didn't match "mach_kernel.sys". 
      
      llvm-svn: 181916
      9aae0a13
    • Samuel Benzaquen's avatar
      Test commit · a76d8cd0
      Samuel Benzaquen authored
      llvm-svn: 181915
      a76d8cd0
    • Fariborz Jahanian's avatar
      Objective-C: patch to issue the conversion · 2cb4a957
      Fariborz Jahanian authored
      warning when property-dot syntax is used
      with -Wsign-conversion. // rdar://13855394
      
      llvm-svn: 181914
      2cb4a957
    • Daniel Malea's avatar
      Clean up linux test decorators and add links to known bugs · e8bdd1f5
      Daniel Malea authored
      - s/skipOnLinux/skipIfLinux/ to match style of every other decorator
      - linkify bugizilla/PR numbers in comments
      
      No intended change in functionality.
      
      llvm-svn: 181913
      e8bdd1f5
    • Jim Ingham's avatar
      Fixed a few obvious errors pointed out by the static analyzer. · 5c42d8a8
      Jim Ingham authored
      llvm-svn: 181911
      5c42d8a8
    • Rafael Espindola's avatar
      Cleanup relocation sorting for ELF. · 0f2a6fe6
      Rafael Espindola authored
      We want the order to be deterministic on all platforms. NAKAMURA Takumi
      fixed that in r181864. This patch is just two small cleanups:
      
      * Move the function to the cpp file. It is only passed to array_pod_sort.
      * Remove the ppc implementation which is now redundant
      
      llvm-svn: 181910
      0f2a6fe6
    • Jordan Rose's avatar
      [analyzer] Put back DefaultBool's implicit conversion to bool. · 51918841
      Jordan Rose authored
      DefaultBool is basically just "bool with a default constructor", so it
      really should implicitly convert to bool. In fact, it should convert to
      bool&, so that it could be passed to functions that take bools by reference.
      
      This time, mark the operator bool& as implicit to promise that it's
      deliberate.
      
      llvm-svn: 181908
      51918841
    • NAKAMURA Takumi's avatar
      PPCISelLowering.h: Escape \@ in comments. [-Wdocumentation] · dc9f013a
      NAKAMURA Takumi authored
      llvm-svn: 181907
      dc9f013a
    • NAKAMURA Takumi's avatar
      Whitespace. · dcc66456
      NAKAMURA Takumi authored
      llvm-svn: 181906
      dcc66456
    • Daniel Malea's avatar
      Re-enable tests disabled due to llvm.org/pr14541 · 243b379a
      Daniel Malea authored
      - "platform process list" command works on Linux now
      - "process attach -n" (attach to process by name also works on Linux now)
      
      llvm-svn: 181905
      243b379a
    • Daniel Malea's avatar
      Implement "platform process list" on Linux · 25d7eb0d
      Daniel Malea authored
      - read process information from /proc
      - resolves llvm.org/pr14541 :)
      
      Patch by Mike Sartain!
      
      llvm-svn: 181904
      25d7eb0d
    • Daniel Malea's avatar
      Revert r181833: lldb prompt issue still occurs on buildbot... · 5cb6ea08
      Daniel Malea authored
      Revert r181833: lldb prompt issue still occurs on buildbot (http://lab.llvm.org:8011/builders/lldb-x86_64-linux/builds/4124)
      - maybe consider checking in the 'good' version of libedit to avoid ancient system version
      
      llvm-svn: 181903
      5cb6ea08
    • Daniel Malea's avatar
      Disable test case that causes assertion failure on Linux · 0a693d9d
      Daniel Malea authored
      - filed llvm.org/pr16016
      - fixed URL for llvm.org/pr16000
      
      llvm-svn: 181902
      0a693d9d
    • Michael Gottesman's avatar
      [objc-arc] Fixed a spelling error and made the statistic descriptions be... · b4e7f4d8
      Michael Gottesman authored
      [objc-arc] Fixed a spelling error and made the statistic descriptions be consistent about their usage of periods.
      
      llvm-svn: 181901
      b4e7f4d8
    • Douglas Gregor's avatar
      Add missing #include · 5a4cba0b
      Douglas Gregor authored
      llvm-svn: 181900
      5a4cba0b
    • Daniel Malea's avatar
      Fix cmake builds from checkouts with multiple remotes · e3a0a6ec
      Daniel Malea authored
      - newlines from GetRepositoryPath output were interfering with ninja builds
      - replace newlines with spaces
      - remove *only* trailing spaces from repo path
      
      llvm-svn: 181899
      e3a0a6ec
    • Derek Schuff's avatar
      Support unaligned load/store on more ARM targets · 72ddaba7
      Derek Schuff authored
      This patch matches GCC behavior: the code used to only allow unaligned
      load/store on ARM for v6+ Darwin, it will now allow unaligned load/store for
      v6+ Darwin as well as for v7+ on other targets.
      
      The distinction is made because v6 doesn't guarantee support (but LLVM assumes
      that Apple controls hardware+kernel and therefore have conformant v6 CPUs),
      whereas v7 does provide this guarantee (and Linux behaves sanely).
      
      Overall this should slightly improve performance in most cases because of
      reduced I$ pressure.
      
      Patch by JF Bastien
      
      llvm-svn: 181897
      72ddaba7
    • Fariborz Jahanian's avatar
      improve of note message and minor refactoring of my last · 478536b1
      Fariborz Jahanian authored
      patch (r181847).
      
      llvm-svn: 181896
      478536b1
    • Ulrich Weigand's avatar
      · 06840768
      Ulrich Weigand authored
      Remove MCELFObjectTargetWriter::adjustFixupOffset hack
      
      Now that PowerPC no longer uses adjustFixupOffset, and no other
      back-end (ever?) did, we can remove the infrastructure itself
      (incidentally addressing a FIXME to that effect).
      
      llvm-svn: 181895
      06840768
    • Ulrich Weigand's avatar
      · 2fb140ef
      Ulrich Weigand authored
      [PowerPC] Remove need for adjustFixupOffst hack
      
      Now that applyFixup understands differently-sized fixups, we can define
      fixup_ppc_lo16/fixup_ppc_lo16_ds/fixup_ppc_ha16 to properly be 2-byte
      fixups, applied at an offset of 2 relative to the start of the 
      instruction text.
      
      This has the benefit that if we actually need to generate a real
      relocation record, its address will come out correctly automatically,
      without having to fiddle with the offset in adjustFixupOffset.
      
      Tested on both 64-bit and 32-bit PowerPC, using external and
      integrated assembler.
      
      llvm-svn: 181894
      2fb140ef
    • Richard Sandiford's avatar
      [SystemZ] Make use of SUBTRACT HALFWORD · ffd14417
      Richard Sandiford authored
      Thanks to Ulrich Weigand for noticing that this instruction was missing.
      
      llvm-svn: 181893
      ffd14417
    • Ulrich Weigand's avatar
      · e7050ad0
      Ulrich Weigand authored
      [PowerPC] Add test case for r181891
      
      llvm-svn: 181892
      e7050ad0
    • Ulrich Weigand's avatar
      · 56f5b28d
      Ulrich Weigand authored
      [PowerPC] Correctly handle fixups of other than 4 byte size
      
      The PPCAsmBackend::applyFixup routine handles the case where a
      fixup can be resolved within the same object file.  However,
      this routine is currently hard-coded to assume the size of
      any fixup is always exactly 4 bytes.
      
      This is sort-of correct for fixups on instruction text; even
      though it only works because several of what really would be
      2-byte fixups are presented as 4-byte fixups instead (requiring
      another hack in PPCELFObjectWriter::adjustFixupOffset to clean
      it up).
      
      However, this assumption breaks down completely for fixups
      on data, which legitimately can be of any size (1, 2, 4, or 8).
      
      This patch makes applyFixup aware of fixups of varying sizes,
      introducing a new helper routine getFixupKindNumBytes (along
      the lines of what the ARM back end does).  Note that in order
      to handle fixups of size 8, we also need to fix the return type
      of adjustFixupValue to uint64_t to avoid truncation.
      
      Tested on both 64-bit and 32-bit PowerPC, using external and
      integrated assembler.
      
      llvm-svn: 181891
      56f5b28d
    • Kostya Serebryany's avatar
      [asan] disable BuiltinLongJmpTest on PowerPC · 2b824f35
      Kostya Serebryany authored
      llvm-svn: 181890
      2b824f35
    • Daniel Jasper's avatar
      Fix test breakage caused by change in clang-format. · 9dc096c8
      Daniel Jasper authored
      llvm-svn: 181888
      9dc096c8
    • Daniel Jasper's avatar
      Don't put short namespace on a single line. · abca58c9
      Daniel Jasper authored
      Before:
      namespace abc { class SomeClass; }
      namespace def { void someFunction() {} }
      
      After:
      namespace abc {
      class Def;
      }
      namespace def {
      void someFunction() {}
      }
      
      Rationale:
      a) Having anything other than forward declaration on the same line
         as a namespace looks confusing.
      b) Formatting namespace-forward-declaration-combinations different
         from other stuff is inconsistent.
      c) Wasting vertical space close to such forward declarations really
         does not affect readability.
      
      llvm-svn: 181887
      abca58c9
    • Arnaud A. de Grandmaison's avatar
      Add Jade to the list of external projects using LLVM in the release notes. · ca08b076
      Arnaud A. de Grandmaison authored
      Patch by: Antoine Lorence <Antoine.Lorence@insa-rennes.fr>
      
      llvm-svn: 181886
      ca08b076
Loading