[llvm-branch-commits] [llvm-branch] r277587 - [docs] Release Notes 3.9.0: GCC ABI Tag

2016-08-03 Thread Renato Golin via llvm-branch-commits
Author: rengolin
Date: Wed Aug  3 06:07:48 2016
New Revision: 277587

URL: http://llvm.org/viewvc/llvm-project?rev=277587&view=rev
Log:
[docs] Release Notes 3.9.0: GCC ABI Tag

Adding a short explanation of the GCC ABI Tag discussion and issues, with
links and considerations.

Modified:
llvm/branches/release_39/docs/ReleaseNotes.rst

Modified: llvm/branches/release_39/docs/ReleaseNotes.rst
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/docs/ReleaseNotes.rst?rev=277587&r1=277586&r2=277587&view=diff
==
--- llvm/branches/release_39/docs/ReleaseNotes.rst (original)
+++ llvm/branches/release_39/docs/ReleaseNotes.rst Wed Aug  3 06:07:48 2016
@@ -93,6 +93,32 @@ Non-comprehensive list of changes in thi
 
Makes programs 10x faster by doing Special New Thing.
 
+GCC ABI Tag
+---
+
+Recently, many of the Linux distributions (ex. `Fedora 
`_,
+`Debian `_, `Ubuntu 
`_)
+have moved on to use the new `GCC ABI 
`_
+to work around `C++11 incompatibilities in libstdc++ 
`_.
+This caused `incompatibility problems 
`_
+with other compilers (ex. Clang), which needed to be fixed, but due to the
+experimental nature of GCC's own implementation, it took a long time for it to
+land in LLVM (`here `_ and
+`here `_), not in time for the 3.8 release.
+
+Those patches are now present in the 3.9.0 release and should be working on the
+majority of cases, as they have been tested thoroughly. However, some bugs were
+`filled in GCC `_ and have 
not
+yet been fixed, so there may be corner cases not covered by either GCC or 
Clang.
+Bug fixes to those problems should be reported in Bugzilla (either LLVM or 
GCC),
+and patches to LLVM's trunk are very likely to be back-ported to future 3.9.x
+releases (depends on how destructive it is).
+
+Unfortunately, these patches won't be back-ported to 3.8.x or earlier, so we
+strongly recommend people to use 3.9.x when GCC ABI cases are at stake.
+
+For a more in-depth view of the issue, check our `Bugzilla entry 
`_.
+
 Changes to the LLVM IR
 --
 


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang-tools-extra-branch] r277588 - Expand the clang-include-fixer relnotes a bit.

2016-08-03 Thread Benjamin Kramer via llvm-branch-commits
Author: d0k
Date: Wed Aug  3 06:59:03 2016
New Revision: 277588

URL: http://llvm.org/viewvc/llvm-project?rev=277588&view=rev
Log:
Expand the clang-include-fixer relnotes a bit.

Modified:
clang-tools-extra/branches/release_39/docs/ReleaseNotes.rst

Modified: clang-tools-extra/branches/release_39/docs/ReleaseNotes.rst
URL: 
http://llvm.org/viewvc/llvm-project/clang-tools-extra/branches/release_39/docs/ReleaseNotes.rst?rev=277588&r1=277587&r2=277588&view=diff
==
--- clang-tools-extra/branches/release_39/docs/ReleaseNotes.rst (original)
+++ clang-tools-extra/branches/release_39/docs/ReleaseNotes.rst Wed Aug  3 
06:59:03 2016
@@ -47,6 +47,13 @@ Major New Features
 - :program:`clang-include-fixer`, a tool that provides an automated way of
   adding ``#include`` directives for missing symbols in one translation unit.
 
+  It aims to provide automated insertion of missing ``#includes`` with a single
+  button press in an editor. Integration with Vim and a tool to generate the
+  symbol index used by the tool are also part of this release. See the
+  `include-fixer documentation`_ for more information.
+
+.. _include-fixer documentation: http://clang.llvm.org/extra/include-fixer.html
+
 Improvements to clang-query
 ---
 


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm-branch] r277591 - [docs] Release notes 3.9.0: Adding ARM target changes

2016-08-03 Thread Renato Golin via llvm-branch-commits
Author: rengolin
Date: Wed Aug  3 07:52:40 2016
New Revision: 277591

URL: http://llvm.org/viewvc/llvm-project?rev=277591&view=rev
Log:
[docs] Release notes 3.9.0: Adding ARM target changes

Modified:
llvm/branches/release_39/docs/ReleaseNotes.rst

Modified: llvm/branches/release_39/docs/ReleaseNotes.rst
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/docs/ReleaseNotes.rst?rev=277591&r1=277590&r2=277591&view=diff
==
--- llvm/branches/release_39/docs/ReleaseNotes.rst (original)
+++ llvm/branches/release_39/docs/ReleaseNotes.rst Wed Aug  3 07:52:40 2016
@@ -139,7 +139,7 @@ behavior.  See `PR26774 

[llvm-branch-commits] [llvm-branch] r277593 - [code] Fix release notes typo

2016-08-03 Thread Renato Golin via llvm-branch-commits
Author: rengolin
Date: Wed Aug  3 08:20:58 2016
New Revision: 277593

URL: http://llvm.org/viewvc/llvm-project?rev=277593&view=rev
Log:
[code] Fix release notes typo

Modified:
llvm/branches/release_39/docs/ReleaseNotes.rst

Modified: llvm/branches/release_39/docs/ReleaseNotes.rst
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/docs/ReleaseNotes.rst?rev=277593&r1=277592&r2=277593&view=diff
==
--- llvm/branches/release_39/docs/ReleaseNotes.rst (original)
+++ llvm/branches/release_39/docs/ReleaseNotes.rst Wed Aug  3 08:20:58 2016
@@ -165,7 +165,7 @@ Changes to the ARM Targets
 * Initial ARM/Thumb support was added to LLD.
 * The ExecutionEngine now supports COFF/ARM
 * Swift calling convention was ported to ARM
-* A large number of cddegen fixes around ARMv8, DSP, correct sub-target 
support,
+* A large number of codegen fixes around ARMv8, DSP, correct sub-target 
support,
   relocations, EABI, EHABI, Windows on ARM, atomics.
 * Improved assembler support for Linux/Android/Chromium sub-projects.
 * Initial support for MUSL (libc) on ARM


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm-branch] r277606 - [docs] release notes: self-host clang+lld on aarch64, stops

2016-08-03 Thread Renato Golin via llvm-branch-commits
Author: rengolin
Date: Wed Aug  3 11:09:12 2016
New Revision: 277606

URL: http://llvm.org/viewvc/llvm-project?rev=277606&view=rev
Log:
[docs] release notes: self-host clang+lld on aarch64, stops

Modified:
llvm/branches/release_39/docs/ReleaseNotes.rst

Modified: llvm/branches/release_39/docs/ReleaseNotes.rst
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/docs/ReleaseNotes.rst?rev=277606&r1=277605&r2=277606&view=diff
==
--- llvm/branches/release_39/docs/ReleaseNotes.rst (original)
+++ llvm/branches/release_39/docs/ReleaseNotes.rst Wed Aug  3 11:09:12 2016
@@ -142,17 +142,18 @@ Changes to the ARM Targets
 **During this release the AArch64 backend has:**
 
 * Gained support for Qualcomm's Kryo and Broadcom's Vulcan CPUs, including
-  scheduling models
-* Landed a scheduling model for Samsung's Exynos M1
-* Seen a lot of work on GlobalISel
+  scheduling models.
+* Landed a scheduling model for Samsung's Exynos M1.
+* Seen a lot of work on GlobalISel.
 * Learned a few more useful combines (fadd and fmul into fmadd, adjustments to 
the
-  stack pointer for callee-save stack memory and local stack memory etc)
-* Gained support for the Swift calling convention
+  stack pointer for callee-save stack memory and local stack memory etc).
+* Gained support for the Swift calling convention.
 * Switched to using SubtargetFeatures rather than testing for specific CPUs and
-  to using TableGen for handling system instruction operands
+  to using TableGen for handling system instruction operands.
 * Like ARM, AArch64 is now using the TargetParser, so no more StringSwitches
   matching CPU, FPU or feature names will be accepted in normal code.
-* Gained a big batch of tests from Halide
+* Clang can now self-host itself using LLD on AArch64.
+* Gained a big batch of tests from Halide.
 
  Furthermore, LLDB now supports AArch64 compact unwind tables, as used on iOS,
  tvos and watchos.
@@ -160,17 +161,17 @@ Changes to the ARM Targets
 **During this release the ARM target has:**
 
 * ARMv8.2-A can now be targeted directly via Clang flags.
-* Adding preliminary support for Cortex-R8
+* Adding preliminary support for Cortex-R8.
 * LLDB can now parse EABI attributes for an ELF input.
 * Initial ARM/Thumb support was added to LLD.
-* The ExecutionEngine now supports COFF/ARM
-* Swift calling convention was ported to ARM
+* The ExecutionEngine now supports COFF/ARM.
+* Swift calling convention was ported to ARM.
 * A large number of codegen fixes around ARMv8, DSP, correct sub-target 
support,
-  relocations, EABI, EHABI, Windows on ARM, atomics.
+  relocations, EABI, EHABI, Windows on ARM, atomics..
 * Improved assembler support for Linux/Android/Chromium sub-projects.
-* Initial support for MUSL (libc) on ARM
-* Support for Thumb1 targets in libunwind
-* Gained a big batch of tests from Halide
+* Initial support for MUSL (libc) on ARM.
+* Support for Thumb1 targets in libunwind.
+* Gained a big batch of tests from Halide.
 
 
 Changes to the MIPS Target


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm-branch] r277619 - Merging r277500:

2016-08-03 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Wed Aug  3 13:09:48 2016
New Revision: 277619

URL: http://llvm.org/viewvc/llvm-project?rev=277619&view=rev
Log:
Merging r277500:

r277500 | nha | 2016-08-02 12:17:37 -0700 (Tue, 02 Aug 2016) | 17 lines

AMDGPU: Track physical registers in SIWholeQuadMode

Summary:
There are cases where uniform branch conditions are computed in VGPRs, and
we didn't correctly mark those as WQM.

The stray change in basic-branch.ll is because invoking the LiveIntervals
analysis leads to the detection of a dead register that would otherwise not
be seen at -O0.

This is a candidate for the 3.9 branch, as it fixes a possible hang.

Reviewers: arsenm, tstellarAMD, mareko

Subscribers: arsenm, llvm-commits, kzhuravl

Differential Revision: https://reviews.llvm.org/D22673


Modified:
llvm/branches/release_39/   (props changed)
llvm/branches/release_39/lib/Target/AMDGPU/SIWholeQuadMode.cpp
llvm/branches/release_39/test/CodeGen/AMDGPU/basic-branch.ll
llvm/branches/release_39/test/CodeGen/AMDGPU/wqm.ll

Propchange: llvm/branches/release_39/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug  3 13:09:48 2016
@@ -1,3 +1,3 @@
 /llvm/branches/Apple/Pertwee:110850,110961
 /llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,275868-275870,275879,275898,275928,275935,275946,275978,275981,276015,276077,276109,276119,276181,276209,276236-276237,276358,276364,276368,276389,276435,276438,276479,276510,276648,276740,276956,276980,277114,277135,277371
+/llvm/trunk:155241,275868-275870,275879,275898,275928,275935,275946,275978,275981,276015,276077,276109,276119,276181,276209,276236-276237,276358,276364,276368,276389,276435,276438,276479,276510,276648,276740,276956,276980,277114,277135,277371,277500

Modified: llvm/branches/release_39/lib/Target/AMDGPU/SIWholeQuadMode.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/lib/Target/AMDGPU/SIWholeQuadMode.cpp?rev=277619&r1=277618&r2=277619&view=diff
==
--- llvm/branches/release_39/lib/Target/AMDGPU/SIWholeQuadMode.cpp (original)
+++ llvm/branches/release_39/lib/Target/AMDGPU/SIWholeQuadMode.cpp Wed Aug  3 
13:09:48 2016
@@ -94,12 +94,15 @@ private:
   const SIInstrInfo *TII;
   const SIRegisterInfo *TRI;
   MachineRegisterInfo *MRI;
+  LiveIntervals *LIS;
 
   DenseMap Instructions;
   DenseMap Blocks;
   SmallVector ExecExports;
   SmallVector LiveMaskQueries;
 
+  void markInstruction(MachineInstr &MI, char Flag,
+   std::vector &Worklist);
   char scanInstructions(MachineFunction &MF, std::vector &Worklist);
   void propagateInstruction(MachineInstr &MI, std::vector &Worklist);
   void propagateBlock(MachineBasicBlock &MBB, std::vector &Worklist);
@@ -126,6 +129,7 @@ public:
   }
 
   void getAnalysisUsage(AnalysisUsage &AU) const override {
+AU.addRequired();
 AU.setPreservesCFG();
 MachineFunctionPass::getAnalysisUsage(AU);
   }
@@ -135,8 +139,11 @@ public:
 
 char SIWholeQuadMode::ID = 0;
 
-INITIALIZE_PASS(SIWholeQuadMode, DEBUG_TYPE,
-"SI Whole Quad Mode", false, false)
+INITIALIZE_PASS_BEGIN(SIWholeQuadMode, DEBUG_TYPE, "SI Whole Quad Mode", false,
+  false)
+INITIALIZE_PASS_DEPENDENCY(LiveIntervals)
+INITIALIZE_PASS_END(SIWholeQuadMode, DEBUG_TYPE, "SI Whole Quad Mode", false,
+false)
 
 char &llvm::SIWholeQuadModeID = SIWholeQuadMode::ID;
 
@@ -144,6 +151,23 @@ FunctionPass *llvm::createSIWholeQuadMod
   return new SIWholeQuadMode;
 }
 
+void SIWholeQuadMode::markInstruction(MachineInstr &MI, char Flag,
+  std::vector &Worklist) {
+  InstrInfo &II = Instructions[&MI];
+
+  assert(Flag == StateWQM || Flag == StateExact);
+
+  // Ignore if the instruction is already marked. The typical case is that we
+  // mark an instruction WQM multiple times, but for atomics it can happen that
+  // Flag is StateWQM, but Needs is already set to StateExact. In this case,
+  // letting the atomic run in StateExact is correct as per the relevant specs.
+  if (II.Needs)
+return;
+
+  II.Needs = Flag;
+  Worklist.push_back(&MI);
+}
+
 // Scan instructions to determine which ones require an Exact execmask and
 // which ones seed WQM requirements.
 char SIWholeQuadMode::scanInstructions(MachineFunction &MF,
@@ -192,8 +216,7 @@ char SIWholeQuadMode::scanInstructions(M
   continue;
   }
 
-  Instructions[&MI].Needs = Flags;
-  Worklist.push_back(&MI);
+  markInstruction(MI, Flags, Worklist);
   GlobalFlags |= Flags;
 }
 
@@ -249,32 +272,35 @@ void SIWholeQuadMode::propagateInstructi
 if (!Use.isReg() || !Use.isUse())
   continue;
 
-// At this point, physical registers appear as 

[llvm-branch-commits] [llvm-branch] r277620 - Merging r277504:

2016-08-03 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Wed Aug  3 13:13:01 2016
New Revision: 277620

URL: http://llvm.org/viewvc/llvm-project?rev=277620&view=rev
Log:
Merging r277504:

r277504 | nha | 2016-08-02 12:31:14 -0700 (Tue, 02 Aug 2016) | 20 lines

AMDGPU: Stay in WQM for non-intrinsic stores

Summary:
Two types of stores are possible in pixel shaders: stores to memory that are
explicitly requested at the API level, and stores that are an implementation
detail of register spilling or lowering of arrays.

For the first kind of store, we must ensure that helper pixels have no effect
and hence WQM must be disabled. The second kind of store must always be
executed, because the written value may be loaded again in a way that is
relevant for helper pixels as well -- and there are no externally visible
effects anyway.

This is a candidate for the 3.9 release branch.

Reviewers: arsenm, tstellarAMD, mareko

Subscribers: arsenm, kzhuravl, llvm-commits

Differential Revision: https://reviews.llvm.org/D22675


Modified:
llvm/branches/release_39/   (props changed)
llvm/branches/release_39/lib/Target/AMDGPU/SIDefines.h
llvm/branches/release_39/lib/Target/AMDGPU/SIInstrFormats.td
llvm/branches/release_39/lib/Target/AMDGPU/SIInstrInfo.h
llvm/branches/release_39/lib/Target/AMDGPU/SIInstrInfo.td
llvm/branches/release_39/lib/Target/AMDGPU/SIInstructions.td
llvm/branches/release_39/lib/Target/AMDGPU/SIWholeQuadMode.cpp
llvm/branches/release_39/test/CodeGen/AMDGPU/skip-if-dead.ll
llvm/branches/release_39/test/CodeGen/AMDGPU/wqm.ll

Propchange: llvm/branches/release_39/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug  3 13:13:01 2016
@@ -1,3 +1,3 @@
 /llvm/branches/Apple/Pertwee:110850,110961
 /llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,275868-275870,275879,275898,275928,275935,275946,275978,275981,276015,276077,276109,276119,276181,276209,276236-276237,276358,276364,276368,276389,276435,276438,276479,276510,276648,276740,276956,276980,277114,277135,277371,277500
+/llvm/trunk:155241,275868-275870,275879,275898,275928,275935,275946,275978,275981,276015,276077,276109,276119,276181,276209,276236-276237,276358,276364,276368,276389,276435,276438,276479,276510,276648,276740,276956,276980,277114,277135,277371,277500,277504

Modified: llvm/branches/release_39/lib/Target/AMDGPU/SIDefines.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/lib/Target/AMDGPU/SIDefines.h?rev=277620&r1=277619&r2=277620&view=diff
==
--- llvm/branches/release_39/lib/Target/AMDGPU/SIDefines.h (original)
+++ llvm/branches/release_39/lib/Target/AMDGPU/SIDefines.h Wed Aug  3 13:13:01 
2016
@@ -41,7 +41,8 @@ enum {
   WQM = 1 << 22,
   VGPRSpill = 1 << 23,
   VOPAsmPrefer32Bit = 1 << 24,
-  Gather4 = 1 << 25
+  Gather4 = 1 << 25,
+  DisableWQM = 1 << 26
 };
 }
 

Modified: llvm/branches/release_39/lib/Target/AMDGPU/SIInstrFormats.td
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/lib/Target/AMDGPU/SIInstrFormats.td?rev=277620&r1=277619&r2=277620&view=diff
==
--- llvm/branches/release_39/lib/Target/AMDGPU/SIInstrFormats.td (original)
+++ llvm/branches/release_39/lib/Target/AMDGPU/SIInstrFormats.td Wed Aug  3 
13:13:01 2016
@@ -41,6 +41,8 @@ class InstSI  DS = 0;
   field bits<1> MIMG = 0;
   field bits<1> FLAT = 0;
+
+  // Whether WQM _must_ be enabled for this instruction.
   field bits<1> WQM = 0;
   field bits<1> VGPRSpill = 0;
 
@@ -50,6 +52,9 @@ class InstSI  Gather4 = 0;
 
+  // Whether WQM _must_ be disabled for this instruction.
+  field bits<1> DisableWQM = 0;
+
   // These need to be kept in sync with the enum in SIInstrFlags.
   let TSFlags{0} = VM_CNT;
   let TSFlags{1} = EXP_CNT;
@@ -81,6 +86,7 @@ class InstSI http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/lib/Target/AMDGPU/SIInstrInfo.h?rev=277620&r1=277619&r2=277620&view=diff
==
--- llvm/branches/release_39/lib/Target/AMDGPU/SIInstrInfo.h (original)
+++ llvm/branches/release_39/lib/Target/AMDGPU/SIInstrInfo.h Wed Aug  3 
13:13:01 2016
@@ -340,6 +340,14 @@ public:
 return get(Opcode).TSFlags & SIInstrFlags::WQM;
   }
 
+  static bool isDisableWQM(const MachineInstr &MI) {
+return MI.getDesc().TSFlags & SIInstrFlags::DisableWQM;
+  }
+
+  bool isDisableWQM(uint16_t Opcode) const {
+return get(Opcode).TSFlags & SIInstrFlags::DisableWQM;
+  }
+
   static bool isVGPRSpill(const MachineInstr &MI) {
 return MI.getDesc().TSFlags & SIInstrFlags::VGPRSpill;
   }

Modified: llvm/branches/release_39/lib/Target/AMDGPU/SIInstrInfo.td
URL: 
http://llvm.org/viewvc/ll

[llvm-branch-commits] [llvm-branch] r277639 - Merging r277625:

2016-08-03 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Wed Aug  3 14:52:03 2016
New Revision: 277639

URL: http://llvm.org/viewvc/llvm-project?rev=277639&view=rev
Log:
Merging r277625:

r277625 | dexonsmith | 2016-08-03 11:19:43 -0700 (Wed, 03 Aug 2016) | 42 lines

IR: Drop uniquing when an MDNode Value operand is deleted

This is a fix for PR28697.

An MDNode can indirectly refer to a GlobalValue, through a
ConstantAsMetadata.  When the GlobalValue is deleted, the MDNode operand
is reset to `nullptr`.  If the node is uniqued, this can lead to a
hard-to-detect cache invalidation in a Metadata map that's shared across
an LLVMContext.

Consider:

 1. A map from Metadata* to `T` called RemappedMDs.
 2. A node that references a global variable, `!{i1* @GV}`.
 3. Insert `!{i1* @GV} -> SomeT` in the map.
 4. Delete `@GV`, leaving behind `!{null} -> SomeT`.

Looking up the generic and uninteresting `!{null}` gives you `SomeT`,
which is likely related to `@GV`.  Worse, `SomeT`'s lifetime may be tied
to the deleted `@GV`.

This occurs in practice in the shared ValueMap used since r266579 in the
IRMover.  Other code that handles more than one Module (with different
lifetimes) in the same LLVMContext could hit it too.

The fix here is a partial revert of r225223: in the rare case that an
MDNode operand is a ConstantAsMetadata (i.e., wrapping a node from the
Value hierarchy), drop uniquing if it gets replaced with `nullptr`.
This changes step #4 above to leave behind `distinct !{null} -> SomeT`,
which can't be confused with the generic `!{null}`.

In theory, this can cause some churn in the LLVMContext's MDNode
uniquing map when Values are being deleted.  However:

  - The number of GlobalValues referenced from uniqued MDNodes is
expected to be quite small.  E.g., the debug info metadata schema
only references GlobalValues from distinct nodes.

  - Other Constants have the lifetime of the LLVMContext, whose teardown
is careful to drop references before deleting the constants.

As a result, I don't expect a compile time regression from this change.


Added:

llvm/branches/release_39/test/Linker/Inputs/metadata-with-global-value-operand.ll
  - copied unchanged from r277625, 
llvm/trunk/test/Linker/Inputs/metadata-with-global-value-operand.ll
llvm/branches/release_39/test/Linker/metadata-with-global-value-operand.ll
  - copied unchanged from r277625, 
llvm/trunk/test/Linker/metadata-with-global-value-operand.ll
Modified:
llvm/branches/release_39/   (props changed)
llvm/branches/release_39/lib/IR/Metadata.cpp
llvm/branches/release_39/test/Transforms/GlobalOpt/metadata.ll
llvm/branches/release_39/unittests/IR/MetadataTest.cpp

Propchange: llvm/branches/release_39/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug  3 14:52:03 2016
@@ -1,3 +1,3 @@
 /llvm/branches/Apple/Pertwee:110850,110961
 /llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,275868-275870,275879,275898,275928,275935,275946,275978,275981,276015,276077,276109,276119,276181,276209,276236-276237,276358,276364,276368,276389,276435,276438,276479,276510,276648,276740,276956,276980,277114,277135,277371,277500,277504
+/llvm/trunk:155241,275868-275870,275879,275898,275928,275935,275946,275978,275981,276015,276077,276109,276119,276181,276209,276236-276237,276358,276364,276368,276389,276435,276438,276479,276510,276648,276740,276956,276980,277114,277135,277371,277500,277504,277625

Modified: llvm/branches/release_39/lib/IR/Metadata.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/lib/IR/Metadata.cpp?rev=277639&r1=277638&r2=277639&view=diff
==
--- llvm/branches/release_39/lib/IR/Metadata.cpp (original)
+++ llvm/branches/release_39/lib/IR/Metadata.cpp Wed Aug  3 14:52:03 2016
@@ -675,8 +675,8 @@ void MDNode::handleChangedOperand(void *
   Metadata *Old = getOperand(Op);
   setOperand(Op, New);
 
-  // Drop uniquing for self-reference cycles.
-  if (New == this) {
+  // Drop uniquing for self-reference cycles and deleted constants.
+  if (New == this || (!New && Old && isa(Old))) {
 if (!isResolved())
   resolve();
 storeDistinctInContext();

Modified: llvm/branches/release_39/test/Transforms/GlobalOpt/metadata.ll
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/test/Transforms/GlobalOpt/metadata.ll?rev=277639&r1=277638&r2=277639&view=diff
==
--- llvm/branches/release_39/test/Transforms/GlobalOpt/metadata.ll (original)
+++ llvm/branches/release_39/test/Transforms/GlobalOpt/metadata.ll Wed Aug  3 
14:52:03 2016
@@ -28,5 +28,5 @@ declare void @llvm.foo(metadata, metadat
 ; CHECK: !named = !{![[NULL:[0-9]+]]}
 
 !0 = !{i8*** @G

[llvm-branch-commits] [compiler-rt-branch] r277664 - Cleaning up testing branch

2016-08-03 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Wed Aug  3 18:05:21 2016
New Revision: 277664

URL: http://llvm.org/viewvc/llvm-project?rev=277664&view=rev
Log:
Cleaning up testing branch

Removed:
compiler-rt/branches/google/testing/

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [compiler-rt-branch] r277668 - Updating branches/google/testing to r277323

2016-08-03 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Wed Aug  3 18:05:28 2016
New Revision: 277668

URL: http://llvm.org/viewvc/llvm-project?rev=277668&view=rev
Log:
Updating branches/google/testing to r277323

Added:
compiler-rt/branches/google/testing/
  - copied from r277323, compiler-rt/trunk/

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [cfe-branch] r277666 - Updating branches/google/testing to r277323

2016-08-03 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Wed Aug  3 18:05:25 2016
New Revision: 277666

URL: http://llvm.org/viewvc/llvm-project?rev=277666&view=rev
Log:
Updating branches/google/testing to r277323

Added:
cfe/branches/google/testing/   (props changed)
  - copied from r277323, cfe/trunk/

Propchange: cfe/branches/google/testing/
--
--- svn:ignore (added)
+++ svn:ignore Wed Aug  3 18:05:25 2016
@@ -0,0 +1,3 @@
+configure.out
+cscope.files
+cscope.out

Propchange: cfe/branches/google/testing/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Aug  3 18:05:25 2016
@@ -0,0 +1,3 @@
+/cfe/branches/type-system-rewrite:134693-134817
+/cfe/trunk/test:170344
+/cfe/trunk/test/SemaTemplate:126920


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [lldb] r277673 - Creating tags/google/testing/2016-08-03 from r277323

2016-08-03 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Wed Aug  3 18:05:38 2016
New Revision: 277673

URL: http://llvm.org/viewvc/llvm-project?rev=277673&view=rev
Log:
Creating tags/google/testing/2016-08-03 from r277323

Added:
lldb/tags/google/testing/2016-08-03/   (props changed)
  - copied from r277323, lldb/trunk/

Propchange: lldb/tags/google/testing/2016-08-03/
--
--- svn:ignore (added)
+++ svn:ignore Wed Aug  3 18:05:38 2016
@@ -0,0 +1,4 @@
+build
+intermediates
+llvm
+llvm-build

Propchange: lldb/tags/google/testing/2016-08-03/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Aug  3 18:05:38 2016
@@ -0,0 +1,2 @@
+/lldb/branches/apple/python-GIL:156467-162159
+/lldb/branches/iohandler:198360-200250


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm-branch] r277664 - Cleaning up testing branch

2016-08-03 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Wed Aug  3 18:05:21 2016
New Revision: 277664

URL: http://llvm.org/viewvc/llvm-project?rev=277664&view=rev
Log:
Cleaning up testing branch

Removed:
llvm/branches/google/testing/

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [compiler-rt-tag] r277667 - Creating tags/google/testing/2016-08-03 from r277323

2016-08-03 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Wed Aug  3 18:05:26 2016
New Revision: 277667

URL: http://llvm.org/viewvc/llvm-project?rev=277667&view=rev
Log:
Creating tags/google/testing/2016-08-03 from r277323

Added:
compiler-rt/tags/google/testing/2016-08-03/
  - copied from r277323, compiler-rt/trunk/

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [cfe-tag] r277665 - Creating tags/google/testing/2016-08-03 from r277323

2016-08-03 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Wed Aug  3 18:05:23 2016
New Revision: 277665

URL: http://llvm.org/viewvc/llvm-project?rev=277665&view=rev
Log:
Creating tags/google/testing/2016-08-03 from r277323

Added:
cfe/tags/google/testing/2016-08-03/   (props changed)
  - copied from r277323, cfe/trunk/

Propchange: cfe/tags/google/testing/2016-08-03/
--
--- svn:ignore (added)
+++ svn:ignore Wed Aug  3 18:05:23 2016
@@ -0,0 +1,3 @@
+configure.out
+cscope.files
+cscope.out

Propchange: cfe/tags/google/testing/2016-08-03/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Aug  3 18:05:23 2016
@@ -0,0 +1,3 @@
+/cfe/branches/type-system-rewrite:134693-134817
+/cfe/trunk/test:170344
+/cfe/trunk/test/SemaTemplate:126920


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang-tools-extra-branch] r277670 - Updating branches/google/testing to r277323

2016-08-03 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Wed Aug  3 18:05:32 2016
New Revision: 277670

URL: http://llvm.org/viewvc/llvm-project?rev=277670&view=rev
Log:
Updating branches/google/testing to r277323

Added:
clang-tools-extra/branches/google/testing/
  - copied from r277323, clang-tools-extra/trunk/

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang-tools-extra-tag] r277669 - Creating tags/google/testing/2016-08-03 from r277323

2016-08-03 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Wed Aug  3 18:05:30 2016
New Revision: 277669

URL: http://llvm.org/viewvc/llvm-project?rev=277669&view=rev
Log:
Creating tags/google/testing/2016-08-03 from r277323

Added:
clang-tools-extra/tags/google/testing/2016-08-03/
  - copied from r277323, clang-tools-extra/trunk/

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm-branch] r277676 - Updating branches/google/testing to r277323

2016-08-03 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Wed Aug  3 18:05:43 2016
New Revision: 277676

URL: http://llvm.org/viewvc/llvm-project?rev=277676&view=rev
Log:
Updating branches/google/testing to r277323

Added:
llvm/branches/google/testing/   (props changed)
  - copied from r277323, llvm/trunk/

Propchange: llvm/branches/google/testing/
--
--- svn:ignore (added)
+++ svn:ignore Wed Aug  3 18:05:43 2016
@@ -0,0 +1,25 @@
+Debug
+Release
+Release-Asserts
+mklib
+Makefile.config
+config.log
+config.status
+cvs.out
+autom4te.cache
+configure.out
+LLVM-*
+_distcheckdir
+llvm.spec
+svn-commit.*
+*.patch
+*.patch.raw
+cscope.*
+Debug+Coverage-Asserts
+Release+Coverage-Asserts
+Debug+Coverage
+Release+Coverage
+Debug+Checks
+Debug+Asserts
+Release+Asserts
+build

Propchange: llvm/branches/google/testing/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Aug  3 18:05:43 2016
@@ -0,0 +1,3 @@
+/llvm/branches/Apple/Pertwee:110850,110961
+/llvm/branches/type-system-rewrite:133420-134817
+/llvm/trunk:155241


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [polly] r277664 - Cleaning up testing branch

2016-08-03 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Wed Aug  3 18:05:21 2016
New Revision: 277664

URL: http://llvm.org/viewvc/llvm-project?rev=277664&view=rev
Log:
Cleaning up testing branch

Removed:
polly/branches/google/testing/

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [cfe-branch] r277664 - Cleaning up testing branch

2016-08-03 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Wed Aug  3 18:05:21 2016
New Revision: 277664

URL: http://llvm.org/viewvc/llvm-project?rev=277664&view=rev
Log:
Cleaning up testing branch

Removed:
cfe/branches/google/testing/

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang-tools-extra-branch] r277664 - Cleaning up testing branch

2016-08-03 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Wed Aug  3 18:05:21 2016
New Revision: 277664

URL: http://llvm.org/viewvc/llvm-project?rev=277664&view=rev
Log:
Cleaning up testing branch

Removed:
clang-tools-extra/branches/google/testing/

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [lldb] r277674 - Updating branches/google/testing to r277323

2016-08-03 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Wed Aug  3 18:05:39 2016
New Revision: 277674

URL: http://llvm.org/viewvc/llvm-project?rev=277674&view=rev
Log:
Updating branches/google/testing to r277323

Added:
lldb/branches/google/testing/   (props changed)
  - copied from r277323, lldb/trunk/

Propchange: lldb/branches/google/testing/
--
--- svn:ignore (added)
+++ svn:ignore Wed Aug  3 18:05:39 2016
@@ -0,0 +1,4 @@
+build
+intermediates
+llvm
+llvm-build

Propchange: lldb/branches/google/testing/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Aug  3 18:05:39 2016
@@ -0,0 +1,2 @@
+/lldb/branches/apple/python-GIL:156467-162159
+/lldb/branches/iohandler:198360-200250


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [polly] r277672 - Updating branches/google/testing to r277323

2016-08-03 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Wed Aug  3 18:05:35 2016
New Revision: 277672

URL: http://llvm.org/viewvc/llvm-project?rev=277672&view=rev
Log:
Updating branches/google/testing to r277323

Added:
polly/branches/google/testing/
  - copied from r277323, polly/trunk/

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [polly] r277671 - Creating tags/google/testing/2016-08-03 from r277323

2016-08-03 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Wed Aug  3 18:05:33 2016
New Revision: 277671

URL: http://llvm.org/viewvc/llvm-project?rev=277671&view=rev
Log:
Creating tags/google/testing/2016-08-03 from r277323

Added:
polly/tags/google/testing/2016-08-03/
  - copied from r277323, polly/trunk/

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [lldb] r277664 - Cleaning up testing branch

2016-08-03 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Wed Aug  3 18:05:21 2016
New Revision: 277664

URL: http://llvm.org/viewvc/llvm-project?rev=277664&view=rev
Log:
Cleaning up testing branch

Removed:
lldb/branches/google/testing/

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm-tag] r277675 - Creating tags/google/testing/2016-08-03 from r277323

2016-08-03 Thread Richard Trieu via llvm-branch-commits
Author: rtrieu
Date: Wed Aug  3 18:05:41 2016
New Revision: 277675

URL: http://llvm.org/viewvc/llvm-project?rev=277675&view=rev
Log:
Creating tags/google/testing/2016-08-03 from r277323

Added:
llvm/tags/google/testing/2016-08-03/   (props changed)
  - copied from r277323, llvm/trunk/

Propchange: llvm/tags/google/testing/2016-08-03/
--
--- svn:ignore (added)
+++ svn:ignore Wed Aug  3 18:05:41 2016
@@ -0,0 +1,25 @@
+Debug
+Release
+Release-Asserts
+mklib
+Makefile.config
+config.log
+config.status
+cvs.out
+autom4te.cache
+configure.out
+LLVM-*
+_distcheckdir
+llvm.spec
+svn-commit.*
+*.patch
+*.patch.raw
+cscope.*
+Debug+Coverage-Asserts
+Release+Coverage-Asserts
+Debug+Coverage
+Release+Coverage
+Debug+Checks
+Debug+Asserts
+Release+Asserts
+build

Propchange: llvm/tags/google/testing/2016-08-03/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Aug  3 18:05:41 2016
@@ -0,0 +1,3 @@
+/llvm/branches/Apple/Pertwee:110850,110961
+/llvm/branches/type-system-rewrite:133420-134817
+/llvm/trunk:155241


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits