Re: [llvm-branch-commits] [llvm] 6a7fc3e - Foo

2021-06-12 Thread Joerg Sonnenberger via llvm-branch-commits
On Fri, Jun 11, 2021 at 06:30:47AM -0700, Florian Hahn via llvm-branch-commits 
wrote:
> 
> Author: Florian Hahn
> Date: 2021-06-11T14:06:37+01:00
> New Revision: 6a7fc3e02d1fcf08189cbf87091967845557c4fe
> 
> URL: 
> https://github.com/llvm/llvm-project/commit/6a7fc3e02d1fcf08189cbf87091967845557c4fe
> DIFF: 
> https://github.com/llvm/llvm-project/commit/6a7fc3e02d1fcf08189cbf87091967845557c4fe.diff
> 
> LOG: Foo

If this commit and the next were intentional, can you revert them please
and recommit with a proper commit message?

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


Re: [llvm-branch-commits] [libcxx] 344c7a1 - Add basic C++ library support.

2021-10-07 Thread Joerg Sonnenberger via llvm-branch-commits
On Thu, Sep 30, 2021 at 12:43:41AM -0700, Konstantin Schwarz via 
llvm-branch-commits wrote:
> 
> Author: Konstantin Schwarz
> Date: 2019-01-17T12:24:02+01:00
> New Revision: 344c7a13c1e0d48c89165365d9637dc0bef408a2
> 
> URL: 
> https://github.com/llvm/llvm-project/commit/344c7a13c1e0d48c89165365d9637dc0bef408a2
> DIFF: 
> https://github.com/llvm/llvm-project/commit/344c7a13c1e0d48c89165365d9637dc0bef408a2.diff
> 
> LOG: Add basic C++ library support.

Independent of the question of whether this branch should have been in
the main repo, this is a *very* poor commit message.

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


[llvm-branch-commits] [cfe-branch] r270602 - Merging r262838:

2016-05-24 Thread Joerg Sonnenberger via llvm-branch-commits
Author: joerg
Date: Tue May 24 14:36:54 2016
New Revision: 270602

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

r262838 | joerg | 2016-03-07 18:19:15 +0100 (Mon, 07 Mar 2016) | 2 lines

Implement __builtin_eh_return_data_regno for SPARC and SPARC64.



Added:
cfe/branches/release_38/test/CodeGen/builtins-sparc.c
Modified:
cfe/branches/release_38/lib/Basic/Targets.cpp

Modified: cfe/branches/release_38/lib/Basic/Targets.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_38/lib/Basic/Targets.cpp?rev=270602&r1=270601&r2=270602&view=diff
==
--- cfe/branches/release_38/lib/Basic/Targets.cpp (original)
+++ cfe/branches/release_38/lib/Basic/Targets.cpp Tue May 24 14:36:54 2016
@@ -5845,6 +5845,12 @@ public:
   SparcTargetInfo(const llvm::Triple &Triple)
   : TargetInfo(Triple), SoftFloat(false) {}
 
+  int getEHDataRegisterNumber(unsigned RegNo) const override {
+if (RegNo == 0) return 24;
+if (RegNo == 1) return 25;
+return -1;
+  }
+
   bool handleTargetFeatures(std::vector &Features,
 DiagnosticsEngine &Diags) override {
 // The backend doesn't actually handle soft float yet, but in case someone

Added: cfe/branches/release_38/test/CodeGen/builtins-sparc.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_38/test/CodeGen/builtins-sparc.c?rev=270602&view=auto
==
--- cfe/branches/release_38/test/CodeGen/builtins-sparc.c (added)
+++ cfe/branches/release_38/test/CodeGen/builtins-sparc.c Tue May 24 14:36:54 
2016
@@ -0,0 +1,10 @@
+// REQUIRES: sparc-registered-target
+// RUN: %clang_cc1 -triple sparc-unknown-unknown -emit-llvm %s -o - | 
FileCheck %s
+// RUN: %clang_cc1 -triple sparc64-unknown-unknown -emit-llvm %s -o - | 
FileCheck %s
+
+void test_eh_return_data_regno(void)
+{
+  volatile int res;
+  res = __builtin_eh_return_data_regno(0);  // CHECK: store volatile i32 24
+  res = __builtin_eh_return_data_regno(1);  // CHECK: store volatile i32 25
+}


___
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] r271394 - Merging rr261430:

2016-06-01 Thread Joerg Sonnenberger via llvm-branch-commits
Author: joerg
Date: Wed Jun  1 09:10:10 2016
New Revision: 271394

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

r261430 | joerg | 2016-02-20 12:24:44 +0100 (Sat, 20 Feb 2016) | 15 lines

When MemoryDependenceAnalysis hits a CFG with many transparent blocks,
the algorithm easily degrades into quadratic memory and time complexity.
The easiest example is a long chain of BBs that don't otherwise use a
location. The caching will add an entry for every intermediate block and
limiting the number of results doesn't help as no results are produced
until a definition is found.

Introduce a limit similar to the existing instructions-per-block limit.
This limit counts the total number of blocks checked. If the limit is
reached, entries are considered unknown. The initial value is 1000,
which avoids regressions for normal sized functions while still
limiting edge cases to reasnable memory consumption and execution time.

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



Modified:
llvm/branches/release_38/lib/Analysis/MemoryDependenceAnalysis.cpp
llvm/branches/release_38/utils/release/merge.sh

Modified: llvm/branches/release_38/lib/Analysis/MemoryDependenceAnalysis.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/lib/Analysis/MemoryDependenceAnalysis.cpp?rev=271394&r1=271393&r2=271394&view=diff
==
--- llvm/branches/release_38/lib/Analysis/MemoryDependenceAnalysis.cpp 
(original)
+++ llvm/branches/release_38/lib/Analysis/MemoryDependenceAnalysis.cpp Wed Jun  
1 09:10:10 2016
@@ -57,6 +57,11 @@ static cl::opt BlockScanLimit(
 cl::desc("The number of instructions to scan in a block in memory "
  "dependency analysis (default = 100)"));
 
+static cl::opt BlockNumberLimit(
+"memdep-block-number-limit", cl::Hidden, cl::init(1000),
+cl::desc("The number of blocks to scan during memory "
+ "dependency analysis (default = 1000)"));
+
 // Limit on the number of memdep results to process.
 static const unsigned int NumResultsLimit = 100;
 
@@ -1246,6 +1251,8 @@ bool MemoryDependenceAnalysis::getNonLoc
   // won't get any reuse from currently inserted values, because we don't
   // revisit blocks after we insert info for them.
   unsigned NumSortedEntries = Cache->size();
+  unsigned WorklistEntries = BlockNumberLimit;
+  bool GotWorklistLimit = false;
   DEBUG(AssertSorted(*Cache));
 
   while (!Worklist.empty()) {
@@ -1324,6 +1331,15 @@ bool MemoryDependenceAnalysis::getNonLoc
   goto PredTranslationFailure;
 }
   }
+  if (NewBlocks.size() > WorklistEntries) {
+// Make sure to clean up the Visited map before continuing on to
+// PredTranslationFailure.
+for (unsigned i = 0; i < NewBlocks.size(); i++)
+  Visited.erase(NewBlocks[i]);
+GotWorklistLimit = true;
+goto PredTranslationFailure;
+  }
+  WorklistEntries -= NewBlocks.size();
   Worklist.append(NewBlocks.begin(), NewBlocks.end());
   continue;
 }
@@ -1469,18 +1485,22 @@ bool MemoryDependenceAnalysis::getNonLoc
 if (SkipFirstBlock)
   return true;
 
-for (NonLocalDepInfo::reverse_iterator I = Cache->rbegin(); ; ++I) {
-  assert(I != Cache->rend() && "Didn't find current block??");
-  if (I->getBB() != BB)
+bool foundBlock = false;
+for (NonLocalDepEntry &I: llvm::reverse(*Cache)) {
+  if (I.getBB() != BB)
 continue;
 
-  assert((I->getResult().isNonLocal() || !DT->isReachableFromEntry(BB)) &&
+  assert((GotWorklistLimit || I.getResult().isNonLocal() || \
+  !DT->isReachableFromEntry(BB)) &&
  "Should only be here with transparent block");
-  I->setResult(MemDepResult::getUnknown());
-  Result.push_back(NonLocalDepResult(I->getBB(), I->getResult(),
+  foundBlock = true;
+  I.setResult(MemDepResult::getUnknown());
+  Result.push_back(NonLocalDepResult(I.getBB(), I.getResult(),
  Pointer.getAddr()));
   break;
 }
+(void)foundBlock;
+assert((foundBlock || GotWorklistLimit) && "Current block not in cache?");
   }
 
   // Okay, we're done now.  If we added new values to the cache, re-sort it.

Modified: llvm/branches/release_38/utils/release/merge.sh
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/utils/release/merge.sh?rev=271394&r1=271393&r2=271394&view=diff
==
--- llvm/branches/release_38/utils/release/merge.sh (original)
+++ llvm/branches/release_38/utils/release/merge.sh Wed Jun  1 09:10:10 2016
@@ -17,12 +17,14 @@ set -e
 rev=""
 proj=""
 revert="no"
+srcdir=""
 
-function usage() {
+usage() {
 echo "usage: `basenam

[llvm-branch-commits] [llvm-branch] r271395 - Revert unintentional change.

2016-06-01 Thread Joerg Sonnenberger via llvm-branch-commits
Author: joerg
Date: Wed Jun  1 09:11:09 2016
New Revision: 271395

URL: http://llvm.org/viewvc/llvm-project?rev=271395&view=rev
Log:
Revert unintentional change.

Modified:
llvm/branches/release_38/utils/release/merge.sh

Modified: llvm/branches/release_38/utils/release/merge.sh
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/utils/release/merge.sh?rev=271395&r1=271394&r2=271395&view=diff
==
--- llvm/branches/release_38/utils/release/merge.sh (original)
+++ llvm/branches/release_38/utils/release/merge.sh Wed Jun  1 09:11:09 2016
@@ -17,14 +17,12 @@ set -e
 rev=""
 proj=""
 revert="no"
-srcdir=""
 
-usage() {
+function usage() {
 echo "usage: `basename $0` [OPTIONS]"
 echo "  -proj PROJECT  The project to merge the result into"
 echo "  -rev NUM   The revision to merge into the project"
 echo "  -revertRevert rather than merge the commit"
-echo "  -srcdirThe root of the project checkout"
 }
 
 while [ $# -gt 0 ]; do
@@ -37,10 +35,6 @@ while [ $# -gt 0 ]; do
 shift
 proj=$1
 ;;
---srcdir | -srcdir | -s)
-shift
-srcdir=$1
-;;
 -h | -help | --help )
 usage
 ;;
@@ -57,10 +51,6 @@ while [ $# -gt 0 ]; do
 shift
 done
 
-if [ -z "$srcdir" ]; then
-srcdir="$proj.src"
-fi
-
 if [ "x$rev" = "x" -o "x$proj" = "x" ]; then
 echo "error: need to specify project and revision"
 echo
@@ -82,7 +72,7 @@ else
 fi
 svn log -c $rev http://llvm.org/svn/llvm-project/$proj/trunk >> $tempfile 2>&1
 
-cd "$srcdir"
+cd $proj.src
 echo "# Updating tree"
 svn up
 


___
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] r278388 - Merging r271801:

2016-08-11 Thread Joerg Sonnenberger via llvm-branch-commits
Author: joerg
Date: Thu Aug 11 13:47:43 2016
New Revision: 278388

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

r271801 | joerg | 2016-06-04 22:03:26 +0200 (Sa, 04 Jun 2016) | 3 lines

Add PIE magic for NetBSD. Add tests for the correct flags for
non-shared, PIE and shared output mode.



Modified:
cfe/branches/release_38/lib/Driver/Tools.cpp
cfe/branches/release_38/test/Driver/netbsd.c

Modified: cfe/branches/release_38/lib/Driver/Tools.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_38/lib/Driver/Tools.cpp?rev=278388&r1=278387&r2=278388&view=diff
==
--- cfe/branches/release_38/lib/Driver/Tools.cpp (original)
+++ cfe/branches/release_38/lib/Driver/Tools.cpp Thu Aug 11 13:47:43 2016
@@ -8181,6 +8181,7 @@ void netbsd::Linker::ConstructJob(Compil
 if (Args.hasArg(options::OPT_shared)) {
   CmdArgs.push_back("-Bshareable");
 } else {
+  Args.AddAllArgs(CmdArgs, options::OPT_pie);
   CmdArgs.push_back("-dynamic-linker");
   CmdArgs.push_back("/libexec/ld.elf_so");
 }
@@ -8282,15 +8283,15 @@ void netbsd::Linker::ConstructJob(Compil
 if (!Args.hasArg(options::OPT_shared)) {
   CmdArgs.push_back(
   Args.MakeArgString(getToolChain().GetFilePath("crt0.o")));
+}
+CmdArgs.push_back(
+Args.MakeArgString(getToolChain().GetFilePath("crti.o")));
+if (Args.hasArg(options::OPT_shared) || Args.hasArg(options::OPT_pie)) {
   CmdArgs.push_back(
-  Args.MakeArgString(getToolChain().GetFilePath("crti.o")));
-  CmdArgs.push_back(
-  Args.MakeArgString(getToolChain().GetFilePath("crtbegin.o")));
+  Args.MakeArgString(getToolChain().GetFilePath("crtbeginS.o")));
 } else {
   CmdArgs.push_back(
-  Args.MakeArgString(getToolChain().GetFilePath("crti.o")));
-  CmdArgs.push_back(
-  Args.MakeArgString(getToolChain().GetFilePath("crtbeginS.o")));
+  Args.MakeArgString(getToolChain().GetFilePath("crtbegin.o")));
 }
   }
 
@@ -8356,12 +8357,12 @@ void netbsd::Linker::ConstructJob(Compil
   }
 
   if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles)) {
-if (!Args.hasArg(options::OPT_shared))
+if (Args.hasArg(options::OPT_shared) || Args.hasArg(options::OPT_pie))
   CmdArgs.push_back(
-  Args.MakeArgString(getToolChain().GetFilePath("crtend.o")));
+  Args.MakeArgString(getToolChain().GetFilePath("crtendS.o")));
 else
   CmdArgs.push_back(
-  Args.MakeArgString(getToolChain().GetFilePath("crtendS.o")));
+  Args.MakeArgString(getToolChain().GetFilePath("crtend.o")));
 
CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crtn.o")));
   }
 

Modified: cfe/branches/release_38/test/Driver/netbsd.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_38/test/Driver/netbsd.c?rev=278388&r1=278387&r2=278388&view=diff
==
--- cfe/branches/release_38/test/Driver/netbsd.c (original)
+++ cfe/branches/release_38/test/Driver/netbsd.c Thu Aug 11 13:47:43 2016
@@ -1,5 +1,15 @@
 // RUN: %clang -no-canonical-prefixes -target x86_64--netbsd \
 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
+// RUN: | FileCheck -check-prefix=STATIC %s
+// RUN: %clang -no-canonical-prefixes -target x86_64--netbsd \
+// RUN: -pie --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
+// RUN: | FileCheck -check-prefix=PIE %s
+// RUN: %clang -no-canonical-prefixes -target x86_64--netbsd \
+// RUN: -shared --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
+// RUN: | FileCheck -check-prefix=SHARED %s
+
+// RUN: %clang -no-canonical-prefixes -target x86_64--netbsd \
+// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
 // RUN: | FileCheck -check-prefix=X86_64 %s
 // RUN: %clang -no-canonical-prefixes -target x86_64--netbsd7.0.0 \
 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
@@ -105,6 +115,32 @@
 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
 // RUN: | FileCheck -check-prefix=S-POWERPC64 %s
 
+// STATIC: ld{{.*}}"
+// STATIC-NOT: "-pie"
+// STATIC-NOT: "-Bshareable"
+// STATIC: "-dynamic-linker" "/libexec/ld.elf_so"
+// STATIC-NOT: "-pie"
+// STATIC-NOT: "-Bshareable"
+// STATIC: "{{.*}}/usr/lib{{/|}}crt0.o"
+// STATIC: "{{.*}}/usr/lib{{/|}}crti.o" 
"{{.*}}/usr/lib{{/|}}crtbegin.o"
+// STATIC: "{{.*}}/usr/lib{{/|}}crtend.o" "{{.*}}/usr/lib{{/|}}crtn.o"
+
+// SHARED: ld{{.*}}"
+// SHARED-NOT: "-pie"
+// SHARED-NOT: "-dynamic-linker"
+// SHARED-NOT: "{{.*}}/usr/lib{{/|}}crt0.o"
+// SHARED: "{{.*}}/usr/lib{{/|}}crti.o" 
"{{.*}}/usr/lib{{/|}}crtbeginS.o"
+// SHARED: "{{.*}}/usr/lib{{/|}}crtendS.o" "{{.*}}/usr/lib{{/|\\

[llvm-branch-commits] [cfe-branch] r292451 - Merging r292119:

2017-01-18 Thread Joerg Sonnenberger via llvm-branch-commits
Author: joerg
Date: Wed Jan 18 18:10:50 2017
New Revision: 292451

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

r292119 | joerg | 2017-01-16 15:07:24 +0100 (Mo, 16. Jan 2017) | 3 Zeilen

Ensure that clang -pthread creates the right macro. -D_POSIX_THREADS
seems to have been a C&P error from old GCC specs for OpenBSD.



Modified:
cfe/branches/release_40/lib/Basic/Targets.cpp
cfe/branches/release_40/test/Driver/netbsd.c

Modified: cfe/branches/release_40/lib/Basic/Targets.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_40/lib/Basic/Targets.cpp?rev=292451&r1=292450&r2=292451&view=diff
==
--- cfe/branches/release_40/lib/Basic/Targets.cpp (original)
+++ cfe/branches/release_40/lib/Basic/Targets.cpp Wed Jan 18 18:10:50 2017
@@ -512,7 +512,7 @@ protected:
 Builder.defineMacro("__unix__");
 Builder.defineMacro("__ELF__");
 if (Opts.POSIXThreads)
-  Builder.defineMacro("_POSIX_THREADS");
+  Builder.defineMacro("_REENTRANT");
 
 switch (Triple.getArch()) {
 default:

Modified: cfe/branches/release_40/test/Driver/netbsd.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_40/test/Driver/netbsd.c?rev=292451&r1=292450&r2=292451&view=diff
==
--- cfe/branches/release_40/test/Driver/netbsd.c (original)
+++ cfe/branches/release_40/test/Driver/netbsd.c Wed Jan 18 18:10:50 2017
@@ -126,6 +126,8 @@
 // RUN: %clang -no-canonical-prefixes -target powerpc64--netbsd -static \
 // RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
 // RUN: | FileCheck -check-prefix=S-POWERPC64 %s
+// RUN: %clang -target x86_64--netbsd -pthread -dM -E %s \
+// RUN: | FileCheck -check-prefix=PTHREAD %s
 
 // STATIC: ld{{.*}}" "--eh-frame-hdr"
 // STATIC-NOT: "-pie"
@@ -427,3 +429,7 @@
 // S-POWERPC64: "{{.*}}/usr/lib{{/|}}crti.o"
 // S-POWERPC64: "{{.*}}/usr/lib{{/|}}crtbegin.o" "{{.*}}.o" "-lc"
 // S-POWERPC64: "{{.*}}/usr/lib{{/|}}crtend.o" 
"{{.*}}/usr/lib{{/|}}crtn.o"
+
+// PTHREAD-NOT: _POSIX_THREADS
+// PTHREAD: _REENTRANT
+// PTHREAD-NOT: _POSIX_THREADS


___
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] r292453 - Merging r292244:

2017-01-18 Thread Joerg Sonnenberger via llvm-branch-commits
Author: joerg
Date: Wed Jan 18 18:19:28 2017
New Revision: 292453

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

r292244 | joerg | 2017-01-17 20:29:15 +0100 (Di, 17. Jan 2017) | 2 Zeilen

Remove an overeager assert from r288844.



Modified:
llvm/branches/release_40/lib/Target/X86/X86Subtarget.cpp
llvm/branches/release_40/test/CodeGen/X86/slow-pmulld.ll

Modified: llvm/branches/release_40/lib/Target/X86/X86Subtarget.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_40/lib/Target/X86/X86Subtarget.cpp?rev=292453&r1=292452&r2=292453&view=diff
==
--- llvm/branches/release_40/lib/Target/X86/X86Subtarget.cpp (original)
+++ llvm/branches/release_40/lib/Target/X86/X86Subtarget.cpp Wed Jan 18 
18:19:28 2017
@@ -232,9 +232,6 @@ void X86Subtarget::initSubtargetFeatures
   else if (isTargetDarwin() || isTargetLinux() || isTargetSolaris() ||
isTargetKFreeBSD() || In64BitMode)
 stackAlignment = 16;
-
-  assert((!isPMULLDSlow() || hasSSE41()) &&
- "Feature Slow PMULLD can only be set on a subtarget with SSE4.1");
 }
 
 void X86Subtarget::initializeEnvironment() {

Modified: llvm/branches/release_40/test/CodeGen/X86/slow-pmulld.ll
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_40/test/CodeGen/X86/slow-pmulld.ll?rev=292453&r1=292452&r2=292453&view=diff
==
--- llvm/branches/release_40/test/CodeGen/X86/slow-pmulld.ll (original)
+++ llvm/branches/release_40/test/CodeGen/X86/slow-pmulld.ll Wed Jan 18 
18:19:28 2017
@@ -4,6 +4,9 @@
 ; RUN: llc < %s -mtriple=i386-unknown-unknown -mattr=+sse4.1 | FileCheck %s 
--check-prefix=SSE4-32
 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+sse4.1 | FileCheck %s 
--check-prefix=SSE4-64
 
+; Make sure that the slow-pmulld feature can be used without SSE4.1.
+; RUN: llc < %s -mtriple=i386-unknown-unknown -mcpu=silvermont -mattr=-sse4.1
+
 define <4 x i32> @foo(<4 x i8> %A) {
 ; CHECK32-LABEL: foo:
 ; CHECK32:   # BB#0:


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


Re: [llvm-branch-commits] [llvm-branch] r292731 - LLVM 4.0: cherry-pick r292667 [ThinLTO] The "codegen only" path didn't honor the recently added file-based API

2017-01-21 Thread Joerg Sonnenberger via llvm-branch-commits
On Sat, Jan 21, 2017 at 10:08:38PM -, Mehdi Amini via llvm-branch-commits 
wrote:
> Author: mehdi_amini
> Date: Sat Jan 21 16:08:38 2017
> New Revision: 292731
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=292731&view=rev
> Log:
> LLVM 4.0: cherry-pick r292667 [ThinLTO] The "codegen only" path didn't honor 
> the recently added file-based API

Please use the merge script.

Joerg
___
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] r314417 - Merging r311921:

2017-09-28 Thread Joerg Sonnenberger via llvm-branch-commits
Author: joerg
Date: Thu Sep 28 07:13:54 2017
New Revision: 314417

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

r311921 | joerg | 2017-08-28 22:20:47 +0200 (Mon, 28 Aug 2017) | 16 lines

Fix ARMv4 support

ARMv4 doesn't support the "BX" instruction, which has been introduced
with ARMv4t. Adjust the call lowering and tail call implementation
accordingly.

Further changes are necessary to ensure that presence of the v4t feature
is correctly set. Most importantly, the "generic" CPU for thumb-*
triples should include ARMv4t, since thumb mode without thumb support
would naturally be pointless.

Add a couple of asserts to ensure thumb instructions are not emitted
without CPU support.

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



Modified:
llvm/branches/release_50/lib/Target/ARM/ARMAsmPrinter.cpp
llvm/branches/release_50/lib/Target/ARM/ARMCallLowering.cpp
llvm/branches/release_50/lib/Target/ARM/ARMExpandPseudoInsts.cpp
llvm/branches/release_50/lib/Target/ARM/ARMFastISel.cpp
llvm/branches/release_50/lib/Target/ARM/ARMFrameLowering.cpp
llvm/branches/release_50/lib/Target/ARM/ARMInstrInfo.td
llvm/branches/release_50/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
llvm/branches/release_50/lib/Target/ARM/ARMSubtarget.h
llvm/branches/release_50/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
llvm/branches/release_50/test/CodeGen/ARM/GlobalISel/arm-irtranslator.ll
llvm/branches/release_50/test/CodeGen/ARM/armv4.ll
llvm/branches/release_50/test/CodeGen/ARM/debug-segmented-stacks.ll
llvm/branches/release_50/test/CodeGen/ARM/segmented-stacks-dynamic.ll
llvm/branches/release_50/test/CodeGen/ARM/segmented-stacks.ll

Modified: llvm/branches/release_50/lib/Target/ARM/ARMAsmPrinter.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_50/lib/Target/ARM/ARMAsmPrinter.cpp?rev=314417&r1=314416&r2=314417&view=diff
==
--- llvm/branches/release_50/lib/Target/ARM/ARMAsmPrinter.cpp (original)
+++ llvm/branches/release_50/lib/Target/ARM/ARMAsmPrinter.cpp Thu Sep 28 
07:13:54 2017
@@ -1276,6 +1276,7 @@ void ARMAsmPrinter::EmitInstruction(cons
   // Add 's' bit operand (always reg0 for this)
   .addReg(0));
 
+assert(Subtarget->hasV4TOps());
 EmitToStreamer(*OutStreamer, MCInstBuilder(ARM::BX)
   .addReg(MI->getOperand(0).getReg()));
 return;
@@ -1896,6 +1897,7 @@ void ARMAsmPrinter::EmitInstruction(cons
   .addImm(ARMCC::AL)
   .addReg(0));
 
+assert(Subtarget->hasV4TOps());
 EmitToStreamer(*OutStreamer, MCInstBuilder(ARM::BX)
   .addReg(ScratchReg)
   // Predicate.

Modified: llvm/branches/release_50/lib/Target/ARM/ARMCallLowering.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_50/lib/Target/ARM/ARMCallLowering.cpp?rev=314417&r1=314416&r2=314417&view=diff
==
--- llvm/branches/release_50/lib/Target/ARM/ARMCallLowering.cpp (original)
+++ llvm/branches/release_50/lib/Target/ARM/ARMCallLowering.cpp Thu Sep 28 
07:13:54 2017
@@ -251,7 +251,9 @@ bool ARMCallLowering::lowerReturn(Machin
   const Value *Val, unsigned VReg) const {
   assert(!Val == !VReg && "Return value without a vreg");
 
-  auto Ret = 
MIRBuilder.buildInstrNoInsert(ARM::BX_RET).add(predOps(ARMCC::AL));
+  auto const &ST = MIRBuilder.getMF().getSubtarget();
+  unsigned Opcode = ST.getReturnOpcode();
+  auto Ret = MIRBuilder.buildInstrNoInsert(Opcode).add(predOps(ARMCC::AL));
 
   if (!lowerReturnVal(MIRBuilder, Val, VReg, Ret))
 return false;

Modified: llvm/branches/release_50/lib/Target/ARM/ARMExpandPseudoInsts.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_50/lib/Target/ARM/ARMExpandPseudoInsts.cpp?rev=314417&r1=314416&r2=314417&view=diff
==
--- llvm/branches/release_50/lib/Target/ARM/ARMExpandPseudoInsts.cpp (original)
+++ llvm/branches/release_50/lib/Target/ARM/ARMExpandPseudoInsts.cpp Thu Sep 28 
07:13:54 2017
@@ -1030,8 +1030,11 @@ bool ARMExpandPseudo::ExpandMI(MachineBa
 if (STI->isThumb())
   MIB.add(predOps(ARMCC::AL));
   } else if (RetOpcode == ARM::TCRETURNri) {
+unsigned Opcode =
+  STI->isThumb() ? ARM::tTAILJMPr
+ : (STI->hasV4TOps() ? ARM::TAILJMPr : ARM::TAILJMPr4);
 BuildMI(MBB, MBBI, dl,
-TII.get(STI->isThumb() ? ARM::tTAILJMPr : ARM::TAILJMPr))
+TII.get(Opcode))
 .addReg(JumpTarget.getReg(), RegState::Kill);
   }
 

Modified: llvm/branches/release_50/lib/Target/ARM/ARMFastISel.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/rele