[llvm-branch-commits] [llvm-branch] r278128 - Merging r278086:

2016-08-09 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Aug  9 10:48:01 2016
New Revision: 278128

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

r278086 | matze | 2016-08-08 18:47:26 -0700 (Mon, 08 Aug 2016) | 6 lines

X86InstrInfo: Update liveness in classifyLea()

We need to update liveness information when we create COPYs in
classifyLea().

This fixes http://llvm.org/28301


Modified:
llvm/branches/release_39/   (props changed)
llvm/branches/release_39/lib/Target/X86/X86InstrInfo.cpp
llvm/branches/release_39/lib/Target/X86/X86InstrInfo.h
llvm/branches/release_39/test/CodeGen/X86/twoaddr-lea.ll

Propchange: llvm/branches/release_39/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Aug  9 10:48: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,277504,277625,277691,277693,23
+/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,277691,277693,23,278086

Modified: llvm/branches/release_39/lib/Target/X86/X86InstrInfo.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/lib/Target/X86/X86InstrInfo.cpp?rev=278128&r1=278127&r2=278128&view=diff
==
--- llvm/branches/release_39/lib/Target/X86/X86InstrInfo.cpp (original)
+++ llvm/branches/release_39/lib/Target/X86/X86InstrInfo.cpp Tue Aug  9 
10:48:01 2016
@@ -2661,7 +2661,8 @@ inline static bool isTruncatedShiftCount
 bool X86InstrInfo::classifyLEAReg(MachineInstr &MI, const MachineOperand &Src,
   unsigned Opc, bool AllowSP, unsigned &NewSrc,
   bool &isKill, bool &isUndef,
-  MachineOperand &ImplicitOp) const {
+  MachineOperand &ImplicitOp,
+  LiveVariables *LV) const {
   MachineFunction &MF = *MI.getParent()->getParent();
   const TargetRegisterClass *RC;
   if (AllowSP) {
@@ -2715,13 +2716,17 @@ bool X86InstrInfo::classifyLEAReg(Machin
 // Virtual register of the wrong class, we have to create a temporary 
64-bit
 // vreg to feed into the LEA.
 NewSrc = MF.getRegInfo().createVirtualRegister(RC);
-BuildMI(*MI.getParent(), MI, MI.getDebugLoc(), get(TargetOpcode::COPY))
+MachineInstr *Copy = BuildMI(*MI.getParent(), MI, MI.getDebugLoc(),
+ get(TargetOpcode::COPY))
 .addReg(NewSrc, RegState::Define | RegState::Undef, X86::sub_32bit)
 .addOperand(Src);
 
 // Which is obviously going to be dead after we're done with it.
 isKill = true;
 isUndef = false;
+
+if (LV)
+  LV->replaceKillInstruction(SrcReg, MI, *Copy);
   }
 
   // We've set all the parameters without issue.
@@ -2900,7 +2905,7 @@ X86InstrInfo::convertToThreeAddress(Mach
 unsigned SrcReg;
 MachineOperand ImplicitOp = MachineOperand::CreateReg(0, false);
 if (!classifyLEAReg(MI, Src, Opc, /*AllowSP=*/ false,
-SrcReg, isKill, isUndef, ImplicitOp))
+SrcReg, isKill, isUndef, ImplicitOp, LV))
   return nullptr;
 
 MachineInstrBuilder MIB =
@@ -2943,7 +2948,7 @@ X86InstrInfo::convertToThreeAddress(Mach
 unsigned SrcReg;
 MachineOperand ImplicitOp = MachineOperand::CreateReg(0, false);
 if (!classifyLEAReg(MI, Src, Opc, /*AllowSP=*/ false,
-SrcReg, isKill, isUndef, ImplicitOp))
+SrcReg, isKill, isUndef, ImplicitOp, LV))
   return nullptr;
 
 MachineInstrBuilder MIB =
@@ -2977,7 +2982,7 @@ X86InstrInfo::convertToThreeAddress(Mach
 unsigned SrcReg;
 MachineOperand ImplicitOp = MachineOperand::CreateReg(0, false);
 if (!classifyLEAReg(MI, Src, Opc, /*AllowSP=*/ false,
-SrcReg, isKill, isUndef, ImplicitOp))
+SrcReg, isKill, isUndef, ImplicitOp, LV))
   return nullptr;
 
 MachineInstrBuilder MIB = BuildMI(MF, MI.getDebugLoc(), get(Opc))
@@ -3016,7 +3021,7 @@ X86InstrInfo::convertToThreeAddress(Mach
 unsigned SrcReg;
 MachineOperand ImplicitOp = MachineOperand::CreateReg(0, false);
 if (!classifyLEAReg(MI, Src, Opc, /*AllowSP=*/ true,
-SrcReg, isKill, isUndef, ImplicitOp))
+

[llvm-branch-commits] [llvm-branch] r278134 - Merging r278133:

2016-08-09 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Aug  9 11:46:35 2016
New Revision: 278134

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

r278133 | hans | 2016-08-09 09:46:02 -0700 (Tue, 09 Aug 2016) | 3 lines

test-release.sh: Drop autoconf support

The autoconf build was deleted some time ago.


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

Propchange: llvm/branches/release_39/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Aug  9 11:46:35 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,277625,277691,277693,23,278086
+/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,277691,277693,23,278086,278133

Modified: llvm/branches/release_39/utils/release/test-release.sh
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/utils/release/test-release.sh?rev=278134&r1=278133&r2=278134&view=diff
==
--- llvm/branches/release_39/utils/release/test-release.sh (original)
+++ llvm/branches/release_39/utils/release/test-release.sh Tue Aug  9 11:46:35 
2016
@@ -38,7 +38,6 @@ do_test_suite="yes"
 do_openmp="yes"
 do_lldb="no"
 BuildDir="`pwd`"
-use_autoconf="no"
 ExtraConfigureFlags=""
 ExportBranch=""
 
@@ -57,7 +56,6 @@ function usage() {
 echo " -no-compare-filesDon't test that phase 2 and 3 files are 
identical."
 echo " -use-gzipUse gzip instead of xz."
 echo " -configure-flags FLAGS  Extra flags to pass to the configure step."
-echo " -use-autoconfUse autoconf instead of cmake"
 echo " -svn-path DIRUse the specified DIR instead of a release."
 echo "  For example -svn-path trunk or -svn-path 
branches/release_37"
 echo " -no-rt   Disable check-out & build Compiler-RT"
@@ -127,9 +125,6 @@ while [ $# -gt 0 ]; do
 -use-gzip | --use-gzip )
 use_gzip="yes"
 ;;
--use-autoconf | --use-autoconf )
-use_autoconf="yes"
-;;
 -no-rt )
 do_rt="no"
 ;;
@@ -164,13 +159,11 @@ while [ $# -gt 0 ]; do
 shift
 done
 
-if [ "$use_autoconf" = "no" ]; then
-  if [ "$do_test_suite" = "yes" ]; then
-# See llvm.org/PR26146.
-echo Skipping test-suite build when using CMake.
-echo It will still be exported.
-do_test_suite="export-only"
-  fi
+if [ "$do_test_suite" = "yes" ]; then
+  # See llvm.org/PR26146.
+  echo Skipping test-suite build when using CMake.
+  echo It will still be exported.
+  do_test_suite="export-only"
 fi
 
 # Check required arguments.
@@ -337,17 +330,14 @@ function configure_llvmCore() {
 Release )
 BuildType="Release"
 Assertions="OFF"
-ConfigureFlags="--enable-optimized --disable-assertions"
 ;;
 Release+Asserts )
 BuildType="Release"
 Assertions="ON"
-ConfigureFlags="--enable-optimized --enable-assertions"
 ;;
 Debug )
 BuildType="Debug"
 Assertions="ON"
-ConfigureFlags="--disable-optimized --enable-assertions"
 ;;
 * )
 echo "# Invalid flavor '$Flavor'"
@@ -362,29 +352,18 @@ function configure_llvmCore() {
 cd $ObjDir
 echo "# Configuring llvm $Release-$RC $Flavor"
 
-if [ "$use_autoconf" = "yes" ]; then
-echo "#" env CC="$c_compiler" CXX="$cxx_compiler" \
-$BuildDir/llvm.src/configure \
-$ConfigureFlags --disable-timestamps $ExtraConfigureFlags \
-2>&1 | tee $LogDir/llvm.configure-Phase$Phase-$Flavor.log
-env CC="$c_compiler" CXX="$cxx_compiler" \
-$BuildDir/llvm.src/configure \
-$ConfigureFlags --disable-timestamps $ExtraConfigureFlags \
-2>&1 | tee $LogDir/llvm.configure-Phase$Phase-$Flavor.log
-else
-echo "#" env CC="$c_compiler" CXX="$cxx_compiler" \
-cmake -G "Unix Makefiles" \
--DCMAKE_BUILD_TYPE=$BuildType -DLLVM_ENABLE_ASSERTIONS=$Assertions 
\
--DLLVM_CONFIGTIME="(timestamp not enabled)" \
-$ExtraConfigureFlags $BuildDir/llvm.src \
-   

[llvm-branch-commits] [llvm-branch] r278167 - ReleaseNotes: mention more mov-to-push

2016-08-09 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Tue Aug  9 16:26:16 2016
New Revision: 278167

URL: http://llvm.org/viewvc/llvm-project?rev=278167&view=rev
Log:
ReleaseNotes: mention more mov-to-push

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=278167&r1=278166&r2=278167&view=diff
==
--- llvm/branches/release_39/docs/ReleaseNotes.rst (original)
+++ llvm/branches/release_39/docs/ReleaseNotes.rst Tue Aug  9 16:26:16 2016
@@ -253,6 +253,10 @@ Changes to the X86 Target
   extensions using ``-march=knl``. The switch enables the ISA extensions
   AVX-512{F, CD, ER, PF}.
 
+* LLVM will now prefer ``PUSH`` instructions rather than ``%esp``-relative
+  ``MOV`` instructions for function calls at all optimization levels greater
+  than ``-O0``. Previously this transformation only occurred at ``-Os``.
+
 Changes to the AMDGPU Target
 -
 


___
llvm-branch-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [cfe-branch] r278175 - [docs] Update 3.9 release notes for the static analyzer.

2016-08-09 Thread Devin Coughlin via llvm-branch-commits
Author: dcoughlin
Date: Tue Aug  9 18:01:43 2016
New Revision: 278175

URL: http://llvm.org/viewvc/llvm-project?rev=278175&view=rev
Log:
[docs] Update 3.9 release notes for the static analyzer.


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

Modified: cfe/branches/release_39/docs/ReleaseNotes.rst
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/docs/ReleaseNotes.rst?rev=278175&r1=278174&r2=278175&view=diff
==
--- cfe/branches/release_39/docs/ReleaseNotes.rst (original)
+++ cfe/branches/release_39/docs/ReleaseNotes.rst Tue Aug  9 18:01:43 2016
@@ -232,27 +232,22 @@ libclang
 Static Analyzer
 ---
 
-The scan-build and scan-build-py tools now include a 
-``--force-analyze-debug-code`` flag to force projects to build in debug mode.
-This can result in more precise analysis because it leaves in assertions.
+The analyzer now checks for incorrect usage of MPI APIs in C and C++. This
+check can be enabled by passing the following command to scan-build:
+``-enable-checker optin.mpi.MPI-Checker.``
+
+The analyzer now checks for improper instance cleanup up in Objective-C
+``-dealloc`` methods under manual retain/release.
 
 On Windows, checks for memory leaks, double frees, and use-after-free problems
 are now enabled by default.
 
-The analyzer now supports Objective-C class properties.
-
-Diagnostics for misuse of _Nonnull are greatly improved.
-
-Several new checkers were added:
+The analyzer now includes scan-build-py, an experimental reimplementation of
+scan-build in Python that also creates compilation databases.
 
-- The analyzer now checks for incorrect usage of MPI APIs in C and C++. This
-  check can be enabled by passing the following command to scan-build:
-  ``-enable-checker optin.mpi.MPI-Checker``.
-- The analyzer now checks for improper retains and releases of ivars 
synthesized
-  for properties in Objective-C ``-dealloc`` methods under manual
-  retain/release.
-- The analyzer now checks for missing and extra calls to ``[super dealloc]``
-  under manual retain/release.
+The scan-build tool now supports a ``--force-analyze-debug-code`` flag that
+forces projects to analyze in debug mode. This flag leaves in assertions and so
+typically results in fewer false positives.
 
 Core Analysis Improvements
 ==


___
llvm-branch-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits