[llvm-branch-commits] [llvm-branch] r278239 - Merging r278002:

2016-08-10 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Wed Aug 10 11:27:26 2016
New Revision: 278239

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

r278002 | sbaranga | 2016-08-08 06:13:57 -0700 (Mon, 08 Aug 2016) | 18 lines

[AArch64] PR28877: Don't assume we're running after legalization when creating 
vcvtfp2fxs

Summary:
The DAG combine transformation that was generating the
aarch64_neon_vcvtfp2fxs node was assuming that all
inputs where legal and wasn't accounting that the input
could be a v4f64 if we're trying to do the transformation
before legalization. We now bail out in this case.

All illegal types besides v4f64 were already rejected.

Fixes https://llvm.org/bugs/show_bug.cgi?id=28877.

Reviewers: jmolloy

Subscribers: aemerson, rengolin, llvm-commits

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


Added:
llvm/branches/release_39/test/CodeGen/AArch64/aarch64-vcvtfp2fxs-combine.ll
  - copied unchanged from r278002, 
llvm/trunk/test/CodeGen/AArch64/aarch64-vcvtfp2fxs-combine.ll
Modified:
llvm/branches/release_39/   (props changed)
llvm/branches/release_39/lib/Target/AArch64/AArch64ISelLowering.cpp

Propchange: llvm/branches/release_39/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 10 11:27:26 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,278133
+/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,278002,278086,278133

Modified: llvm/branches/release_39/lib/Target/AArch64/AArch64ISelLowering.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/lib/Target/AArch64/AArch64ISelLowering.cpp?rev=278239&r1=278238&r2=278239&view=diff
==
--- llvm/branches/release_39/lib/Target/AArch64/AArch64ISelLowering.cpp 
(original)
+++ llvm/branches/release_39/lib/Target/AArch64/AArch64ISelLowering.cpp Wed Aug 
10 11:27:26 2016
@@ -7685,6 +7685,7 @@ static SDValue performIntToFpCombine(SDN
 /// Fold a floating-point multiply by power of two into floating-point to
 /// fixed-point conversion.
 static SDValue performFpToIntCombine(SDNode *N, SelectionDAG &DAG,
+ TargetLowering::DAGCombinerInfo &DCI,
  const AArch64Subtarget *Subtarget) {
   if (!Subtarget->hasNEON())
 return SDValue();
@@ -7728,10 +7729,16 @@ static SDValue performFpToIntCombine(SDN
 ResTy = FloatBits == 32 ? MVT::v2i32 : MVT::v2i64;
 break;
   case 4:
-ResTy = MVT::v4i32;
+ResTy = FloatBits == 32 ? MVT::v4i32 : MVT::v4i64;
 break;
   }
 
+  if (ResTy == MVT::v4i64 && DCI.isBeforeLegalizeOps())
+return SDValue();
+
+  assert((ResTy != MVT::v4i64 || DCI.isBeforeLegalizeOps()) &&
+ "Illegal vector type after legalization");
+
   SDLoc DL(N);
   bool IsSigned = N->getOpcode() == ISD::FP_TO_SINT;
   unsigned IntrinsicOpcode = IsSigned ? Intrinsic::aarch64_neon_vcvtfp2fxs
@@ -9853,7 +9860,7 @@ SDValue AArch64TargetLowering::PerformDA
 return performIntToFpCombine(N, DAG, Subtarget);
   case ISD::FP_TO_SINT:
   case ISD::FP_TO_UINT:
-return performFpToIntCombine(N, DAG, Subtarget);
+return performFpToIntCombine(N, DAG, DCI, Subtarget);
   case ISD::FDIV:
 return performFDivCombine(N, DAG, Subtarget);
   case ISD::OR:


___
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] r278240 - Merging r278139:

2016-08-10 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Wed Aug 10 11:36:05 2016
New Revision: 278240

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

r278139 | rnk | 2016-08-09 10:23:56 -0700 (Tue, 09 Aug 2016) | 6 lines

[clang-cl] Make -gline-tables-only imply -gcodeview

It's surprising that you have to pass /Z7 in addition to -gcodeview to
get debug info. The sanitizer runtime, for example, expects that if the
compiler supports the -gline-tables-only flag, then it will emit debug
info.


Modified:
cfe/branches/release_39/   (props changed)
cfe/branches/release_39/lib/Driver/Tools.cpp
cfe/branches/release_39/test/Driver/cl-options.c

Propchange: cfe/branches/release_39/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 10 11:36:05 2016
@@ -1,4 +1,4 @@
 /cfe/branches/type-system-rewrite:134693-134817
-/cfe/trunk:275880,275967,276102,276350,276361,276473,276653,276716,276887,276891,276979,276983,277095,277138,277141,277221,277307,277743,277796-277797,277866,277889,277900
+/cfe/trunk:275880,275967,276102,276350,276361,276473,276653,276716,276887,276891,276979,276983,277095,277138,277141,277221,277307,277743,277796-277797,277866,277889,277900,278139
 /cfe/trunk/test:170344
 /cfe/trunk/test/SemaTemplate:126920

Modified: cfe/branches/release_39/lib/Driver/Tools.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/lib/Driver/Tools.cpp?rev=278240&r1=278239&r2=278240&view=diff
==
--- cfe/branches/release_39/lib/Driver/Tools.cpp (original)
+++ cfe/branches/release_39/lib/Driver/Tools.cpp Wed Aug 10 11:36:05 2016
@@ -4568,8 +4568,8 @@ void Clang::ConstructJob(Compilation &C,
options::OPT_gdwarf_4, options::OPT_gdwarf_5))
 DwarfVersion = DwarfVersionNum(A->getSpelling());
 
-  // Forward -gcodeview.
-  // 'EmitCodeView might have been set by CL-compatibility argument parsing.
+  // Forward -gcodeview. EmitCodeView might have been set by CL-compatibility
+  // argument parsing.
   if (Args.hasArg(options::OPT_gcodeview) || EmitCodeView) {
 // DwarfVersion remains at 0 if no explicit choice was made.
 CmdArgs.push_back("-gcodeview");
@@ -6358,9 +6358,10 @@ void Clang::AddClangCLArgs(const ArgList
 CmdArgs.push_back(Args.MakeArgString(Twine(LangOptions::SSPStrong)));
   }
 
-  // Emit CodeView if -Z7 or -Zd are present.
+  // Emit CodeView if -Z7, -Zd, or -gline-tables-only are present.
   if (Arg *DebugInfoArg =
-  Args.getLastArg(options::OPT__SLASH_Z7, options::OPT__SLASH_Zd)) {
+  Args.getLastArg(options::OPT__SLASH_Z7, options::OPT__SLASH_Zd,
+  options::OPT_gline_tables_only)) {
 *EmitCodeView = true;
 if (DebugInfoArg->getOption().matches(options::OPT__SLASH_Z7))
   *DebugInfoKind = codegenoptions::LimitedDebugInfo;

Modified: cfe/branches/release_39/test/Driver/cl-options.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/test/Driver/cl-options.c?rev=278240&r1=278239&r2=278240&view=diff
==
--- cfe/branches/release_39/test/Driver/cl-options.c (original)
+++ cfe/branches/release_39/test/Driver/cl-options.c Wed Aug 10 11:36:05 2016
@@ -424,6 +424,10 @@
 // Z7GMLT: "-gcodeview"
 // Z7GMLT: "-debug-info-kind=line-tables-only"
 
+// RUN: %clang_cl -gline-tables-only /c -### -- %s 2>&1 | FileCheck 
-check-prefix=ZGMLT %s
+// ZGMLT: "-gcodeview"
+// ZGMLT: "-debug-info-kind=line-tables-only"
+
 // RUN: %clang_cl /c -### -- %s 2>&1 | FileCheck -check-prefix=BreproDefault %s
 // BreproDefault: "-mincremental-linker-compatible"
 


___
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] r278243 - Merging r276051 and r276823:

2016-08-10 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Wed Aug 10 11:45:40 2016
New Revision: 278243

URL: http://llvm.org/viewvc/llvm-project?rev=278243&view=rev
Log:
Merging r276051 and r276823:

r276051 | arsenm | 2016-07-19 16:16:53 -0700 (Tue, 19 Jul 2016) | 8 lines

AMDGPU: Change fdiv lowering based on !fpmath metadata

If 2.5 ulp is acceptable, denormals are not required, and
isn't a reciprocal which will already be handled, replace
with a faster fdiv.

Simplify the lowering tests by using per function
subtarget features.



r276823 | arsenm | 2016-07-26 16:25:44 -0700 (Tue, 26 Jul 2016) | 4 lines

AMDGPU: Use rcp for fdiv 1, x with fpmath metadata

Using rcp should be OK for safe math usually, so this
should not be replacing the original fdiv.


Added:
llvm/branches/release_39/test/CodeGen/AMDGPU/llvm.amdgcn.fdiv.fast.ll
  - copied unchanged from r276051, 
llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgcn.fdiv.fast.ll
Removed:
llvm/branches/release_39/test/CodeGen/AMDGPU/reciprocal.ll
Modified:
llvm/branches/release_39/   (props changed)
llvm/branches/release_39/lib/Target/AMDGPU/AMDGPU.h
llvm/branches/release_39/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
llvm/branches/release_39/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.cpp
llvm/branches/release_39/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.h
llvm/branches/release_39/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
llvm/branches/release_39/lib/Target/AMDGPU/SIISelLowering.cpp
llvm/branches/release_39/lib/Target/AMDGPU/SIISelLowering.h
llvm/branches/release_39/lib/Target/AMDGPU/SIIntrinsics.td
llvm/branches/release_39/test/CodeGen/AMDGPU/amdgpu-codegenprepare.ll
llvm/branches/release_39/test/CodeGen/AMDGPU/fdiv.ll
llvm/branches/release_39/test/CodeGen/AMDGPU/rcp-pattern.ll

Propchange: llvm/branches/release_39/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 10 11:45:40 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,278002,278086,278133
+/llvm/trunk:155241,275868-275870,275879,275898,275928,275935,275946,275978,275981,276015,276051,276077,276109,276119,276181,276209,276236-276237,276358,276364,276368,276389,276435,276438,276479,276510,276648,276740,276823,276956,276980,277114,277135,277371,277500,277504,277625,277691,277693,23,278002,278086,278133

Modified: llvm/branches/release_39/lib/Target/AMDGPU/AMDGPU.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/lib/Target/AMDGPU/AMDGPU.h?rev=278243&r1=278242&r2=278243&view=diff
==
--- llvm/branches/release_39/lib/Target/AMDGPU/AMDGPU.h (original)
+++ llvm/branches/release_39/lib/Target/AMDGPU/AMDGPU.h Wed Aug 10 11:45:40 2016
@@ -20,6 +20,7 @@ class AMDGPUInstrPrinter;
 class AMDGPUSubtarget;
 class AMDGPUTargetMachine;
 class FunctionPass;
+class GCNTargetMachine;
 struct MachineSchedContext;
 class MCAsmInfo;
 class raw_ostream;
@@ -50,7 +51,7 @@ FunctionPass *createSIFixSGPRCopiesPass(
 FunctionPass *createSICodeEmitterPass(formatted_raw_ostream &OS);
 FunctionPass *createSIDebuggerInsertNopsPass();
 FunctionPass *createSIInsertWaitsPass();
-FunctionPass *createAMDGPUCodeGenPreparePass(const TargetMachine *TM = 
nullptr);
+FunctionPass *createAMDGPUCodeGenPreparePass(const GCNTargetMachine *TM = 
nullptr);
 
 ScheduleDAGInstrs *createSIMachineScheduler(MachineSchedContext *C);
 

Modified: llvm/branches/release_39/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp?rev=278243&r1=278242&r2=278243&view=diff
==
--- llvm/branches/release_39/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp 
(original)
+++ llvm/branches/release_39/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp Wed Aug 
10 11:45:40 2016
@@ -14,7 +14,9 @@
 
//===--===//
 
 #include "AMDGPU.h"
+#include "AMDGPUIntrinsicInfo.h"
 #include "AMDGPUSubtarget.h"
+#include "AMDGPUTargetMachine.h"
 
 #include "llvm/Analysis/DivergenceAnalysis.h"
 #include "llvm/CodeGen/Passes.h"
@@ -30,15 +32,28 @@ using namespace llvm;
 namespace {
 
 class AMDGPUCodeGenPrepare : public FunctionPass,
- 

[llvm-branch-commits] [cfe-branch] r278248 - Merging r278234 and r278235:

2016-08-10 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Wed Aug 10 12:34:17 2016
New Revision: 278248

URL: http://llvm.org/viewvc/llvm-project?rev=278248&view=rev
Log:
Merging r278234 and r278235:

r278234 | joey | 2016-08-10 08:57:02 -0700 (Wed, 10 Aug 2016) | 5 lines

[OpenCL] Change block descriptor address space to constant.

The block descriptor is a GlobalVariable in the LLVM IR, so it shouldn't be
in the private address space.




r278235 | joey | 2016-08-10 09:04:14 -0700 (Wed, 10 Aug 2016) | 2 lines

[OpenCL] Fix typo in test that I accidentally introduced in my previous commit.



Modified:
cfe/branches/release_39/   (props changed)
cfe/branches/release_39/lib/CodeGen/CGBlocks.cpp
cfe/branches/release_39/test/CodeGenOpenCL/cl20-device-side-enqueue.cl

Propchange: cfe/branches/release_39/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 10 12:34:17 2016
@@ -1,4 +1,4 @@
 /cfe/branches/type-system-rewrite:134693-134817
-/cfe/trunk:275880,275967,276102,276350,276361,276473,276653,276716,276887,276891,276979,276983,277095,277138,277141,277221,277307,277743,277796-277797,277866,277889,277900,278139
+/cfe/trunk:275880,275967,276102,276350,276361,276473,276653,276716,276887,276891,276979,276983,277095,277138,277141,277221,277307,277743,277796-277797,277866,277889,277900,278139,278234-278235
 /cfe/trunk/test:170344
 /cfe/trunk/test/SemaTemplate:126920

Modified: cfe/branches/release_39/lib/CodeGen/CGBlocks.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/lib/CodeGen/CGBlocks.cpp?rev=278248&r1=278247&r2=278248&view=diff
==
--- cfe/branches/release_39/lib/CodeGen/CGBlocks.cpp (original)
+++ cfe/branches/release_39/lib/CodeGen/CGBlocks.cpp Wed Aug 10 12:34:17 2016
@@ -125,10 +125,15 @@ static llvm::Constant *buildBlockDescrip
 
   llvm::Constant *init = llvm::ConstantStruct::getAnon(elements);
 
+  unsigned AddrSpace = 0;
+  if (C.getLangOpts().OpenCL)
+AddrSpace = C.getTargetAddressSpace(LangAS::opencl_constant);
   llvm::GlobalVariable *global =
 new llvm::GlobalVariable(CGM.getModule(), init->getType(), true,
  llvm::GlobalValue::InternalLinkage,
- init, "__block_descriptor_tmp");
+ init, "__block_descriptor_tmp", nullptr,
+ llvm::GlobalValue::NotThreadLocal,
+ AddrSpace);
 
   return llvm::ConstantExpr::getBitCast(global, CGM.getBlockDescriptorType());
 }
@@ -927,7 +932,10 @@ llvm::Type *CodeGenModule::getBlockDescr
  UnsignedLongTy, UnsignedLongTy, nullptr);
 
   // Now form a pointer to that.
-  BlockDescriptorType = llvm::PointerType::getUnqual(BlockDescriptorType);
+  unsigned AddrSpace = 0;
+  if (getLangOpts().OpenCL)
+AddrSpace = getContext().getTargetAddressSpace(LangAS::opencl_constant);
+  BlockDescriptorType = llvm::PointerType::get(BlockDescriptorType, AddrSpace);
   return BlockDescriptorType;
 }
 

Modified: cfe/branches/release_39/test/CodeGenOpenCL/cl20-device-side-enqueue.cl
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/test/CodeGenOpenCL/cl20-device-side-enqueue.cl?rev=278248&r1=278247&r2=278248&view=diff
==
--- cfe/branches/release_39/test/CodeGenOpenCL/cl20-device-side-enqueue.cl 
(original)
+++ cfe/branches/release_39/test/CodeGenOpenCL/cl20-device-side-enqueue.cl Wed 
Aug 10 12:34:17 2016
@@ -21,7 +21,7 @@ kernel void device_side_enqueue(global i
   // CHECK: [[DEF_Q:%[0-9]+]] = load %opencl.queue_t*, %opencl.queue_t** 
%default_queue
   // CHECK: [[FLAGS:%[0-9]+]] = load i32, i32* %flags
   // CHECK: [[NDR:%[0-9]+]] = load %opencl.ndrange_t*, %opencl.ndrange_t** 
%ndrange
-  // CHECK: [[BL:%[0-9]+]] = bitcast <{ i8*, i32, i32, i8*, 
%struct.__block_descriptor*, i32{{.*}}, i32{{.*}}, i32{{.*}} }>* %block to void 
()*
+  // CHECK: [[BL:%[0-9]+]] = bitcast <{ i8*, i32, i32, i8*, 
%struct.__block_descriptor addrspace(3)*, i32{{.*}}, i32{{.*}}, i32{{.*}} }>* 
%block to void ()*
   // CHECK: [[BL_I8:%[0-9]+]] = bitcast void ()* [[BL]] to i8*
   // CHECK: call i32 @__enqueue_kernel_basic(%opencl.queue_t* [[DEF_Q]], i32 
[[FLAGS]], %opencl.ndrange_t* [[NDR]], i8* [[BL_I8]])
   enqueue_kernel(default_queue, flags, ndrange,
@@ -32,7 +32,7 @@ kernel void device_side_enqueue(global i
   // CHECK: [[DEF_Q:%[0-9]+]] = load %opencl.queue_t*, %opencl.queue_t** 
%default_queue
   // CHECK: [[FLAGS:%[0-9]+]] = load i32, i32* %flags
   // CHECK: [[NDR:%[0-9]+]] = load %opencl.ndrange_t*, %ope

[llvm-branch-commits] [llvm-branch] r278281 - Merging r276676:

2016-08-10 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Wed Aug 10 15:02:49 2016
New Revision: 278281

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

r276676 | eugenis | 2016-07-25 12:25:40 -0700 (Mon, 25 Jul 2016) | 1 line

Fix invalid iterator use in safestack coloring.


Added:
llvm/branches/release_39/test/Transforms/SafeStack/layout-region-split.ll
  - copied unchanged from r276676, 
llvm/trunk/test/Transforms/SafeStack/layout-region-split.ll
Modified:
llvm/branches/release_39/   (props changed)
llvm/branches/release_39/lib/CodeGen/SafeStackLayout.cpp

Propchange: llvm/branches/release_39/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 10 15:02:49 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,276051,276077,276109,276119,276181,276209,276236-276237,276358,276364,276368,276389,276435,276438,276479,276510,276648,276740,276823,276956,276980,277114,277135,277371,277500,277504,277625,277691,277693,23,278002,278086,278133
+/llvm/trunk:155241,275868-275870,275879,275898,275928,275935,275946,275978,275981,276015,276051,276077,276109,276119,276181,276209,276236-276237,276358,276364,276368,276389,276435,276438,276479,276510,276648,276676,276740,276823,276956,276980,277114,277135,277371,277500,277504,277625,277691,277693,23,278002,278086,278133

Modified: llvm/branches/release_39/lib/CodeGen/SafeStackLayout.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/lib/CodeGen/SafeStackLayout.cpp?rev=278281&r1=278280&r2=278281&view=diff
==
--- llvm/branches/release_39/lib/CodeGen/SafeStackLayout.cpp (original)
+++ llvm/branches/release_39/lib/CodeGen/SafeStackLayout.cpp Wed Aug 10 
15:02:49 2016
@@ -100,7 +100,8 @@ void StackLayout::layoutObject(StackObje
   }
 
   // Split starting and ending regions if necessary.
-  for (StackRegion &R : Regions) {
+  for (unsigned i = 0; i < Regions.size(); ++i) {
+StackRegion &R = Regions[i];
 if (Start > R.Start && Start < R.End) {
   StackRegion R0 = R;
   R.Start = R0.End = Start;


___
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] r278283 - Merging r276712:

2016-08-10 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Wed Aug 10 15:06:22 2016
New Revision: 278283

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

r276712 | eugenis | 2016-07-25 17:05:14 -0700 (Mon, 25 Jul 2016) | 3 lines

[safestack] Fix stack guard live range.

Stack guard slot is live throughout the function.


Added:
llvm/branches/release_39/test/Transforms/SafeStack/coloring-ssp.ll
  - copied unchanged from r276712, 
llvm/trunk/test/Transforms/SafeStack/coloring-ssp.ll
Modified:
llvm/branches/release_39/   (props changed)
llvm/branches/release_39/lib/CodeGen/SafeStack.cpp
llvm/branches/release_39/lib/CodeGen/SafeStackColoring.cpp

Propchange: llvm/branches/release_39/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 10 15:06:22 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,276051,276077,276109,276119,276181,276209,276236-276237,276358,276364,276368,276389,276435,276438,276479,276510,276648,276676,276740,276823,276956,276980,277114,277135,277371,277500,277504,277625,277691,277693,23,278002,278086,278133
+/llvm/trunk:155241,275868-275870,275879,275898,275928,275935,275946,275978,275981,276015,276051,276077,276109,276119,276181,276209,276236-276237,276358,276364,276368,276389,276435,276438,276479,276510,276648,276676,276712,276740,276823,276956,276980,277114,277135,277371,277500,277504,277625,277691,277693,23,278002,278086,278133

Modified: llvm/branches/release_39/lib/CodeGen/SafeStack.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/lib/CodeGen/SafeStack.cpp?rev=278283&r1=278282&r2=278283&view=diff
==
--- llvm/branches/release_39/lib/CodeGen/SafeStack.cpp (original)
+++ llvm/branches/release_39/lib/CodeGen/SafeStack.cpp Wed Aug 10 15:06:22 2016
@@ -530,7 +530,7 @@ Value *SafeStack::moveStaticAllocasToUns
 unsigned Align =
 std::max(DL->getPrefTypeAlignment(Ty), StackGuardSlot->getAlignment());
 SSL.addObject(StackGuardSlot, 
getStaticAllocaAllocationSize(StackGuardSlot),
-  Align, SSC.getLiveRange(StackGuardSlot));
+  Align, SSC.getFullLiveRange());
   }
 
   for (Argument *Arg : ByValArguments) {

Modified: llvm/branches/release_39/lib/CodeGen/SafeStackColoring.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/lib/CodeGen/SafeStackColoring.cpp?rev=278283&r1=278282&r2=278283&view=diff
==
--- llvm/branches/release_39/lib/CodeGen/SafeStackColoring.cpp (original)
+++ llvm/branches/release_39/lib/CodeGen/SafeStackColoring.cpp Wed Aug 10 
15:06:22 2016
@@ -25,7 +25,9 @@ static cl::opt ClColoring("safe-st
 cl::Hidden, cl::init(true));
 
 const StackColoring::LiveRange &StackColoring::getLiveRange(AllocaInst *AI) {
-  return LiveRanges[AllocaNumbering[AI]];
+  const auto IT = AllocaNumbering.find(AI);
+  assert(IT != AllocaNumbering.end());
+  return LiveRanges[IT->second];
 }
 
 bool StackColoring::readMarker(Instruction *I, bool *IsStart) {


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