1. Nov 10, 2015
    • Tom Stellard's avatar
      Merging r245907: · e7ed75ff
      Tom Stellard authored
      ------------------------------------------------------------------------
      r245907 | hfinkel | 2015-08-24 19:48:28 -0400 (Mon, 24 Aug 2015) | 6 lines
      
      [PowerPC] PPCVSXFMAMutate should ignore trivial-copy addends
      
      We might end up with a trivial copy as the addend, and if so, we should ignore
      the corresponding FMA instruction. The trivial copy can be coalesced away later,
      so there's nothing to do here. We should not, however, assert. Fixes PR24544.
      
      ------------------------------------------------------------------------
      
      llvm-svn: 252476
      e7ed75ff
  2. Nov 09, 2015
    • Renato Golin's avatar
      Merging r249165: · 9a0061f2
      Renato Golin authored
      ------------------------------------------------------------------------
      r249165 | rdivacky | 2015-10-02 19:25:25 +0100 (Fri, 02 Oct 2015) | 2 lines
      
      Actually switch the arch when we see .arch. PR21695
      
      llvm-svn: 252456
      9a0061f2
  3. Nov 07, 2015
    • Tom Stellard's avatar
      Merging r244221: · c0b78517
      Tom Stellard authored
      ------------------------------------------------------------------------
      r244221 | dougk | 2015-08-06 11:44:12 -0400 (Thu, 06 Aug 2015) | 4 lines
      
      [SPARC] Don't compare arch name as a string, use the enum instead.
      
      Fixes PR22695
      
      ------------------------------------------------------------------------
      
      llvm-svn: 252393
      c0b78517
  4. Nov 06, 2015
    • Tom Stellard's avatar
      Merging r251335: · 832552ac
      Tom Stellard authored
      ------------------------------------------------------------------------
      r251335 | ismail.pazarbasi | 2015-10-26 15:20:24 -0400 (Mon, 26 Oct 2015) | 13 lines
      
      MismatchingNewDeleteDetector uses incorrect field, and finds no initializer
      
      Summary:
      In `MismatchingNewDeleteDetector::analyzeInClassInitializer`, if
      `Field`'s initializer expression is null, lookup the field in
      implicit instantiation, and use found field's the initializer.
      
      Reviewers: rsmith, rtrieu
      
      Subscribers: cfe-commits
      
      Differential Revision: http://reviews.llvm.org/D9898
      
      ------------------------------------------------------------------------
      
      llvm-svn: 252290
      832552ac
    • Tom Stellard's avatar
      Merging r250657: · 45563037
      Tom Stellard authored
      ------------------------------------------------------------------------
      r250657 | dimitry | 2015-10-18 09:32:20 -0400 (Sun, 18 Oct 2015) | 13 lines
      
      Support linking against OpenMP runtime on FreeBSD.
      
      Summary:
      Similar to rL248426 (which was a followup to rL248379 and rL248424), add the
      required libraries for OpenMP on the linker command line, and update the test
      case.
      
      Reviewers: emaste, theraven, joerg
      
      Subscribers: cfe-commits
      
      Differential Revision: http://reviews.llvm.org/D13822
      
      ------------------------------------------------------------------------
      
      llvm-svn: 252289
      45563037
    • Tom Stellard's avatar
      Merging r248426: · 72993ff5
      Tom Stellard authored
      ------------------------------------------------------------------------
      r248426 | joerg | 2015-09-23 16:11:00 -0400 (Wed, 23 Sep 2015) | 2 lines
      
      Support linking against OpenMP runtime on NetBSD.
      
      ------------------------------------------------------------------------
      
      llvm-svn: 252288
      72993ff5
    • Tom Stellard's avatar
      Merging r248424: · 6466d9d4
      Tom Stellard authored
      ------------------------------------------------------------------------
      r248424 | joerg | 2015-09-23 16:07:56 -0400 (Wed, 23 Sep 2015) | 3 lines
      
      Push OpenMP linker flags after linker input on Darwin. Don't add any
      libraries if -nostdlib is specified. Test.
      
      ------------------------------------------------------------------------
      
      llvm-svn: 252287
      6466d9d4
    • Tom Stellard's avatar
      Merging r248379: · 9bded5ef
      Tom Stellard authored
      ------------------------------------------------------------------------
      r248379 | joerg | 2015-09-23 10:06:52 -0400 (Wed, 23 Sep 2015) | 3 lines
      
      Refactor library decision for -fopenmp support from Darwin into a
      function for sharing with other platforms.
      
      ------------------------------------------------------------------------
      
      llvm-svn: 252286
      9bded5ef
  5. Nov 05, 2015
    • Daniel Sanders's avatar
      Merging r251622: · f6329130
      Daniel Sanders authored
      ------------------------------------------------------------------------
      r251622 | vkalintiris | 2015-10-29 10:17:16 +0000 (Thu, 29 Oct 2015) | 17 lines
      
      [mips] Check the register class before replacing materializations of zero with $zero in microMIPS.
      
      Summary:
      The microMIPS register class GPRMM16 does not contain the $zero register.
      However, MipsSEDAGToDAGISel::replaceUsesWithZeroReg() would replace uses
      of the $dst register:
      
        [d]addiu, $dst, $zero, 0
      
      with the $zero register, without checking for membership in the register
      class of the target machine operand.
      
      Reviewers: dsanders
      
      Subscribers: llvm-commits, dsanders
      
      Differential Revision: http://reviews.llvm.org/D13984
      ------------------------------------------------------------------------
      
      llvm-svn: 252158
      f6329130
    • Tom Stellard's avatar
      Merging r245741: · 3819c209
      Tom Stellard authored
      ------------------------------------------------------------------------
      r245741 | hfinkel | 2015-08-21 17:34:24 -0400 (Fri, 21 Aug 2015) | 8 lines
      
      [PowerPC] PPCVSXFMAMutate should not segfault on undef input registers
      
      When PPCVSXFMAMutate would look at the input addend register, it would get its
      input value number. This would fail, however, if the register was undef,
      causing a segfault. Don't segfault (just skip such FMA instructions).
      
      Fixes the test case from PR24542 (although that may have been over-reduced).
      
      ------------------------------------------------------------------------
      
      llvm-svn: 252132
      3819c209
  6. Oct 24, 2015
    • Alexei Starovoitov's avatar
      Merging r249718: · d134ba04
      Alexei Starovoitov authored
      
      ------------------------------------------------------------------------
      r249718 | ast | 2015-10-08 11:52:40 -0700 (Thu, 08 Oct 2015) | 16 lines
      
      [bpf] Do not expand UNDEF SDNode during insn selection lowering
      
        o Before this patch, BPF backend will expand UNDEF node
          to i64 constant 0.
        o For second pass of dag combiner, legalizer will run through
          each to-be-processed dag node.
        o If any new SDNode is generated and has an undef operand,
          dag combiner will put undef node, newly-generated constant-0 node,
          and any node which uses these nodes in the working list.
        o During this process, it is possible undef operand is
          generated again, and this will form an infinite loop
          for dag combiner pass2.
        o This patch allows UNDEF to be a legal type.
      
      Signed-off-by: default avatarYonghong Song <yhs@plumgrid.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@plumgrid.com>
      ------------------------------------------------------------------------
      
      llvm-svn: 251177
      d134ba04
    • Alexei Starovoitov's avatar
      Merging r249371: · 3b02531f
      Alexei Starovoitov authored
      ------------------------------------------------------------------------
      r249371 | ast | 2015-10-05 21:00:53 -0700 (Mon, 05 Oct 2015) | 25 lines
      
      [bpf] Avoid extra pointer arithmetic for stack access
      
      For the program like below
      struct key_t {
        int pid;
        char name[16];
      };
      extern void test1(char *);
      int test() {
        struct key_t key = {};
        test1(key.name);
        return 0;
      }
      For key.name, the llc/bpf may generate the below code:
        R1 = R10  // R10 is the frame pointer
        R1 += -24 // framepointer adjustment
        R1 |= 4   // R1 is then used as the first parameter of test1
      OR operation is not recognized by in-kernel verifier.
      
      This patch introduces an intermediate FI_ri instruction and
      generates the following code that can be properly verified:
        R1 = R10
        R1 += -20
      
      Patch by Yonghong Song <yhs@plumgrid.com>
      ------------------------------------------------------------------------
      
      llvm-svn: 251175
      3b02531f
    • Alexei Starovoitov's avatar
      Merging r247951: · bc860efa
      Alexei Starovoitov authored
      ------------------------------------------------------------------------
      r247951 | ast | 2015-09-17 15:18:08 -0700 (Thu, 17 Sep 2015) | 5 lines
      
      [bpf] expand indirect branches
      
      BPF instruction set doesn't have indirect branches. Expand them.
      
      Reported by John Fastabend.
      ------------------------------------------------------------------------
      
      llvm-svn: 251174
      bc860efa
  7. Sep 14, 2015
    • Daniel Sanders's avatar
      Merging r247128: · f9f09a29
      Daniel Sanders authored
      ------------------------------------------------------------------------
      r247128 | dsanders | 2015-09-09 10:53:20 +0100 (Wed, 09 Sep 2015) | 31 lines
      
      Fix vector splitting for extract_vector_elt and vector elements of <8-bits.
      
      Summary:
      One of the vector splitting paths for extract_vector_elt tries to lower:
          define i1 @via_stack_bug(i8 signext %idx) {
            %1 = extractelement <2 x i1> <i1 false, i1 true>, i8 %idx
            ret i1 %1
          }
      to:
          define i1 @via_stack_bug(i8 signext %idx) {
            %base = alloca <2 x i1>
            store <2 x i1> <i1 false, i1 true>, <2 x i1>* %base
            %2 = getelementptr <2 x i1>, <2 x i1>* %base, i32 %idx
            %3 = load i1, i1* %2
            ret i1 %3
          }
      However, the elements of <2 x i1> are not byte-addressible. The result of this
      is that the getelementptr expands to '%base + %idx * (1 / 8)' which simplifies
      to '%base + %idx * 0', and then simply '%base' causing all values of %idx to
      extract element zero.
      
      This commit fixes this by promoting the vector elements of <8-bits to i8 before
      splitting the vector.
      
      This fixes a number of test failures in pocl.
      
      Reviewers: pekka.jaaskelainen
      
      Subscribers: pekka.jaaskelainen, llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D12591
      ------------------------------------------------------------------------
      
      llvm-svn: 247539
      f9f09a29
    • Daniel Sanders's avatar
      Merging r246990: · 7b9c7b82
      Daniel Sanders authored
      ------------------------------------------------------------------------
      r246990 | dsanders | 2015-09-08 10:07:03 +0100 (Tue, 08 Sep 2015) | 9 lines
      
      [mips] Reserve address spaces 1-255 for software use.
      
      Summary: And define them to have noop casts with address spaces 0-255.
      
      Reviewers: pekka.jaaskelainen
      
      Subscribers: pekka.jaaskelainen, llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D12678
      ------------------------------------------------------------------------
      
      llvm-svn: 247538
      7b9c7b82
  8. Sep 12, 2015
    • Duncan P. N. Exon Smith's avatar
      Merging r247372 to 3.7 for inclusion in 3.7.1 · 08215c1d
      Duncan P. N. Exon Smith authored
      ------------------------------------------------------------------------
      r247372 | dexonsmith | 2015-09-10 18:34:59 -0700 (Thu, 10 Sep 2015) | 15 lines
      
      AsmWriter: Avoid O(N^2) processing of metadata
      
      Fix embarrassing bugs I introduced to the `SlotTracker` in or around
      r235785.  I had us iterating through every instruction in a function
      (and hitting a map in the LLVMContext) for every basic block in the
      function.
      
      While there, completely avoid the call to
      `SlotTracker::processFunctionMetadata()` from
      `SlotTracker::processFunction()` if we've speculatively done this
      already in `SlotTracker::processModule()` by checking
      `ShouldInitializeAllMetadata` (this wasn't an algorithmic problem, but
      it's touching the same line of code).
      
      Fixes PR24699.
      ------------------------------------------------------------------------
      
      llvm-svn: 247440
      08215c1d
  9. Sep 10, 2015
  10. Aug 28, 2015
  11. Aug 27, 2015
  12. Aug 26, 2015
  13. Aug 25, 2015
    • Hans Wennborg's avatar
      Merging r245902: · 9090a649
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r245902 | hans | 2015-08-24 16:34:28 -0700 (Mon, 24 Aug 2015) | 3 lines
      
      Revert r245355 "Release script: correctly symlink clang-tools-extra into the build (PR22765)"
      
      This worked with the CMake build but broke the Autoconf one.
      ------------------------------------------------------------------------
      
      llvm-svn: 245903
      9090a649
    • Richard Trieu's avatar
      Fix typo in release notes, PR24555 · 22173a23
      Richard Trieu authored
      llvm-svn: 245857
      22173a23
  14. Aug 24, 2015
  15. Aug 21, 2015
    • Hans Wennborg's avatar
      Reverting r245456: · dfa1eedb
      Hans Wennborg authored
      ------------------------------------------------------------------------
      
      llvm-svn: 245623
      dfa1eedb
    • Hans Wennborg's avatar
      Merging r245560: · db110b98
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r245560 | ogoffart | 2015-08-20 06:11:14 -0700 (Thu, 20 Aug 2015) | 5 lines
      
      Fix crash with two typos in the arguments of a function
      
      The problem is that the arguments are of TheCall are reset later
      to the ones in Args, making TypoExpr put back. Some TypoExpr that have
      already  been diagnosed and will assert later in Sema::getTypoExprState
      ------------------------------------------------------------------------
      
      llvm-svn: 245615
      db110b98