[llvm-branch-commits] [llvm-branch] r258146 - Merging r257905:

2016-01-19 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Jan 19 11:28:24 2016
New Revision: 258146

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

r257905 | hans | 2016-01-15 09:04:45 -0800 (Fri, 15 Jan 2016) | 3 lines

test-release.sh: Fix clang-tools-extra symlink for CMake build

The CMake and Autoconf builds want the symlink set up differently.


Modified:
llvm/branches/release_38/   (props changed)
llvm/branches/release_38/utils/release/test-release.sh

Propchange: llvm/branches/release_38/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jan 19 11:28:24 2016
@@ -1,3 +1,3 @@
 /llvm/branches/Apple/Pertwee:110850,110961
 /llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,257645,257648,257730,257791
+/llvm/trunk:155241,257645,257648,257730,257791,257905

Modified: llvm/branches/release_38/utils/release/test-release.sh
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/utils/release/test-release.sh?rev=258146&r1=258145&r2=258146&view=diff
==
--- llvm/branches/release_38/utils/release/test-release.sh (original)
+++ llvm/branches/release_38/utils/release/test-release.sh Tue Jan 19 11:28:24 
2016
@@ -288,10 +288,20 @@ function export_sources() {
 if [ ! -h clang ]; then
 ln -s ../../cfe.src clang
 fi
-cd $BuildDir/llvm.src/tools/clang/tools
-if [ ! -h extra ]; then
-ln -s ../../../../clang-tools-extra.src extra
+
+# The autoconf and CMake builds want different symlinks here:
+if [ "$use_autoconf" = "yes" ]; then
+  cd $BuildDir/llvm.src/tools/clang/tools
+  if [ ! -h extra ]; then
+  ln -s ../../../../clang-tools-extra.src extra
+  fi
+else
+  cd $BuildDir/cfe.src/tools
+  if [ ! -h extra ]; then
+  ln -s ../../clang-tools-extra.src extra
+  fi
 fi
+
 cd $BuildDir/llvm.src/projects
 if [ -d $BuildDir/test-suite.src ] && [ ! -h test-suite ]; then
 ln -s ../../test-suite.src test-suite


___
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] r258155 - Merging r257902 (and r257775)

2016-01-19 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Jan 19 12:26:37 2016
New Revision: 258155

URL: http://llvm.org/viewvc/llvm-project?rev=258155&view=rev
Log:
Merging r257902 (and r257775)


r257775 | jyknight | 2016-01-14 08:33:21 -0800 (Thu, 14 Jan 2016) | 3 lines

Revert "Stop increasing alignment of externally-visible globals on ELF 
platforms."

This reverts commit r257719, due to PR26144.



r257902 | jyknight | 2016-01-15 08:33:06 -0800 (Fri, 15 Jan 2016) | 17 lines

Stop increasing alignment of externally-visible globals on ELF
platforms.

With ELF, the alignment of a global variable in a shared library will
get copied into an executables linked against it, if the executable even
accesss the variable. So, it's not possible to implicitly increase
alignment based on access patterns, or you'll break existing binaries.

This happened to affect libc++'s std::cout symbol, for example. See
thread: http://thread.gmane.org/gmane.comp.compilers.clang.devel/45311

(This is a re-commit of r257719, without the bug reported in
PR26144. I've tweaked the code to not assert-fail in
enforceKnownAlignment when computeKnownBits doesn't recurse far enough
to find the underlying Alloca/GlobalObject value.)

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


Modified:
llvm/branches/release_38/   (props changed)
llvm/branches/release_38/include/llvm/IR/GlobalValue.h
llvm/branches/release_38/lib/CodeGen/CodeGenPrepare.cpp
llvm/branches/release_38/lib/IR/Globals.cpp
llvm/branches/release_38/lib/Transforms/Utils/Local.cpp
llvm/branches/release_38/test/CodeGen/ARM/memfunc.ll

Propchange: llvm/branches/release_38/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jan 19 12:26:37 2016
@@ -1,3 +1,3 @@
 /llvm/branches/Apple/Pertwee:110850,110961
 /llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,257645,257648,257730,257791,257905
+/llvm/trunk:155241,257645,257648,257730,257775,257791,257902,257905

Modified: llvm/branches/release_38/include/llvm/IR/GlobalValue.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/include/llvm/IR/GlobalValue.h?rev=258155&r1=258154&r2=258155&view=diff
==
--- llvm/branches/release_38/include/llvm/IR/GlobalValue.h (original)
+++ llvm/branches/release_38/include/llvm/IR/GlobalValue.h Tue Jan 19 12:26:37 
2016
@@ -346,6 +346,10 @@ public:
 return !(isDeclarationForLinker() || isWeakForLinker());
   }
 
+  // Returns true if the alignment of the value can be unilaterally
+  // increased.
+  bool canIncreaseAlignment() const;
+
   /// This method unlinks 'this' from the containing module, but does not 
delete
   /// it.
   virtual void removeFromParent() = 0;

Modified: llvm/branches/release_38/lib/CodeGen/CodeGenPrepare.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/lib/CodeGen/CodeGenPrepare.cpp?rev=258155&r1=258154&r2=258155&view=diff
==
--- llvm/branches/release_38/lib/CodeGen/CodeGenPrepare.cpp (original)
+++ llvm/branches/release_38/lib/CodeGen/CodeGenPrepare.cpp Tue Jan 19 12:26:37 
2016
@@ -1742,8 +1742,8 @@ bool CodeGenPrepare::optimizeCallInst(Ca
   // over-aligning global variables that have an explicit section is
   // forbidden.
   GlobalVariable *GV;
-  if ((GV = dyn_cast(Val)) && GV->hasUniqueInitializer() &&
-  !GV->hasSection() && GV->getAlignment() < PrefAlign &&
+  if ((GV = dyn_cast(Val)) && GV->canIncreaseAlignment() &&
+  GV->getAlignment() < PrefAlign &&
   DL->getTypeAllocSize(GV->getType()->getElementType()) >=
   MinSize + Offset2)
 GV->setAlignment(PrefAlign);

Modified: llvm/branches/release_38/lib/IR/Globals.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/lib/IR/Globals.cpp?rev=258155&r1=258154&r2=258155&view=diff
==
--- llvm/branches/release_38/lib/IR/Globals.cpp (original)
+++ llvm/branches/release_38/lib/IR/Globals.cpp Tue Jan 19 12:26:37 2016
@@ -12,11 +12,12 @@
 //
 
//===--===//
 
-#include "llvm/IR/GlobalValue.h"
 #include "llvm/ADT/SmallPtrSet.h"
+#include "llvm/ADT/Triple.h"
 #include "llvm/IR/Constants.h"
 #include "llvm/IR/DerivedTypes.h"
 #include "llvm/IR/GlobalAlias.h"
+#include "llvm/IR/GlobalValue.h"
 #include "llvm/IR/GlobalVariable.h"
 #include "llvm/IR/Module.h"
 #include "llvm/IR/Operator.h"
@@ -134,6 +135,47 @@ bool GlobalValue::isDeclaration() const
   re

[llvm-branch-commits] [llvm-branch] r258162 - Merging r257925, r257929, r257930, and r257997:

2016-01-19 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Jan 19 12:53:02 2016
New Revision: 258162

URL: http://llvm.org/viewvc/llvm-project?rev=258162&view=rev
Log:
Merging r257925, r257929, r257930, and r257997:

r257925 | mren | 2016-01-15 11:35:42 -0800 (Fri, 15 Jan 2016) | 10 lines

CXX_FAST_TLS calling convention: fix issue on X86-64.

When we have a single basic block, the explicit copy-back instructions should
be inserted right before the terminator. Before this fix, they were wrongly
placed at the beginning of the basic block.

I will commit fixes to other platforms as well.

PR26136



r257929 | mren | 2016-01-15 12:13:28 -0800 (Fri, 15 Jan 2016) | 10 lines

CXX_FAST_TLS calling convention: fix issue on AArch64.

When we have a single basic block, the explicit copy-back instructions should
be inserted right before the terminator. Before this fix, they were wrongly
placed at the beginning of the basic block.

I will commit fixes to other platforms as well.

PR26136



r257930 | mren | 2016-01-15 12:24:11 -0800 (Fri, 15 Jan 2016) | 8 lines

CXX_FAST_TLS calling convention: fix issue on ARM.

When we have a single basic block, the explicit copy-back instructions should
be inserted right before the terminator. Before this fix, they were wrongly
placed at the beginning of the basic block.

PR26136



r257997 | mren | 2016-01-16 08:39:46 -0800 (Sat, 16 Jan 2016) | 12 lines

CXX_FAST_TLS calling convention: fix issue on x86-64.

%RBP can't be handled explicitly. We generate the following code:
pushq %rbp
movq  %rsp, %rbp
...
movq  %rbx, (%rbp)  ## 8-byte Spill
where %rbp will be overwritten by the spilled value.

The fix is to let PEI handle %RBP.
PR26136


Modified:
llvm/branches/release_38/   (props changed)
llvm/branches/release_38/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/branches/release_38/lib/Target/ARM/ARMISelLowering.cpp
llvm/branches/release_38/lib/Target/X86/X86CallingConv.td
llvm/branches/release_38/lib/Target/X86/X86ISelLowering.cpp
llvm/branches/release_38/test/CodeGen/AArch64/cxx-tlscc.ll
llvm/branches/release_38/test/CodeGen/ARM/cxx-tlscc.ll
llvm/branches/release_38/test/CodeGen/X86/cxx_tlscc64.ll

Propchange: llvm/branches/release_38/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jan 19 12:53:02 2016
@@ -1,3 +1,3 @@
 /llvm/branches/Apple/Pertwee:110850,110961
 /llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,257645,257648,257730,257775,257791,257902,257905
+/llvm/trunk:155241,257645,257648,257730,257775,257791,257902,257905,257925,257929-257930,257997

Modified: llvm/branches/release_38/lib/Target/AArch64/AArch64ISelLowering.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/lib/Target/AArch64/AArch64ISelLowering.cpp?rev=258162&r1=258161&r2=258162&view=diff
==
--- llvm/branches/release_38/lib/Target/AArch64/AArch64ISelLowering.cpp 
(original)
+++ llvm/branches/release_38/lib/Target/AArch64/AArch64ISelLowering.cpp Tue Jan 
19 12:53:02 2016
@@ -10133,6 +10133,7 @@ void AArch64TargetLowering::insertCopies
 
   const TargetInstrInfo *TII = Subtarget->getInstrInfo();
   MachineRegisterInfo *MRI = &Entry->getParent()->getRegInfo();
+  MachineBasicBlock::iterator MBBI = Entry->begin();
   for (const MCPhysReg *I = IStart; *I; ++I) {
 const TargetRegisterClass *RC = nullptr;
 if (AArch64::GPR64RegClass.contains(*I))
@@ -10152,13 +10153,13 @@ void AArch64TargetLowering::insertCopies
Attribute::NoUnwind) &&
"Function should be nounwind in insertCopiesSplitCSR!");
 Entry->addLiveIn(*I);
-BuildMI(*Entry, Entry->begin(), DebugLoc(), TII->get(TargetOpcode::COPY),
-NewVR)
+BuildMI(*Entry, MBBI, DebugLoc(), TII->get(TargetOpcode::COPY), NewVR)
 .addReg(*I);
 
+// Insert the copy-back instructions right before the terminator.
 for (auto *Exit : Exits)
-  BuildMI(*Exit, Exit->begin(), DebugLoc(), TII->get(TargetOpcode::COPY),
-  *I)
+  BuildMI(*Exit, Exit->getFirstTerminator(), DebugLoc(),
+  TII->get(TargetOpcode::COPY), *I)
   .addReg(NewVR);
   }
 }

Modified: llvm/branches/release_38/lib/Target/ARM/ARMISelLowering.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/lib/Target/ARM/ARMISel

[llvm-branch-commits] [llvm-branch] r258170 - Merging r258168:

2016-01-19 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Jan 19 13:28:41 2016
New Revision: 258170

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

r258168 | hans | 2016-01-19 11:21:58 -0800 (Tue, 19 Jan 2016) | 3 lines

test-release.sh: Use CMake also for Darwin

This didn't work for 3.7, but hopefully it should work now.


Modified:
llvm/branches/release_38/   (props changed)
llvm/branches/release_38/utils/release/test-release.sh

Propchange: llvm/branches/release_38/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jan 19 13:28:41 2016
@@ -1,3 +1,3 @@
 /llvm/branches/Apple/Pertwee:110850,110961
 /llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,257645,257648,257730,257775,257791,257902,257905,257925,257929-257930,257997
+/llvm/trunk:155241,257645,257648,257730,257775,257791,257902,257905,257925,257929-257930,257997,258168

Modified: llvm/branches/release_38/utils/release/test-release.sh
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/utils/release/test-release.sh?rev=258170&r1=258169&r2=258170&view=diff
==
--- llvm/branches/release_38/utils/release/test-release.sh (original)
+++ llvm/branches/release_38/utils/release/test-release.sh Tue Jan 19 13:28:41 
2016
@@ -65,11 +65,6 @@ function usage() {
 echo " -no-openmp   Disable check-out & build libomp"
 }
 
-if [ `uname -s` = "Darwin" ]; then
-  # compiler-rt doesn't yet build with CMake on Darwin.
-  use_autoconf="yes"
-fi
-
 while [ $# -gt 0 ]; do
 case $1 in
 -release | --release )


___
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] r258180 - Merging r257875:

2016-01-19 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Jan 19 14:49:25 2016
New Revision: 258180

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

r257875 | jamesm | 2016-01-15 01:20:19 -0800 (Fri, 15 Jan 2016) | 11 lines

[InstCombine] Rewrite bswap/bitreverse handling completely.

There are several requirements that ended up with this design;
  1. Matching bitreversals is too heavyweight for InstCombine and doesn't 
really need to be done so early.
  2. Bitreversals and byteswaps are very related in their matching logic.
  3. We want to implement support for matching more advanced bswap/bitreverse 
patterns like partial bswaps/bitreverses.
  4. Bswaps are best matched early in InstCombine.

The result of these is that a new utility function is created in 
Transforms/Utils/Local.h that can be configured to search for bswaps, 
bitreverses or both. InstCombine uses it to find only bswaps, CGP uses it to 
find only bitreversals.

We can then extend the matching logic in one place only.


Added:
llvm/branches/release_38/test/Transforms/CodeGenPrepare/ARM/
  - copied from r257875, llvm/trunk/test/Transforms/CodeGenPrepare/ARM/
llvm/branches/release_38/test/Transforms/CodeGenPrepare/bitreverse-hang.ll
  - copied unchanged from r257875, 
llvm/trunk/test/Transforms/CodeGenPrepare/bitreverse-hang.ll
llvm/branches/release_38/test/Transforms/InstCombine/bitreverse-hang.ll
  - copied unchanged from r257875, 
llvm/trunk/test/Transforms/InstCombine/bitreverse-hang.ll
Removed:
llvm/branches/release_38/test/Transforms/InstCombine/bitreverse-recognize.ll
Modified:
llvm/branches/release_38/   (props changed)
llvm/branches/release_38/include/llvm/Transforms/Utils/Local.h
llvm/branches/release_38/lib/CodeGen/CodeGenPrepare.cpp
llvm/branches/release_38/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
llvm/branches/release_38/lib/Transforms/Utils/Local.cpp

Propchange: llvm/branches/release_38/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jan 19 14:49:25 2016
@@ -1,3 +1,3 @@
 /llvm/branches/Apple/Pertwee:110850,110961
 /llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,257645,257648,257730,257775,257791,257902,257905,257925,257929-257930,257997,258168
+/llvm/trunk:155241,257645,257648,257730,257775,257791,257875,257902,257905,257925,257929-257930,257997,258168

Modified: llvm/branches/release_38/include/llvm/Transforms/Utils/Local.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/include/llvm/Transforms/Utils/Local.h?rev=258180&r1=258179&r2=258180&view=diff
==
--- llvm/branches/release_38/include/llvm/Transforms/Utils/Local.h (original)
+++ llvm/branches/release_38/include/llvm/Transforms/Utils/Local.h Tue Jan 19 
14:49:25 2016
@@ -331,6 +331,25 @@ unsigned replaceDominatedUsesWith(Value
 /// during lowering by the GC infrastructure.
 bool callsGCLeafFunction(ImmutableCallSite CS);
 
+//===--===//
+//  Intrinsic pattern matching
+//
+
+/// Try and match a bitreverse or bswap idiom.
+///
+/// If an idiom is matched, an intrinsic call is inserted before \c I. Any 
added
+/// instructions are returned in \c InsertedInsts. They will all have been 
added
+/// to a basic block.
+///
+/// A bitreverse idiom normally requires around 2*BW nodes to be searched 
(where
+/// BW is the bitwidth of the integer type). A bswap idiom requires anywhere up
+/// to BW / 4 nodes to be searched, so is significantly faster.
+///
+/// This function returns true on a successful match or false otherwise.
+bool recognizeBitReverseOrBSwapIdiom(
+Instruction *I, bool MatchBSwaps, bool MatchBitReversals,
+SmallVectorImpl &InsertedInsts);
+
 } // End llvm namespace
 
 #endif

Modified: llvm/branches/release_38/lib/CodeGen/CodeGenPrepare.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/lib/CodeGen/CodeGenPrepare.cpp?rev=258180&r1=258179&r2=258180&view=diff
==
--- llvm/branches/release_38/lib/CodeGen/CodeGenPrepare.cpp (original)
+++ llvm/branches/release_38/lib/CodeGen/CodeGenPrepare.cpp Tue Jan 19 14:49:25 
2016
@@ -5211,6 +5211,24 @@ bool CodeGenPrepare::optimizeInst(Instru
   return false;
 }
 
+/// Given an OR instruction, check to see if this is a bitreverse
+/// idiom. If so, insert the new intrinsic and return true.
+static bool makeBitReverse(Instruction &I, const DataLayout &DL,
+   const TargetLowering &TLI) {
+  if (!I.getType()->isIntegerTy() ||
+  !TLI.isOperationLegalOrCustom(ISD::BITREVERSE,
+TLI.getValueType(DL, I.getType

[llvm-branch-commits] [llvm-tag] r258224 - Creating release directory for release_380.

2016-01-19 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Jan 19 17:40:41 2016
New Revision: 258224

URL: http://llvm.org/viewvc/llvm-project?rev=258224&view=rev
Log:
Creating release directory for release_380.

Added:
llvm/tags/RELEASE_380/

___
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] r258231 - Creating release directory for release_380.

2016-01-19 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Jan 19 17:40:55 2016
New Revision: 258231

URL: http://llvm.org/viewvc/llvm-project?rev=258231&view=rev
Log:
Creating release directory for release_380.

Added:
compiler-rt/tags/RELEASE_380/

___
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] r258226 - Creating release directory for release_380.

2016-01-19 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Jan 19 17:40:46 2016
New Revision: 258226

URL: http://llvm.org/viewvc/llvm-project?rev=258226&view=rev
Log:
Creating release directory for release_380.

Added:
cfe/tags/RELEASE_380/

___
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] r258232 - Creating release candidate rc1 from release_380 branch

2016-01-19 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Jan 19 17:40:57 2016
New Revision: 258232

URL: http://llvm.org/viewvc/llvm-project?rev=258232&view=rev
Log:
Creating release candidate rc1 from release_380 branch

Added:
compiler-rt/tags/RELEASE_380/rc1/
  - copied from r258231, compiler-rt/branches/release_38/

___
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] r258227 - Creating release candidate rc1 from release_380 branch

2016-01-19 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Jan 19 17:40:48 2016
New Revision: 258227

URL: http://llvm.org/viewvc/llvm-project?rev=258227&view=rev
Log:
Creating release candidate rc1 from release_380 branch

Added:
cfe/tags/RELEASE_380/rc1/   (props changed)
  - copied from r258226, cfe/branches/release_38/

Propchange: cfe/tags/RELEASE_380/rc1/
--
--- svn:ignore (added)
+++ svn:ignore Tue Jan 19 17:40:48 2016
@@ -0,0 +1,3 @@
+configure.out
+cscope.files
+cscope.out

Propchange: cfe/tags/RELEASE_380/rc1/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Tue Jan 19 17:40:48 2016
@@ -0,0 +1,4 @@
+/cfe/branches/type-system-rewrite:134693-134817
+/cfe/trunk:257652,257695
+/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] [llvm-tag] r258225 - Creating release candidate rc1 from release_380 branch

2016-01-19 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Jan 19 17:40:44 2016
New Revision: 258225

URL: http://llvm.org/viewvc/llvm-project?rev=258225&view=rev
Log:
Creating release candidate rc1 from release_380 branch

Added:
llvm/tags/RELEASE_380/rc1/   (props changed)
  - copied from r258224, llvm/branches/release_38/

Propchange: llvm/tags/RELEASE_380/rc1/
--
--- svn:ignore (added)
+++ svn:ignore Tue Jan 19 17:40:44 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/RELEASE_380/rc1/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Tue Jan 19 17:40:44 2016
@@ -0,0 +1,3 @@
+/llvm/branches/Apple/Pertwee:110850,110961
+/llvm/branches/type-system-rewrite:133420-134817
+/llvm/trunk:155241,257645,257648,257730,257775,257791,257875,257902,257905,257925,257929-257930,257997,258168


___
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] r258240 - Creating release candidate rc1 from release_380 branch

2016-01-19 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Jan 19 17:41:15 2016
New Revision: 258240

URL: http://llvm.org/viewvc/llvm-project?rev=258240&view=rev
Log:
Creating release candidate rc1 from release_380 branch

Added:
polly/tags/RELEASE_380/rc1/
  - copied from r258239, polly/branches/release_38/

___
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] r258242 - Creating release candidate rc1 from release_380 branch

2016-01-19 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Jan 19 17:41:20 2016
New Revision: 258242

URL: http://llvm.org/viewvc/llvm-project?rev=258242&view=rev
Log:
Creating release candidate rc1 from release_380 branch

Added:
lldb/tags/RELEASE_380/rc1/   (props changed)
  - copied from r258241, lldb/branches/release_38/

Propchange: lldb/tags/RELEASE_380/rc1/
--
--- svn:ignore (added)
+++ svn:ignore Tue Jan 19 17:41:20 2016
@@ -0,0 +1,4 @@
+build
+intermediates
+llvm
+llvm-build

Propchange: lldb/tags/RELEASE_380/rc1/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Tue Jan 19 17:41:20 2016
@@ -0,0 +1,3 @@
+/lldb/branches/apple/python-GIL:156467-162159
+/lldb/branches/iohandler:198360-200250
+/lldb/trunk:257691-257692


___
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] r258239 - Creating release directory for release_380.

2016-01-19 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Jan 19 17:41:13 2016
New Revision: 258239

URL: http://llvm.org/viewvc/llvm-project?rev=258239&view=rev
Log:
Creating release directory for release_380.

Added:
polly/tags/RELEASE_380/

___
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] r258241 - Creating release directory for release_380.

2016-01-19 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Jan 19 17:41:17 2016
New Revision: 258241

URL: http://llvm.org/viewvc/llvm-project?rev=258241&view=rev
Log:
Creating release directory for release_380.

Added:
lldb/tags/RELEASE_380/

___
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] r258237 - Creating release directory for release_380.

2016-01-19 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Jan 19 17:41:08 2016
New Revision: 258237

URL: http://llvm.org/viewvc/llvm-project?rev=258237&view=rev
Log:
Creating release directory for release_380.

Added:
clang-tools-extra/tags/RELEASE_380/

___
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] r258265 - [r257732] Mark remote-JIT tests as XFAIL, as well as win32, for targeting mingw32.

2016-01-19 Thread NAKAMURA Takumi via llvm-branch-commits
Author: chapuni
Date: Tue Jan 19 18:28:22 2016
New Revision: 258265

URL: http://llvm.org/viewvc/llvm-project?rev=258265&view=rev
Log:
[r257732] Mark remote-JIT tests as XFAIL, as well as win32, for targeting 
mingw32.

Modified:
llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/cross-module-a.ll
llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/multi-module-a.ll

llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/simpletest-remote.ll
llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/stubs-remote.ll

llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/test-common-symbols-remote.ll

llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/test-data-align-remote.ll

llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/test-fp-no-external-funcs-remote.ll

llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-remote.ll

llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll

llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-remote.ll

llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll

llvm/branches/release_38/test/ExecutionEngine/OrcMCJIT/remote/cross-module-a.ll

llvm/branches/release_38/test/ExecutionEngine/OrcMCJIT/remote/multi-module-a.ll

llvm/branches/release_38/test/ExecutionEngine/OrcMCJIT/remote/simpletest-remote.ll

llvm/branches/release_38/test/ExecutionEngine/OrcMCJIT/remote/stubs-remote.ll

llvm/branches/release_38/test/ExecutionEngine/OrcMCJIT/remote/test-common-symbols-remote.ll

llvm/branches/release_38/test/ExecutionEngine/OrcMCJIT/remote/test-data-align-remote.ll

llvm/branches/release_38/test/ExecutionEngine/OrcMCJIT/remote/test-fp-no-external-funcs-remote.ll

llvm/branches/release_38/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-remote.ll

llvm/branches/release_38/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll

llvm/branches/release_38/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-remote.ll

llvm/branches/release_38/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll

Modified: 
llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/cross-module-a.ll
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/cross-module-a.ll?rev=258265&r1=258264&r2=258265&view=diff
==
--- 
llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/cross-module-a.ll 
(original)
+++ 
llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/cross-module-a.ll 
Tue Jan 19 18:28:22 2016
@@ -1,5 +1,5 @@
 ; RUN: %lli -extra-module=%p/Inputs/cross-module-b.ll 
-disable-lazy-compilation=true -remote-mcjit 
-mcjit-remote-process=lli-child-target%exeext %s > /dev/null
-; XFAIL: win32
+; XFAIL: mingw32,win32
 
 declare i32 @FB()
 

Modified: 
llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/multi-module-a.ll
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/multi-module-a.ll?rev=258265&r1=258264&r2=258265&view=diff
==
--- 
llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/multi-module-a.ll 
(original)
+++ 
llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/multi-module-a.ll 
Tue Jan 19 18:28:22 2016
@@ -1,5 +1,5 @@
 ; RUN: %lli -extra-module=%p/Inputs/multi-module-b.ll 
-extra-module=%p/Inputs/multi-module-c.ll -disable-lazy-compilation=true 
-remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null
-; XFAIL: win32
+; XFAIL: mingw32,win32
 
 declare i32 @FB()
 

Modified: 
llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/simpletest-remote.ll
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/simpletest-remote.ll?rev=258265&r1=258264&r2=258265&view=diff
==
--- 
llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/simpletest-remote.ll 
(original)
+++ 
llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/simpletest-remote.ll 
Tue Jan 19 18:28:22 2016
@@ -1,5 +1,5 @@
 ; RUN: %lli -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > 
/dev/null
-; XFAIL: win32
+; XFAIL: mingw32,win32
 
 define i32 @bar() nounwind {
ret i32 0

Modified: 
llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/stubs-remote.ll
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/stubs-remote.ll?rev=258265&r1=258264&r2=258265&view=diff
==
--- llvm/branches/release_38/test/ExecutionEngine/MCJIT/remote/stubs-remote.ll 
(original)
+++ llvm/branches/relea

[llvm-branch-commits] [llvm-branch] r258266 - [r257857] lli: use llvm::utostr() instead of std::to_string().

2016-01-19 Thread NAKAMURA Takumi via llvm-branch-commits
Author: chapuni
Date: Tue Jan 19 18:32:09 2016
New Revision: 258266

URL: http://llvm.org/viewvc/llvm-project?rev=258266&view=rev
Log:
[r257857] lli: use llvm::utostr() instead of std::to_string().

Modified:
llvm/branches/release_38/tools/lli/lli.cpp

Modified: llvm/branches/release_38/tools/lli/lli.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/tools/lli/lli.cpp?rev=258266&r1=258265&r2=258266&view=diff
==
--- llvm/branches/release_38/tools/lli/lli.cpp (original)
+++ llvm/branches/release_38/tools/lli/lli.cpp Tue Jan 19 18:32:09 2016
@@ -16,6 +16,7 @@
 #include "OrcLazyJIT.h"
 #include "RemoteJITUtils.h"
 #include "llvm/IR/LLVMContext.h"
+#include "llvm/ADT/StringExtras.h"
 #include "llvm/ADT/Triple.h"
 #include "llvm/Bitcode/ReaderWriter.h"
 #include "llvm/CodeGen/LinkAllCodegenComponents.h"
@@ -741,11 +742,11 @@ std::unique_ptr launchRemo
   ChildPath.reset(new char[ChildExecPath.size() + 1]);
   std::copy(ChildExecPath.begin(), ChildExecPath.end(), &ChildPath[0]);
   ChildPath[ChildExecPath.size()] = '\0';
-  std::string ChildInStr = std::to_string(PipeFD[0][0]);
+  std::string ChildInStr = utostr(PipeFD[0][0]);
   ChildIn.reset(new char[ChildInStr.size() + 1]);
   std::copy(ChildInStr.begin(), ChildInStr.end(), &ChildIn[0]);
   ChildIn[ChildInStr.size()] = '\0';
-  std::string ChildOutStr = std::to_string(PipeFD[1][1]);
+  std::string ChildOutStr = utostr(PipeFD[1][1]);
   ChildOut.reset(new char[ChildOutStr.size() + 1]);
   std::copy(ChildOutStr.begin(), ChildOutStr.end(), &ChildOut[0]);
   ChildOut[ChildOutStr.size()] = '\0';


___
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] r258267 - Merging r257977:

2016-01-19 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Jan 19 18:48:30 2016
New Revision: 258267

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

r257977 | kfischer | 2016-01-15 17:11:33 -0800 (Fri, 15 Jan 2016) | 1 line

[DwarfDebug] Move MergeValues to .cpp, NFC

Merging r257979:

r257979 | kfischer | 2016-01-15 17:15:32 -0800 (Fri, 15 Jan 2016) | 11 lines

[DwarfDebug] Don't merge DebugLocEntries if their pieces overlap

Summary:
Later in DWARF emission we check that DebugLocEntries have
non-overlapping pieces, so we should create any such entries
by merging here.

Fixes PR26163.

Reviewers: aprantl
Differential Revision: http://reviews.llvm.org/D16249


Added:
llvm/branches/release_38/test/DebugInfo/ARM/PR26163.ll
  - copied unchanged from r257979, llvm/trunk/test/DebugInfo/ARM/PR26163.ll
Modified:
llvm/branches/release_38/   (props changed)
llvm/branches/release_38/lib/CodeGen/AsmPrinter/DebugLocEntry.h
llvm/branches/release_38/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

Propchange: llvm/branches/release_38/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jan 19 18:48:30 2016
@@ -1,3 +1,3 @@
 /llvm/branches/Apple/Pertwee:110850,110961
 /llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,257645,257648,257730,257775,257791,257875,257902,257905,257925,257929-257930,257997,258168
+/llvm/trunk:155241,257645,257648,257730,257775,257791,257875,257902,257905,257925,257929-257930,257977,257979,257997,258168

Modified: llvm/branches/release_38/lib/CodeGen/AsmPrinter/DebugLocEntry.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/lib/CodeGen/AsmPrinter/DebugLocEntry.h?rev=258267&r1=258266&r2=258267&view=diff
==
--- llvm/branches/release_38/lib/CodeGen/AsmPrinter/DebugLocEntry.h (original)
+++ llvm/branches/release_38/lib/CodeGen/AsmPrinter/DebugLocEntry.h Tue Jan 19 
18:48:30 2016
@@ -93,18 +93,7 @@ public:
   /// variable, merge them by appending Next's values to the current
   /// list of values.
   /// Return true if the merge was successful.
-  bool MergeValues(const DebugLocEntry &Next) {
-if (Begin == Next.Begin) {
-  auto *Expr = cast_or_null(Values[0].Expression);
-  auto *NextExpr = cast_or_null(Next.Values[0].Expression);
-  if (Expr->isBitPiece() && NextExpr->isBitPiece()) {
-addValues(Next.Values);
-End = Next.End;
-return true;
-  }
-}
-return false;
-  }
+  bool MergeValues(const DebugLocEntry &Next);
 
   /// \brief Attempt to merge this DebugLocEntry with Next and return
   /// true if the merge was successful. Entries can be merged if they

Modified: llvm/branches/release_38/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=258267&r1=258266&r2=258267&view=diff
==
--- llvm/branches/release_38/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)
+++ llvm/branches/release_38/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Tue Jan 19 
18:48:30 2016
@@ -805,6 +805,24 @@ static bool piecesOverlap(const DIExpres
   return (l1 < r2) && (l2 < r1);
 }
 
+/// \brief If this and Next are describing different pieces of the same
+/// variable, merge them by appending Next's values to the current
+/// list of values.
+/// Return true if the merge was successful.
+bool DebugLocEntry::MergeValues(const DebugLocEntry &Next) {
+  if (Begin == Next.Begin) {
+auto *Expr = cast_or_null(Values[0].Expression);
+auto *NextExpr = cast_or_null(Next.Values[0].Expression);
+if (Expr->isBitPiece() && NextExpr->isBitPiece() &&
+!piecesOverlap(Expr, NextExpr)) {
+  addValues(Next.Values);
+  End = Next.End;
+  return true;
+}
+  }
+  return false;
+}
+
 /// Build the location list for all DBG_VALUEs in the function that
 /// describe the same variable.  If the ranges of several independent
 /// pieces of the same variable overlap partially, split them up and


___
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] r258268 - Merging r258207:

2016-01-19 Thread Quentin Colombet via llvm-branch-commits
Author: qcolombet
Date: Tue Jan 19 19:09:12 2016
New Revision: 258268

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

r258207 | qcolombet | 2016-01-19 14:31:12 -0800 (Tue, 19 Jan 2016) | 1 line

[MachineFunction] Constify getter. NFC.


Modified:
llvm/branches/release_38/   (props changed)
llvm/branches/release_38/include/llvm/CodeGen/MachineFunction.h
llvm/branches/release_38/lib/CodeGen/MachineFunction.cpp

Propchange: llvm/branches/release_38/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jan 19 19:09:12 2016
@@ -1,3 +1,3 @@
 /llvm/branches/Apple/Pertwee:110850,110961
 /llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,257645,257648,257730,257775,257791,257875,257902,257905,257925,257929-257930,257977,257979,257997,258168
+/llvm/trunk:155241,257645,257648,257730,257775,257791,257875,257902,257905,257925,257929-257930,257977,257979,257997,258168,258207

Modified: llvm/branches/release_38/include/llvm/CodeGen/MachineFunction.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/include/llvm/CodeGen/MachineFunction.h?rev=258268&r1=258267&r2=258268&view=diff
==
--- llvm/branches/release_38/include/llvm/CodeGen/MachineFunction.h (original)
+++ llvm/branches/release_38/include/llvm/CodeGen/MachineFunction.h Tue Jan 19 
19:09:12 2016
@@ -295,7 +295,7 @@ public:
   }
 
   /// Should we be emitting segmented stack stuff for the function
-  bool shouldSplitStack();
+  bool shouldSplitStack() const;
 
   /// getNumBlockIDs - Return the number of MBB ID's allocated.
   ///

Modified: llvm/branches/release_38/lib/CodeGen/MachineFunction.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/lib/CodeGen/MachineFunction.cpp?rev=258268&r1=258267&r2=258268&view=diff
==
--- llvm/branches/release_38/lib/CodeGen/MachineFunction.cpp (original)
+++ llvm/branches/release_38/lib/CodeGen/MachineFunction.cpp Tue Jan 19 
19:09:12 2016
@@ -163,7 +163,7 @@ getOrCreateJumpTableInfo(unsigned EntryK
 }
 
 /// Should we be emitting segmented stack stuff for the function
-bool MachineFunction::shouldSplitStack() {
+bool MachineFunction::shouldSplitStack() const {
   return getFunction()->hasFnAttribute("split-stack");
 }
 


___
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] r258269 - Merging r258221:

2016-01-19 Thread Quentin Colombet via llvm-branch-commits
Author: qcolombet
Date: Tue Jan 19 19:14:03 2016
New Revision: 258269

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

r258221 | qcolombet | 2016-01-19 15:29:03 -0800 (Tue, 19 Jan 2016) | 8 lines

[X86] Do not run shrink-wrapping on function with split-stack attribute or HiPE
calling convention.
The implementation of the related callbacks in the x86 backend for such
functions are not ready to deal with a prologue block that is not the entry
block of the function.

This fixes PR26107, but the longer term solution would be to fix those 
callbacks.



Modified:
llvm/branches/release_38/   (props changed)
llvm/branches/release_38/lib/Target/X86/X86FrameLowering.cpp
llvm/branches/release_38/test/CodeGen/X86/x86-shrink-wrap-unwind.ll

Propchange: llvm/branches/release_38/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jan 19 19:14:03 2016
@@ -1,3 +1,3 @@
 /llvm/branches/Apple/Pertwee:110850,110961
 /llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,257645,257648,257730,257775,257791,257875,257902,257905,257925,257929-257930,257977,257979,257997,258168,258207
+/llvm/trunk:155241,257645,257648,257730,257775,257791,257875,257902,257905,257925,257929-257930,257977,257979,257997,258168,258207,258221

Modified: llvm/branches/release_38/lib/Target/X86/X86FrameLowering.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/lib/Target/X86/X86FrameLowering.cpp?rev=258269&r1=258268&r2=258269&view=diff
==
--- llvm/branches/release_38/lib/Target/X86/X86FrameLowering.cpp (original)
+++ llvm/branches/release_38/lib/Target/X86/X86FrameLowering.cpp Tue Jan 19 
19:14:03 2016
@@ -2031,6 +2031,10 @@ void X86FrameLowering::adjustForSegmente
   unsigned TlsReg, TlsOffset;
   DebugLoc DL;
 
+  // To support shrink-wrapping we would need to insert the new blocks
+  // at the right place and update the branches to PrologueMBB.
+  assert(&(*MF.begin()) == &PrologueMBB && "Shrink-wrapping not supported 
yet");
+
   unsigned ScratchReg = GetScratchRegister(Is64Bit, IsLP64, MF, true);
   assert(!MF.getRegInfo().isLiveIn(ScratchReg) &&
  "Scratch register is live-in");
@@ -2271,6 +2275,11 @@ void X86FrameLowering::adjustForHiPEProl
 MachineFunction &MF, MachineBasicBlock &PrologueMBB) const {
   MachineFrameInfo *MFI = MF.getFrameInfo();
   DebugLoc DL;
+
+  // To support shrink-wrapping we would need to insert the new blocks
+  // at the right place and update the branches to PrologueMBB.
+  assert(&(*MF.begin()) == &PrologueMBB && "Shrink-wrapping not supported 
yet");
+
   // HiPE-specific values
   const unsigned HipeLeafWords = 24;
   const unsigned CCRegisteredArgs = Is64Bit ? 6 : 5;
@@ -2584,7 +2593,14 @@ bool X86FrameLowering::canUseAsEpilogue(
 bool X86FrameLowering::enableShrinkWrapping(const MachineFunction &MF) const {
   // If we may need to emit frameless compact unwind information, give
   // up as this is currently broken: PR25614.
-  return MF.getFunction()->hasFnAttribute(Attribute::NoUnwind) || hasFP(MF);
+  return (MF.getFunction()->hasFnAttribute(Attribute::NoUnwind) || hasFP(MF)) 
&&
+ // The lowering of segmented stack and HiPE only support entry blocks
+ // as prologue blocks: PR26107.
+ // This limitation may be lifted if we fix:
+ // - adjustForSegmentedStacks
+ // - adjustForHiPEPrologue
+ MF.getFunction()->getCallingConv() != CallingConv::HiPE &&
+ !MF.shouldSplitStack();
 }
 
 MachineBasicBlock::iterator X86FrameLowering::restoreWin32EHStackPointers(

Modified: llvm/branches/release_38/test/CodeGen/X86/x86-shrink-wrap-unwind.ll
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/test/CodeGen/X86/x86-shrink-wrap-unwind.ll?rev=258269&r1=258268&r2=258269&view=diff
==
--- llvm/branches/release_38/test/CodeGen/X86/x86-shrink-wrap-unwind.ll 
(original)
+++ llvm/branches/release_38/test/CodeGen/X86/x86-shrink-wrap-unwind.ll Tue Jan 
19 19:14:03 2016
@@ -1,11 +1,5 @@
 ; RUN: llc %s -o - | FileCheck %s --check-prefix=CHECK
 ;
-; This test checks that we do not use shrink-wrapping when
-; the function does not have any frame pointer and may unwind.
-; This is a workaround for a limitation in the emission of
-; the CFI directives, that are not correct in such case.
-; PR25614
-;
 ; Note: This test cannot be merged with the shrink-wrapping tests
 ; because the booleans set on the command line take precedence on
 ; the target logic that disable shrink-wrapping.
@@ -13,6 +7,12 @@ target datalayout = "e-m:o-i64:64-i128:1
 target triple = "x86_64-apple-macosx"
 
 
+; This test checks that we do