]> granicus.if.org Git - llvm/log
llvm
9 years agoMerging r247435: release_37 origin/release_37
Tom Stellard [Sat, 21 Nov 2015 01:08:13 +0000 (01:08 +0000)]
Merging r247435:

------------------------------------------------------------------------
r247435 | david.majnemer | 2015-09-11 13:34:34 -0400 (Fri, 11 Sep 2015) | 8 lines

[X86] Make sure startproc/endproc are paired

We used different conditions to determine if we should emit startproc vs
endproc.  Use the same condition to ensure that they will always be
paired.

This fixes PR24374.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@253742 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r245588:
Tom Stellard [Thu, 19 Nov 2015 15:52:37 +0000 (15:52 +0000)]
Merging r245588:

------------------------------------------------------------------------
r245588 | aprantl | 2015-08-20 14:23:56 -0400 (Thu, 20 Aug 2015) | 11 lines

Fix a debug location handling bug in GVN.
Caught by the famous "DebugLoc describes the currect SubProgram" assertion.

When GVN is removing a nonlocal load it updates the debug location of the
SSA value it replaced the load with with the one of the load. In the
testcase this actually overwrites a valid debug location with an empty one.

In reality GVN has to make an arbitrary choice between two equally valid
debug locations. This patch changes to behavior to only update the
location if the value doesn't already have a debug location.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@253571 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoReleaseNotes: Add note about C API change
Tom Stellard [Tue, 17 Nov 2015 02:19:24 +0000 (02:19 +0000)]
ReleaseNotes: Add note about C API change

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@253282 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoBump version and soname to 3.7.1
Tom Stellard [Mon, 16 Nov 2015 18:18:25 +0000 (18:18 +0000)]
Bump version and soname to 3.7.1

soname is updated to account for ABI change resulting from changing the
function signature of LLVMBuildLandingPad().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@253241 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r248858:
Tom Stellard [Mon, 16 Nov 2015 17:23:34 +0000 (17:23 +0000)]
Merging r248858:

------------------------------------------------------------------------
r248858 | marek.olsak | 2015-09-29 19:37:32 -0400 (Tue, 29 Sep 2015) | 9 lines

AMDGPU/SI: Don't set DATA_FORMAT if ADD_TID_ENABLE is set

to prevent setting a huge stride, because DATA_FORMAT has a different
meaning if ADD_TID_ENABLE is set.

This is a candidate for stable llvm 3.7.

Tested-and-Reviewed-by: Christian König <christian.koenig@amd.com>
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@253236 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r246051:
Tom Stellard [Mon, 16 Nov 2015 17:23:32 +0000 (17:23 +0000)]
Merging r246051:

------------------------------------------------------------------------
r246051 | Matthew.Arsenault | 2015-08-26 14:54:50 -0400 (Wed, 26 Aug 2015) | 6 lines

AMDGPU: Make sure to reserve super registers

I think this could potentially have broken if
one of the super registers were allocated
that contain v254/v255.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@253235 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r244728:
Tom Stellard [Mon, 16 Nov 2015 17:23:30 +0000 (17:23 +0000)]
Merging r244728:

------------------------------------------------------------------------
r244728 | Matthew.Arsenault | 2015-08-12 05:04:44 -0400 (Wed, 12 Aug 2015) | 2 lines

AMDGPU: Fix assert on dbg_value instructions

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@253234 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r244331:
Tom Stellard [Mon, 16 Nov 2015 17:23:28 +0000 (17:23 +0000)]
Merging r244331:

------------------------------------------------------------------------
r244331 | thomas.stellard | 2015-08-07 12:45:30 -0400 (Fri, 07 Aug 2015) | 8 lines

AMDGPU/SI: Add VI checks to vop3 assembler tests

Reviewers: arsenm

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D11811

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@253233 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r244322:
Tom Stellard [Mon, 16 Nov 2015 17:23:26 +0000 (17:23 +0000)]
Merging r244322:

------------------------------------------------------------------------
r244322 | thomas.stellard | 2015-08-07 11:34:30 -0400 (Fri, 07 Aug 2015) | 8 lines

AMDGPU/SI: v_mac_legacy_f32 does not exist on VI

Reviewers: arsenm

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D11810

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@253232 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r243731:
Tom Stellard [Mon, 16 Nov 2015 17:23:25 +0000 (17:23 +0000)]
Merging r243731:

------------------------------------------------------------------------
r243731 | Matthew.Arsenault | 2015-07-31 00:12:04 -0400 (Fri, 31 Jul 2015) | 2 lines

AMDGPU: Fix v16i32 to v16i8 truncstore

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@253231 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r243661:
Tom Stellard [Mon, 16 Nov 2015 17:23:23 +0000 (17:23 +0000)]
Merging r243661:

------------------------------------------------------------------------
r243661 | Matthew.Arsenault | 2015-07-30 13:03:11 -0400 (Thu, 30 Jul 2015) | 6 lines

AMDGPU: Set SubRegIndex size and offset

I'm not sure what reasons the comment here could have
had for not setting these. Without these set, there is
an assertion hit during DWARF emission.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@253230 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r243660:
Tom Stellard [Mon, 16 Nov 2015 17:23:21 +0000 (17:23 +0000)]
Merging r243660:

------------------------------------------------------------------------
r243660 | Matthew.Arsenault | 2015-07-30 13:03:08 -0400 (Thu, 30 Jul 2015) | 9 lines

AMDGPU: Fix unreachable when emitting binary debug info

Copy implementation of applyFixup from AArch64 with AArch64 bits
ripped out.

Tests will be included with a later commit. Several other
problems must be fixed before binary debug info emission
will work.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@253229 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r243462:
Tom Stellard [Mon, 16 Nov 2015 17:23:20 +0000 (17:23 +0000)]
Merging r243462:

------------------------------------------------------------------------
r243462 | Matthew.Arsenault | 2015-07-28 14:47:00 -0400 (Tue, 28 Jul 2015) | 5 lines

AMDGPU: Don't try to use LDS/vector for private if pointer value stored

If the pointer is the store's value operand, this would produce
a broken module. Make sure the use is actually for the pointer operand.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@253228 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r243461:
Tom Stellard [Mon, 16 Nov 2015 17:23:17 +0000 (17:23 +0000)]
Merging r243461:

------------------------------------------------------------------------
r243461 | Matthew.Arsenault | 2015-07-28 14:29:14 -0400 (Tue, 28 Jul 2015) | 5 lines

AMDGPU: Fix crash if called function is a bitcast

getCalledFunction() is null, so this would crash. Replace
crash with an error on unsupported call.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@253227 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r251582:
Tom Stellard [Sat, 14 Nov 2015 02:26:39 +0000 (02:26 +0000)]
Merging r251582:

------------------------------------------------------------------------
r251582 | hfinkel | 2015-10-28 19:43:00 -0400 (Wed, 28 Oct 2015) | 11 lines

[PowerPC] Recurse through constants when looking for TLS globals

We cannot form ctr-based loops around function calls, including calls to
__tls_get_addr used for PIC TLS variables. References to such TLS variables,
however, might be buried within constant expressions, and so we need to search
the entire constant expression to be sure that no references to such TLS
variables exist.

Fixes PR25256, reported by Eric Schweitz. This is a slightly-modified version
of the patch suggested by Eric in the bug report, and a test case I created.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@253120 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r246694:
Tom Stellard [Thu, 12 Nov 2015 20:04:50 +0000 (20:04 +0000)]
Merging r246694:

------------------------------------------------------------------------
r246694 | benny.kra | 2015-09-02 15:52:23 -0400 (Wed, 02 Sep 2015) | 44 lines

[RemoveDuplicatePHINodes] Start over after removing a PHI.

This makes RemoveDuplicatePHINodes more effective and fixes an assertion
failure. Triggering the assertions requires a DenseSet reallocation
so this change only contains a constructive test.

I'll explain the issue with a small example. In the following function
there's a duplicate PHI, %4 and %5 are identical. When this is found
the DenseSet in RemoveDuplicatePHINodes contains %2, %3 and %4.

define void @F() {
  br label %1

; <label>:1                                       ; preds = %1, %0
  %2 = phi i32 [ 42, %0 ], [ %4, %1 ]
  %3 = phi i32 [ 42, %0 ], [ %5, %1 ]
  %4 = phi i32 [ 42, %0 ], [ 23, %1 ]
  %5 = phi i32 [ 42, %0 ], [ 23, %1 ]
  br label %1
}

after RemoveDuplicatePHINodes runs the function looks like this. %3 has
changed and is now identical to %2, but RemoveDuplicatePHINodes never
saw this.

define void @F() {
  br label %1

; <label>:1                                       ; preds = %1, %0
  %2 = phi i32 [ 42, %0 ], [ %4, %1 ]
  %3 = phi i32 [ 42, %0 ], [ %4, %1 ]
  %4 = phi i32 [ 42, %0 ], [ 23, %1 ]
  br label %1
}

If the DenseSet does a reallocation now it will reinsert all
keys and stumble over %3 now having a different hash value than it had
when inserted into the map for the first time. This change clears the
set whenever a PHI is deleted and starts the progress from the
beginning, allowing %3 to be deleted and avoiding inconsistent DenseSet
state. This potentially has a negative performance impact because
it rescans all PHIs, but I don't think that this ever makes a difference
in practice.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252938 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r243956:
Tom Stellard [Thu, 12 Nov 2015 20:04:48 +0000 (20:04 +0000)]
Merging r243956:

------------------------------------------------------------------------
r243956 | hfinkel | 2015-08-04 02:29:12 -0400 (Tue, 04 Aug 2015) | 10 lines

[SDAG] Fix a result chain in ExpandUnalignedLoad

On the code path in ExpandUnalignedLoad which expands an unaligned vector/fp
value in terms of a legal integer load of the same size, the ChainResult needs
to be the chain result of the integer load.

No in-tree test case is currently available.

Patch by Jan Hranac!

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252937 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r245862:
Tom Stellard [Thu, 12 Nov 2015 03:05:51 +0000 (03:05 +0000)]
Merging r245862:

------------------------------------------------------------------------
r245862 | wschmidt | 2015-08-24 15:27:27 -0400 (Mon, 24 Aug 2015) | 8 lines

[PPC64LE] Fix PR24546 - Swap optimization and debug values

This patch fixes PR24546, which demonstrates a segfault during the VSX
swap removal pass.  The problem is that debug value instructions were
not excluded from the list of instructions to be analyzed for webs of
related computation.  I've added the test case from the PR as a crash
test in test/CodeGen/PowerPC.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252850 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r249854:
Tom Stellard [Wed, 11 Nov 2015 21:00:37 +0000 (21:00 +0000)]
Merging r249854:

------------------------------------------------------------------------
r249854 | kfischer | 2015-10-09 13:24:54 -0400 (Fri, 09 Oct 2015) | 11 lines

Clear SectionSymbols in MCContext::Reset

This was just forgotten when SectionSymbols was introduced and could cause
corruption if the MCContext was reused after Reset.

Reviewers: rafael

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D13547

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252802 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r247461:
Tom Stellard [Wed, 11 Nov 2015 18:41:49 +0000 (18:41 +0000)]
Merging r247461:

------------------------------------------------------------------------
r247461 | Yunzhong_Gao | 2015-09-11 16:01:53 -0400 (Fri, 11 Sep 2015) | 4 lines

Add a non-exiting diagnostic handler for LTO.
This is in order to give LTO clients a chance to do some clean-up before
terminating the process.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252774 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r247083:
Tom Stellard [Mon, 9 Nov 2015 21:01:15 +0000 (21:01 +0000)]
Merging r247083:

------------------------------------------------------------------------
r247083 | echristo | 2015-09-08 18:14:58 -0400 (Tue, 08 Sep 2015) | 3 lines

Fix the PPC CTR Loop pass to look for calls to the intrinsics that
read CTR and count them as reading the CTR.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252511 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r245820:
Tom Stellard [Mon, 9 Nov 2015 21:01:12 +0000 (21:01 +0000)]
Merging r245820:

------------------------------------------------------------------------
r245820 | mehdi.amini | 2015-08-23 18:15:49 -0400 (Sun, 23 Aug 2015) | 64 lines

Require Dominator Tree For SROA, improve compile-time

TL-DR: SROA is followed by EarlyCSE which requires the DominatorTree.
There is no reason not to require it up-front for SROA.

Some history is necessary to understand why we ended-up here.

r123437 switched the second (Legacy)SROA in the optimizer pipeline to
use SSAUpdater in order to avoid recomputing the costly
DominanceFrontier. The purpose was to speed-up the compile-time.

Later r123609 removed the need for the DominanceFrontier in
(Legacy)SROA.

Right after, some cleanup was made in r123724 to remove any reference
to the DominanceFrontier. SROA existed in two flavors: SROA_SSAUp and
SROA_DT (the latter replacing SROA_DF).
The second argument of `createScalarReplAggregatesPass` was renamed
from `UseDomFrontier` to `UseDomTree`.
I believe this is were a mistake was made. The pipeline was not
updated and the call site was still:
    PM->add(createScalarReplAggregatesPass(-1, false));

At that time, SROA was immediately followed in the pipeline by
EarlyCSE which required alread the DominatorTree. Not requiring
the DominatorTree in SROA didn't save anything, but unfortunately
it was lost at this point.

When the new SROA Pass was introduced in r163965, I believe the goal
was to have an exact replacement of the existing SROA, this bug
slipped through.

You can see currently:

$ echo "" | clang -x c++  -O3 -c - -mllvm -debug-pass=Structure
...
...
      FunctionPass Manager
        SROA
        Dominator Tree Construction
        Early CSE

After this patch:

$ echo "" | clang -x c++  -O3 -c - -mllvm -debug-pass=Structure
...
...
      FunctionPass Manager
        Dominator Tree Construction
        SROA
        Early CSE

This improves the compile time from 88s to 23s for PR17855.
https://llvm.org/bugs/show_bug.cgi?id=17855

And from 113s to 12s for PR16756
https://llvm.org/bugs/show_bug.cgi?id=16756

Reviewers: chandlerc

Differential Revision: http://reviews.llvm.org/D12267

From: Mehdi Amini <mehdi.amini@apple.com>

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252510 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r250085:
Tom Stellard [Mon, 9 Nov 2015 16:25:17 +0000 (16:25 +0000)]
Merging r250085:

------------------------------------------------------------------------
r250085 | Andrea_DiBiagio | 2015-10-12 15:22:30 -0400 (Mon, 12 Oct 2015) | 60 lines

[x86] Fix wrong lowering of vsetcc nodes (PR25080).

Function LowerVSETCC (in X86ISelLowering.cpp) worked under the wrong
assumption that for non-AVX512 targets, the source type and destination type
of a type-legalized setcc node were always the same type.

This assumption was unfortunately incorrect; the type legalizer is not always
able to promote the return type of a setcc to the same type as the first
operand of a setcc.

In the case of a vsetcc node, the legalizer firstly checks if the first input
operand has a legal type. If so, then it promotes the return type of the vsetcc
to that same type. Otherwise, the return type is promoted to the 'next legal
type', which, for vectors of MVT::i1 is always a 128-bit integer vector type.

Example (-mattr=+avx):

  %0 = trunc <8 x i32> %a to <8 x i23>
  %1 = icmp eq <8 x i23> %0, zeroinitializer

The initial selection dag for the code above is:

v8i1 = setcc t5, t7, seteq:ch
  t5: v8i23 = truncate t2
    t2: v8i32,ch = CopyFromReg t0, Register:v8i32 %vreg1
    t7: v8i32 = build_vector of all zeroes.

The type legalizer would firstly check if 't5' has a legal type. If so, then it
would reuse that same type to promote the return type of the setcc node.
Unfortunately 't5' is of illegal type v8i23, and therefore it cannot be used to
promote the return type of the setcc node. Consequently, the setcc return type
is promoted to v8i16. Later on, 't5' is promoted to v8i32 thus leading to the
following dag node:
  v8i16 = setcc t32, t25, seteq:ch

  where t32 and t25 are now values of type v8i32.

Before this patch, function LowerVSETCC would have wrongly expanded the setcc
to a single X86ISD::PCMPEQ. Surprisingly, ISel was still able to match an
instruction. In our case, ISel would have matched a VPCMPEQWrr:
  t37: v8i16 = X86ISD::VPCMPEQWrr t36, t25

However, t36 and t25 are both VR256, while the result type is instead of class
VR128. This inconsistency ended up causing the insertion of COPY instructions
like this:
  %vreg7<def> = COPY %vreg3; VR128:%vreg7 VR256:%vreg3

Which is an invalid full copy (not a sub register copy).
Eventually, the backend would have hit an UNREACHABLE "Cannot emit physreg copy
instruction" in the attempt to expand the malformed pseudo COPY instructions.

This patch fixes the problem adding the missing logic in LowerVSETCC to handle
the corner case of a setcc with 128-bit return type and 256-bit operand type.

This problem was originally reported by Dimitry as PR25080. It has been latent
for a very long time. I have added the minimal reproducible from that bugzilla
as test setcc-lowering.ll.

Differential Revision: http://reviews.llvm.org/D13660

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252484 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r250324:
Tom Stellard [Mon, 9 Nov 2015 16:25:14 +0000 (16:25 +0000)]
Merging r250324:

------------------------------------------------------------------------
r250324 | wschmidt | 2015-10-14 16:45:00 -0400 (Wed, 14 Oct 2015) | 10 lines

[PowerPC] Fix invalid lxvdsx optimization (PR25157)

PR25157 identifies a bug where a load plus a vector shuffle is
incorrectly converted into an LXVDSX instruction.  That optimization
is only valid if the load is of a doubleword, and in the noted case,
it was not.  This corrects that problem.

Joint patch with Eric Schweitz, who provided the bugpoint-reduced test
case.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252483 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r247757:
Tom Stellard [Mon, 9 Nov 2015 16:25:12 +0000 (16:25 +0000)]
Merging r247757:

------------------------------------------------------------------------
r247757 | geek4civic | 2015-09-15 20:10:43 -0400 (Tue, 15 Sep 2015) | 9 lines

llvm/CodeGen/CommandFlags.h: Prune doubleslash in #include.

While packaging 3.7 for Fedora, the debug info splitting
process fell over this, so fix it upstream seems like a good plan.

This should be put in the 3.7 branch as well.

Noticed by Dave Airlie <airlied@redhat.com>

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252482 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r246937:
Tom Stellard [Mon, 9 Nov 2015 16:25:11 +0000 (16:25 +0000)]
Merging r246937:

------------------------------------------------------------------------
r246937 | hfinkel | 2015-09-06 00:17:30 -0400 (Sun, 06 Sep 2015) | 13 lines

[PowerPC] Don't commute trivial rlwimi instructions

To commute a trivial rlwimi instructions (meaning one with a full mask and zero
shift), we'd need to ability to form an all-zero mask (instead of an all-one
mask) using rlwimi. We can't represent this, however, and we'll miscompile code
if we try.

The code quality problem that this highlights (that SDAG simplification can
lead to us generating an ISD::OR node with a constant zero LHS) will be fixed
as a follow-up.

Fixes PR24719.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252481 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r246900:
Tom Stellard [Mon, 9 Nov 2015 16:25:09 +0000 (16:25 +0000)]
Merging r246900:

------------------------------------------------------------------------
r246900 | hfinkel | 2015-09-04 20:02:59 -0400 (Fri, 04 Sep 2015) | 14 lines

[PowerPC] Fix and(or(x, c1), c2) -> rlwimi generation

PPCISelDAGToDAG has a transformation that generates a rlwimi instruction from
an input pattern that looks like this:

  and(or(x, c1), c2)

but the associated logic does not work if there are bits that are 1 in c1 but 0
in c2 (these are normally canonicalized away, but that can't happen if the 'or'
has other users. Make sure we abort the transformation if such bits are
discovered.

Fixes PR24704.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252480 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r246675:
Tom Stellard [Mon, 9 Nov 2015 16:25:06 +0000 (16:25 +0000)]
Merging r246675:

------------------------------------------------------------------------
r246675 | hfinkel | 2015-09-02 12:52:37 -0400 (Wed, 02 Sep 2015) | 9 lines

[PowerPC] Don't always consider P8Altivec-only masks in LowerVECTOR_SHUFFLE

LowerVECTOR_SHUFFLE needs to decide whether to pass a vector shuffle off to the
TableGen-generated matching code, and it does this by testing the same
predicates used by the TableGen files. Unfortunately, when we added new
P8Altivec-only predicates, we started universally testing them in
LowerVECTOR_SHUFFLE, and if then matched when targeting a system prior to a P8,
we'd end up with a selection failure.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252479 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r246400:
Tom Stellard [Mon, 9 Nov 2015 16:25:03 +0000 (16:25 +0000)]
Merging r246400:

------------------------------------------------------------------------
r246400 | hfinkel | 2015-08-30 18:12:50 -0400 (Sun, 30 Aug 2015) | 20 lines

[PowerPC] Fixup SELECT_CC (and SETCC) patterns with i1 comparison operands

There were really two problems here. The first was that we had the truth tables
for signed i1 comparisons backward. I imagine these are not very common, but if
you have:
  setcc i1 x, y, LT
this has the '0 1' and the '1 0' results flipped compared to:
  setcc i1 x, y, ULT
because, in the signed case, '1 0' is really '-1 0', and the answer is not the
same as in the unsigned case.

The second problem was that we did not have patterns (at all) for the unsigned
comparisons select_cc nodes for i1 comparison operands. This was the specific
cause of PR24552. These had to be added (and a missing Altivec promotion added
as well) to make sure these function for all types. I've added a bunch more
test cases for these patterns, and there are a few FIXMEs in the test case
regarding code-quality.

Fixes PR24552.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252478 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r246372:
Tom Stellard [Mon, 9 Nov 2015 16:25:01 +0000 (16:25 +0000)]
Merging r246372:

------------------------------------------------------------------------
r246372 | hfinkel | 2015-08-30 03:44:05 -0400 (Sun, 30 Aug 2015) | 10 lines

[PowerPC] Don't assume ADDISdtprelHA's source is r3

Even through ADDISdtprelHA generally has r3 as its source register, it is
possible for the instruction scheduler to move things around such that some
other register is the source. We need to print the actual source register, not
always r3. Fixes PR24394.

The test case will come in a follow-up commit because it depends on MIR
target-flags parsing.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252477 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r245907:
Tom Stellard [Mon, 9 Nov 2015 16:24:59 +0000 (16:24 +0000)]
Merging r245907:

------------------------------------------------------------------------
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.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252476 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r249165:
Renato Golin [Mon, 9 Nov 2015 09:59:23 +0000 (09:59 +0000)]
Merging r249165:
------------------------------------------------------------------------
r249165 | rdivacky | 2015-10-02 19:25:25 +0100 (Fri, 02 Oct 2015) | 2 lines

Actually switch the arch when we see .arch. PR21695

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252456 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r244221:
Tom Stellard [Sat, 7 Nov 2015 02:40:48 +0000 (02:40 +0000)]
Merging r244221:

------------------------------------------------------------------------
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

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252393 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r251622:
Daniel Sanders [Thu, 5 Nov 2015 13:30:33 +0000 (13:30 +0000)]
Merging r251622:
------------------------------------------------------------------------
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
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252158 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r245741:
Tom Stellard [Thu, 5 Nov 2015 02:05:38 +0000 (02:05 +0000)]
Merging r245741:

------------------------------------------------------------------------
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).

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@252132 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r249718:
Alexei Starovoitov [Sat, 24 Oct 2015 02:02:55 +0000 (02:02 +0000)]
Merging r249718:
------------------------------------------------------------------------
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: Yonghong Song <yhs@plumgrid.com>
Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@251177 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r249371:
Alexei Starovoitov [Sat, 24 Oct 2015 01:58:14 +0000 (01:58 +0000)]
Merging r249371:
------------------------------------------------------------------------
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>
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@251175 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r247951:
Alexei Starovoitov [Sat, 24 Oct 2015 01:54:32 +0000 (01:54 +0000)]
Merging r247951:
------------------------------------------------------------------------
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.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@251174 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r247128:
Daniel Sanders [Mon, 14 Sep 2015 10:40:55 +0000 (10:40 +0000)]
Merging r247128:
------------------------------------------------------------------------
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
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@247539 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r246990:
Daniel Sanders [Mon, 14 Sep 2015 10:12:30 +0000 (10:12 +0000)]
Merging r246990:
------------------------------------------------------------------------
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
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@247538 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r247372 to 3.7 for inclusion in 3.7.1
Duncan P. N. Exon Smith [Fri, 11 Sep 2015 18:12:20 +0000 (18:12 +0000)]
Merging r247372 to 3.7 for inclusion in 3.7.1

------------------------------------------------------------------------
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.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@247440 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerge r242372 to 3.7 so that it goes out in 3.7.1
Reid Kleckner [Wed, 9 Sep 2015 21:03:25 +0000 (21:03 +0000)]
Merge r242372 to 3.7 so that it goes out in 3.7.1

It restores the signature of LLVMBuildLandingPad in the C API back to what it
was in 3.6 and earlier.

The 3.7.0 release should have had this but it did not.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@247191 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoUpdating with 2 more contributors
Michael Wong [Fri, 28 Aug 2015 13:56:27 +0000 (13:56 +0000)]
Updating with 2 more contributors

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@246299 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoReleaseNotes: add a note about libunwind moving
Saleem Abdulrasool [Thu, 27 Aug 2015 02:20:03 +0000 (02:20 +0000)]
ReleaseNotes: add a note about libunwind moving

libunwind moved from libc++abi into a separate project.  This may catch users
off guard, so add a release note.

Thanks to Hans for the reminder!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@246136 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoReleaseNotes: fix minor spelling mistake
Saleem Abdulrasool [Thu, 27 Aug 2015 02:18:31 +0000 (02:18 +0000)]
ReleaseNotes: fix minor spelling mistake

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@246135 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoReleaseNotes: fix some indentation
Hans Wennborg [Wed, 26 Aug 2015 23:27:03 +0000 (23:27 +0000)]
ReleaseNotes: fix some indentation

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@246108 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRelease Notes expansion for BPF
Hans Wennborg [Wed, 26 Aug 2015 20:28:56 +0000 (20:28 +0000)]
Release Notes expansion for BPF

By Brenden Blanco!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@246072 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAdd a release note about raising the minimum Windows version for the next major release
Hans Wennborg [Wed, 26 Aug 2015 20:19:38 +0000 (20:19 +0000)]
Add a release note about raising the minimum Windows version for the next major release

Patch by Greg Bedwell!

Differential Revision: http://reviews.llvm.org/D12367

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@246071 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoPolly subproject release notes
Hans Wennborg [Wed, 26 Aug 2015 18:58:15 +0000 (18:58 +0000)]
Polly subproject release notes

By Tobias Grosser!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@246053 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAdd a small release note about the getSubtarget migration.
Eric Christopher [Wed, 26 Aug 2015 05:12:26 +0000 (05:12 +0000)]
Add a small release note about the getSubtarget migration.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@246013 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoReleaseNotes: some more touch-ups
Hans Wennborg [Tue, 25 Aug 2015 20:13:58 +0000 (20:13 +0000)]
ReleaseNotes: some more touch-ups

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245972 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoReleaseNotes: remove in-progress warning
Hans Wennborg [Tue, 25 Aug 2015 19:51:36 +0000 (19:51 +0000)]
ReleaseNotes: remove in-progress warning

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245968 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoDeprecate the DataLayout on the TargetMachine, and backport the 3.8 API to ease trans...
Hans Wennborg [Tue, 25 Aug 2015 16:25:46 +0000 (16:25 +0000)]
Deprecate the DataLayout on the TargetMachine, and backport the 3.8 API to ease transition

By Mehdi Amini.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245948 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r245902:
Hans Wennborg [Mon, 24 Aug 2015 23:35:30 +0000 (23:35 +0000)]
Merging r245902:
------------------------------------------------------------------------
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.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245903 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoUpdate CREDITS.TXT with Clang OpenMP implementation + test suite contributors from...
Michael Wong [Mon, 24 Aug 2015 14:50:26 +0000 (14:50 +0000)]
Update CREDITS.TXT with Clang OpenMP implementation + test suite contributors from AMD, Argonne National Lab., IBM, Intel, Texas Instruments, University of Houston and many others.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245845 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerge r245577 into branch_37
Renato Golin [Thu, 20 Aug 2015 16:41:22 +0000 (16:41 +0000)]
Merge r245577 into branch_37

[ARM] Don't try and custom lower a vNi64 SETCC.

It won't go well. We've already marked 64-bit SETCCs as non-Custom, but it's
just possible that a SETCC has a legal result type but an illegal operand
type. If this happens, bail out before we create unselectable nodes.

Fixes PR24292. I tried to create a testcase but in 99% of cases we can't
trigger this - not surprising that this bug has been latent since 2009.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245578 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r245535:
Hans Wennborg [Thu, 20 Aug 2015 16:05:36 +0000 (16:05 +0000)]
Merging r245535:
------------------------------------------------------------------------
r245535 | hfinkel | 2015-08-19 20:02:02 -0700 (Wed, 19 Aug 2015) | 6 lines

[PowerPC] Fix value type on XVCMPEQDP for v2f64 comparisons

XVCMPEQDP is used for VSX v2f64 equality comparisons, but the value type needs
to be v2i64 (as that's the corresponding SETCC type).

Fixes PR24225.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245574 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r245530:
Hans Wennborg [Thu, 20 Aug 2015 16:03:44 +0000 (16:03 +0000)]
Merging r245530:
------------------------------------------------------------------------
r245530 | hfinkel | 2015-08-19 18:18:20 -0700 (Wed, 19 Aug 2015) | 5 lines

[PowerPC] Fix the int2fp(fp2int(x)) DAGCombine to ignore ppc_fp128

This DAGCombine was creating custom SDAG nodes with an illegal ppc_fp128
operand type because it was triggering on f64/f32 int2fp(fp2int(ppc_fp128 x)),
but shouldn't (it should only apply to f32/f64 types). The result was a crash.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245573 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r245365 and r245369:
Hans Wennborg [Thu, 20 Aug 2015 15:56:38 +0000 (15:56 +0000)]
Merging r245365 and r245369:
------------------------------------------------------------------------
r245365 | majnemer | 2015-08-18 15:07:25 -0700 (Tue, 18 Aug 2015) | 4 lines

[InstSimplify] Don't assume getAggregateElement will succeed

It isn't always possible to get a value from getAggregateElement.
This fixes PR24488.
------------------------------------------------------------------------

------------------------------------------------------------------------
r245369 | majnemer | 2015-08-18 15:18:22 -0700 (Tue, 18 Aug 2015) | 3 lines

[InstSimplify] Remove unused variable

No functionality change is intended.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245572 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoReapply "[SimplifyCFG] Be more aggressive" on branch_37
Renato Golin [Thu, 20 Aug 2015 15:49:34 +0000 (15:49 +0000)]
Reapply "[SimplifyCFG] Be more aggressive" on branch_37

I have underestimated the importance of this patch, and
James has got a fix for it in the making. Sorry for the noise.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245570 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert "[SimplifyCFG] Be more aggressive" on branch_37
Renato Golin [Thu, 20 Aug 2015 15:05:48 +0000 (15:05 +0000)]
Revert "[SimplifyCFG] Be more aggressive" on branch_37

This reverts commit r229099 in branch 37 only, because it caused PR24292.
I'll continue investigating and will fix on trunk, but being an optimization
change, we can let the rest of the release go without this one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245568 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAdd release notes for the typeless pointer work.
David Blaikie [Thu, 20 Aug 2015 01:58:23 +0000 (01:58 +0000)]
Add release notes for the typeless pointer work.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245534 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r245395:
Hans Wennborg [Wed, 19 Aug 2015 18:40:30 +0000 (18:40 +0000)]
Merging r245395:
------------------------------------------------------------------------
r245395 | qcolombet | 2015-08-18 17:08:26 -0700 (Tue, 18 Aug 2015) | 3 lines

[BasicAA] Add a test for PR24468 to be sure we won't regress
when we finally get the GEP aliasing right.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245478 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r245394:
Hans Wennborg [Wed, 19 Aug 2015 18:39:10 +0000 (18:39 +0000)]
Merging r245394:
------------------------------------------------------------------------
r245394 | qcolombet | 2015-08-18 17:07:20 -0700 (Tue, 18 Aug 2015) | 3 lines

[BasicAA] Revert r221876 because it can produce incorrect aliasing
information: see PR24468.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245476 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r244448:
Hans Wennborg [Wed, 19 Aug 2015 16:43:16 +0000 (16:43 +0000)]
Merging r244448:
------------------------------------------------------------------------
r244448 | fcormack | 2015-08-10 07:48:47 -0700 (Mon, 10 Aug 2015) | 12 lines

Prevent the scalarizer from caching incorrect entries

The scalarizer can cache incorrect entries when walking up a chain of
insertelement instructions. This occurs when it encounters more than one
instruction that it is not actively searching for, as it unconditionally caches
every element it finds. The fix is to only cache the first element that it
isn't searching for so we don't overwrite correct entries.

Reviewers: hfinkel

Differential Revision: http://reviews.llvm.org/D11559

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245457 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r245119:
Hans Wennborg [Tue, 18 Aug 2015 23:02:42 +0000 (23:02 +0000)]
Merging r245119:
------------------------------------------------------------------------
r245119 | nicholas | 2015-08-14 15:46:49 -0700 (Fri, 14 Aug 2015) | 2 lines

Fix a crash where a utility function wasn't aware of fcmp vectors and created a value with the wrong type. Fixes PR24458!

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245386 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r245355:
Hans Wennborg [Tue, 18 Aug 2015 21:12:52 +0000 (21:12 +0000)]
Merging r245355:
------------------------------------------------------------------------
r245355 | hans | 2015-08-18 14:10:17 -0700 (Tue, 18 Aug 2015) | 1 line

Release script: correctly symlink clang-tools-extra into the build (PR22765)
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245356 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAdd a paragraph about the ORC APIs to the 3.7 release notes.
Lang Hames [Tue, 18 Aug 2015 20:42:17 +0000 (20:42 +0000)]
Add a paragraph about the ORC APIs to the 3.7 release notes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245347 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r245256:
Hans Wennborg [Tue, 18 Aug 2015 16:48:44 +0000 (16:48 +0000)]
Merging r245256:
------------------------------------------------------------------------
r245256 | hans | 2015-08-17 16:24:17 -0700 (Mon, 17 Aug 2015) | 3 lines

Doxygen: add build option to use svg instead of png files for graphs

Differential Revision: http://reviews.llvm.org/D11994
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245312 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago3.7 release note: debug info IR
Duncan P. N. Exon Smith [Mon, 17 Aug 2015 22:16:58 +0000 (22:16 +0000)]
3.7 release note: debug info IR

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245248 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoReleaseNotes: System/Z -> SystemZ
Hans Wennborg [Mon, 17 Aug 2015 21:23:36 +0000 (21:23 +0000)]
ReleaseNotes: System/Z -> SystemZ

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245242 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoReleaseNotes: LLVMSharp and ClangSharp (copied from 3.6 notes)
Hans Wennborg [Mon, 17 Aug 2015 21:22:07 +0000 (21:22 +0000)]
ReleaseNotes: LLVMSharp and ClangSharp (copied from 3.6 notes)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245241 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r245064:
Hans Wennborg [Mon, 17 Aug 2015 20:22:50 +0000 (20:22 +0000)]
Merging r245064:
------------------------------------------------------------------------
r245064 | cbieneman | 2015-08-14 09:20:31 -0700 (Fri, 14 Aug 2015) | 5 lines

[CMake] Fix PR14200, llvm-config output misses -fno-rtti

This change adds RTTI and Exception flags to llvm-config's cxxflags. This solution is a minimal patch to solve the issue, and is recommended for the 3.7 release branch. Tom Stellard's outstanding work is the longer term solution.

Patch By: David Wiberg
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245235 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoFix the issue addressed in r243996: avoid calling std::equals on nullptr
Hans Wennborg [Mon, 17 Aug 2015 20:08:47 +0000 (20:08 +0000)]
Fix the issue addressed in r243996: avoid calling std::equals on nullptr
because MSVC's STL implementation can trip a debug assert on that.

There is still a discussion ongoing about r243996, so let's just apply
a minimal fix for 3.7.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245233 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r245087:
Tom Stellard [Mon, 17 Aug 2015 14:19:28 +0000 (14:19 +0000)]
Merging r245087:

------------------------------------------------------------------------
r245087 | thomas.stellard | 2015-08-14 15:46:05 -0400 (Fri, 14 Aug 2015) | 6 lines

AMDGPU/SI: Add missing spill class

The compiler was failing to spill for some shaders.

Patch By: Axel Davy

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245219 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAdd some words about PPC QPX support to the release notes
Hal Finkel [Mon, 17 Aug 2015 08:40:45 +0000 (08:40 +0000)]
Add some words about PPC QPX support to the release notes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245202 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[mips] Revert release notes change in r245037 now that the ubsan patches have been...
Daniel Sanders [Fri, 14 Aug 2015 22:39:33 +0000 (22:39 +0000)]
[mips] Revert release notes change in r245037 now that the ubsan patches have been merged.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245113 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r245105:
Hans Wennborg [Fri, 14 Aug 2015 22:34:33 +0000 (22:34 +0000)]
Merging r245105:
------------------------------------------------------------------------
r245105 | ast | 2015-08-14 15:00:45 -0700 (Fri, 14 Aug 2015) | 1 line

[bpf] add documentation and instruction set description
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245112 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoReleaseNotes: switch lowering
Hans Wennborg [Fri, 14 Aug 2015 22:31:50 +0000 (22:31 +0000)]
ReleaseNotes: switch lowering

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245109 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoReleaseNotes: System/Z changes. By Ulrich Weigand
Hans Wennborg [Fri, 14 Aug 2015 21:52:59 +0000 (21:52 +0000)]
ReleaseNotes: System/Z changes. By Ulrich Weigand

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245102 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoReleaseNotes: BPF Compiler Collection
Hans Wennborg [Fri, 14 Aug 2015 21:19:40 +0000 (21:19 +0000)]
ReleaseNotes: BPF Compiler Collection

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245101 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoReleaseNotes: the BPF backend
Hans Wennborg [Fri, 14 Aug 2015 21:15:48 +0000 (21:15 +0000)]
ReleaseNotes: the BPF backend

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245099 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r244232 and r244659:
Hans Wennborg [Fri, 14 Aug 2015 19:51:38 +0000 (19:51 +0000)]
Merging r244232 and r244659:
------------------------------------------------------------------------
r244232 | rnk | 2015-08-06 10:17:44 -0700 (Thu, 06 Aug 2015) | 5 lines

[cmake] Handle Dragonfly BSD like FreeBSD

Fixes build break reported in PR24358.

Patch by John Marino.
------------------------------------------------------------------------

------------------------------------------------------------------------
r244659 | rnk | 2015-08-11 13:28:28 -0700 (Tue, 11 Aug 2015) | 3 lines

[cmake] Shorten FreeBSD and DragonFly checks as suggested post-commit

NFC
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245088 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r244332:
Hans Wennborg [Fri, 14 Aug 2015 18:34:33 +0000 (18:34 +0000)]
Merging r244332:
------------------------------------------------------------------------
r244332 | tstellar | 2015-08-07 09:45:33 -0700 (Fri, 07 Aug 2015) | 9 lines

AMDGPU/SI: Use correct encoding of vopc for VI in the assembler

Summary: We were using the SI encoding for VI.

Reviewers: arsenm

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D11812
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245080 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAdded the usual pocl and TCE blurbs. Both now work with LLVM 3.7.
Pekka Jaaskelainen [Fri, 14 Aug 2015 16:45:55 +0000 (16:45 +0000)]
Added the usual pocl and TCE blurbs. Both now work with LLVM 3.7.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245068 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[mips] Drop the claim that ubsan works since r243384 and r244646 are not yet merged.
Daniel Sanders [Fri, 14 Aug 2015 10:18:40 +0000 (10:18 +0000)]
[mips] Drop the claim that ubsan works since r243384 and r244646 are not yet merged.

The timezone difference between myself, the code-owner, and release manager means
it's sensible to update the release notes on the assumption that they won't be
merged. If we do merge them, then we can revert this release notes change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@245037 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[release_37] Revert r242173 since it breaks R9 290X.
Quentin Colombet [Thu, 13 Aug 2015 22:52:11 +0000 (22:52 +0000)]
[release_37] Revert r242173 since it breaks R9 290X.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91588

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@244976 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r244889:
Hans Wennborg [Thu, 13 Aug 2015 16:38:56 +0000 (16:38 +0000)]
Merging r244889:
------------------------------------------------------------------------
r244889 | uweigand | 2015-08-13 06:37:06 -0700 (Thu, 13 Aug 2015) | 22 lines

[SystemZ] Support large LLVM IR struct return values

Recent mesa/llvmpipe crashes on SystemZ due to a failed assertion when
attempting to compile a routine with a return type of
  { <4 x float>, <4 x float>, <4 x float>, <4 x float> }
on a system without vector instruction support.

This is because after legalizing the vector type, we get a return value
consisting of 16 floats, which cannot all be returned in registers.

Usually, what should happen in this case is that the target's CanLowerReturn
routine rejects the return type, in which case SelectionDAG falls back to
implementing a structure return in memory via implicit reference.

However, the SystemZ target never actually implemented any CanLowerReturn
routine, and thus would accept any struct return type.

This patch fixes the crash by implementing CanLowerReturn.  As a side effect,
this also handles fp128 return values, fixing a todo that was noted in
SystemZCallingConv.td.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@244909 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r244789:
Hans Wennborg [Wed, 12 Aug 2015 19:46:15 +0000 (19:46 +0000)]
Merging r244789:
------------------------------------------------------------------------
r244789 | hans | 2015-08-12 11:27:23 -0700 (Wed, 12 Aug 2015) | 1 line

Docs: keep copyright years up-to-date.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@244798 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoDocs: drop 'if you're using a released version' warning
Hans Wennborg [Wed, 12 Aug 2015 18:31:52 +0000 (18:31 +0000)]
Docs: drop 'if you're using a released version' warning

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@244790 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r243999:
Hans Wennborg [Wed, 12 Aug 2015 17:12:16 +0000 (17:12 +0000)]
Merging r243999:
------------------------------------------------------------------------
r243999 | tbrethou | 2015-08-04 20:51:17 -0700 (Tue, 04 Aug 2015) | 2 lines

Rename all references to old mailing lists to new lists.llvm.org address.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@244768 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r244676:
Hans Wennborg [Wed, 12 Aug 2015 16:51:20 +0000 (16:51 +0000)]
Merging r244676:
------------------------------------------------------------------------
r244676 | sanjoy | 2015-08-11 14:33:55 -0700 (Tue, 11 Aug 2015) | 7 lines

Fix PR24354.

`InstCombiner::OptimizeOverflowCheck` was asserting an
invariant (operands to binary operations are ordered by decreasing
complexity) that wasn't really an invariant.  Fix this by instead having
`InstCombiner::OptimizeOverflowCheck` establish the invariant if it does
not hold.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@244764 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r243891 and r244644:
Hans Wennborg [Tue, 11 Aug 2015 20:07:52 +0000 (20:07 +0000)]
Merging r243891 and r244644:
------------------------------------------------------------------------
r243891 | lhames | 2015-08-03 11:03:40 -0700 (Mon, 03 Aug 2015) | 4 lines

[MCJIT] Fix a cast warning in the unit-test introduced in r243589.

Thanks to Aaron Ballman for spotting this.
------------------------------------------------------------------------

------------------------------------------------------------------------
r244644 | dblaikie | 2015-08-11 11:17:45 -0700 (Tue, 11 Aug 2015) | 5 lines

Fix UB in MCJIT test cases that relied on union type punning

Reviewers: lhames, aaron.ballman

Differential Revision: http://reviews.llvm.org/D11779
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@244654 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r244418:
Hans Wennborg [Tue, 11 Aug 2015 20:01:26 +0000 (20:01 +0000)]
Merging r244418:
------------------------------------------------------------------------
r244418 | majnemer | 2015-08-09 08:43:02 -0700 (Sun, 09 Aug 2015) | 10 lines

[PHITransAddr] Don't assume that instruction operands are translatable

We can only PHI translate instructions.  In our attempt to PHI translate
a bitcast, we attempt to translate its operand; however, the operand
might be an argument or a global instead of an instruction.  Benignly
bail out when this happens.

This fixes PR24397.

Differential Revision: http://reviews.llvm.org/D11879
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@244652 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r244554:
Hans Wennborg [Tue, 11 Aug 2015 15:40:14 +0000 (15:40 +0000)]
Merging r244554:
------------------------------------------------------------------------
r244554 | nicholas | 2015-08-10 18:05:16 -0700 (Mon, 10 Aug 2015) | 2 lines

Update the syntax for load instruction in this example.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@244614 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r244255:
Tom Stellard [Fri, 7 Aug 2015 01:39:49 +0000 (01:39 +0000)]
Merging r244255:

------------------------------------------------------------------------
r244255 | thomas.stellard | 2015-08-06 15:43:02 -0400 (Thu, 06 Aug 2015) | 4 lines

AMDGPU/SI: Add Fiji support

Patch by: Alex Deucher

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@244304 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agodiff --git a/docs/ReleaseNotes.rst b/docs/ReleaseNotes.rst
Kai Nacke [Thu, 6 Aug 2015 19:44:38 +0000 (19:44 +0000)]
diff --git a/docs/ReleaseNotes.rst b/docs/ReleaseNotes.rst
index 96461e5..f669a1f 100644
--- a/docs/ReleaseNotes.rst
+++ b/docs/ReleaseNotes.rst
@@ -206,6 +206,21 @@ Jade project is hosted as part of the Open RVC-CAL Compiler
 (`Orcc <http://orcc.sf.net>`_) and requires it to translate the RVC-CAL standard
 library of video coding tools into an LLVM assembly code.

LDC - the LLVM-based D compiler
-------------------------------

`D <http://dlang.org>`_ is a language with C-like syntax and static typing. It
pragmatically combines efficiency, control, and modeling power, with safety and
programmer productivity. D supports powerful concepts like Compile-Time Function
Execution (CTFE) and Template Meta-Programming, provides an innovative approach
to concurrency and offers many classical paradigms.

`LDC <http://wiki.dlang.org/LDC>`_ uses the frontend from the reference compiler
combined with LLVM as backend to produce efficient native code. LDC targets
x86/x86_64 systems like Linux, OS X and Windows and also PowerPC (32/64 bit).
Ports to other architectures like  ARM, AArch64 and MIPS64 are underway.

+
 Additional Information
 ======================

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@244256 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r244123:
Hans Wennborg [Thu, 6 Aug 2015 16:08:01 +0000 (16:08 +0000)]
Merging r244123:
------------------------------------------------------------------------
r244123 | pete | 2015-08-05 13:55:53 -0700 (Wed, 05 Aug 2015) | 7 lines

Update GettingStarted docs list of LLVM_TARGETS_TO_BUILD to match cmake.

Since the docs were written, we've added the BPF backend to the list.
Updating the docs to take this in to account.  Also sorted them to
match cmake while I was changing these lines.

Reviewed by Chris B.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@244225 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r243927, r243932, and r243934:
Hans Wennborg [Thu, 6 Aug 2015 16:02:17 +0000 (16:02 +0000)]
Merging r243927, r243932, and r243934:
------------------------------------------------------------------------
r243927 | chandlerc | 2015-08-03 17:44:07 -0700 (Mon, 03 Aug 2015) | 11 lines

[UB] Fix a nasty place where we would pass null pointers to memcpy.

This happens to work, but is not guaranteed to work. Indeed, most memcpy
interfaces in Linux-land annotate these arguments as nonnull, and GCC
and LLVM both can and do optimized based upon that. When they do so,
they might legitimately have miscompiled code calling this routine with
two valid iterators, 'nullptr' and 'nullptr'. There was even code doing
precisely this because StringRef().begin() and StringRef().end() both
produce null pointers.

This was found by UBSan.
------------------------------------------------------------------------

------------------------------------------------------------------------
r243932 | chandlerc | 2015-08-03 17:53:01 -0700 (Mon, 03 Aug 2015) | 3 lines

[UB] Fix another place where we would pass a null pointer to memcpy.

This too was found by UBSan. Down to 35 failures for me.
------------------------------------------------------------------------

------------------------------------------------------------------------
r243934 | chandlerc | 2015-08-03 18:00:56 -0700 (Mon, 03 Aug 2015) | 4 lines

[UB] Fix yet another use of memcpy with a null pointer argument. I think
this is the last of them in my build of LLVM. Haven't tried Clang yet.

Found via UBSan.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@244224 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerging r244058:
Hans Wennborg [Wed, 5 Aug 2015 20:46:22 +0000 (20:46 +0000)]
Merging r244058:
------------------------------------------------------------------------
r244058 | hans | 2015-08-05 08:36:07 -0700 (Wed, 05 Aug 2015) | 1 line

test-release.sh: Fix naming of OpenMP runtime tarball
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_37@244118 91177308-0d34-0410-b5e6-96231b3b80d8