<div dir="ltr">I've gone ahead and reverted this in r186234 after two hours with no update. =/<div><br></div><div>Please folks, watch the build bots after you commit.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Fri, Jul 12, 2013 at 5:07 PM, Quentin Colombet <span dir="ltr"><<a href="mailto:qcolombet@apple.com" target="_blank">qcolombet@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word">Hi Bill,<div><br></div><div>This breaks some buildbots:</div><div><a href="http://lab.llvm.org:8013/builders/clang-x86_64-darwin11-nobootstrap-RAincremental/builds/4328" target="_blank">http://lab.llvm.org:8013/builders/clang-x86_64-darwin11-nobootstrap-RAincremental/builds/4328</a></div>
<div><pre style="font-family:'Courier New',courier,monotype;font-size:medium"><span>******************** TEST 'LLVM :: DebugInfo/X86/dbg_value_direct.ll' FAILED ********************
Script:
--
/Users/buildslave/zorg/buildbot/smooshlab/slave-0.8/build.clang-x86_64-darwin11-nobootstrap-RAincremental/clang-build/Release+Asserts/bin/llc -filetype=obj -O0 -stack-protector-buffer-size=1 < /Users/buildslave/zorg/buildbot/smooshlab/slave-0.8/build.clang-x86_64-darwin11-nobootstrap-RAincremental/llvm/test/DebugInfo/X86/dbg_value_direct.ll
--
Exit Code: 1
Command Output (stderr):
--
llc: Unknown command line argument '-stack-protector-buffer-size=1'. Try: '/Users/buildslave/zorg/buildbot/smooshlab/slave-0.8/build.clang-x86_64-darwin11-nobootstrap-RAincremental/clang-build/Release+Asserts/bin/llc -help'
llc: Did you mean '-debug-buffer-size=1'?
--
********************</span></pre><span class="HOEnZb"><font color="#888888"><div><br></div><div><br></div><div>
<div style="text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:-webkit-auto;font-style:normal;font-weight:normal;line-height:normal;text-transform:none;white-space:normal;font-family:Helvetica;word-wrap:break-word;word-spacing:0px">
-Quentin</div>
</div></font></span><div><div class="h5">
<br><div><div>On Jul 12, 2013, at 3:25 PM, Bill Wendling <<a href="mailto:isanbard@gmail.com" target="_blank">isanbard@gmail.com</a>> wrote:</div><br><blockquote type="cite"><div style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
Author: void<br>Date: Fri Jul 12 17:25:20 2013<br>New Revision: 186217<br><br>URL:<span> </span><a href="http://llvm.org/viewvc/llvm-project?rev=186217&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=186217&view=rev</a><br>
Log:<br>Use the function attributes to pass along the stack protector buffer size.<br><br>Now that we have robust function attributes, don't use a command line option to<br>specify the stack protecto buffer size.<br><br>
Modified:<br> llvm/trunk/include/llvm/CodeGen/CommandFlags.h<br> llvm/trunk/include/llvm/Target/TargetOptions.h<br> llvm/trunk/lib/CodeGen/StackProtector.cpp<br> llvm/trunk/tools/llc/llc.cpp<br> llvm/trunk/tools/lto/LTOModule.cpp<br>
llvm/trunk/tools/opt/opt.cpp<br><br>Modified: llvm/trunk/include/llvm/CodeGen/CommandFlags.h<br>URL:<span> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/CommandFlags.h?rev=186217&r1=186216&r2=186217&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/CommandFlags.h?rev=186217&r1=186216&r2=186217&view=diff</a><br>
==============================================================================<br>--- llvm/trunk/include/llvm/CodeGen/CommandFlags.h (original)<br>+++ llvm/trunk/include/llvm/CodeGen/CommandFlags.h Fri Jul 12 17:25:20 2013<br>
@@ -220,8 +220,4 @@ cl::opt<std::string> StartAfter("start-a<br> cl::value_desc("pass-name"),<br> cl::init(""));<br><br>-cl::opt<unsigned><br>
-SSPBufferSize("stack-protector-buffer-size", cl::init(8),<br>- cl::desc("Lower bound for a buffer to be considered for "<br>- "stack protection"));<br>#endif<br>
<br>Modified: llvm/trunk/include/llvm/Target/TargetOptions.h<br>URL:<span> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetOptions.h?rev=186217&r1=186216&r2=186217&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetOptions.h?rev=186217&r1=186216&r2=186217&view=diff</a><br>
==============================================================================<br>--- llvm/trunk/include/llvm/Target/TargetOptions.h (original)<br>+++ llvm/trunk/include/llvm/Target/TargetOptions.h Fri Jul 12 17:25:20 2013<br>
@@ -48,7 +48,7 @@ namespace llvm {<br> UseSoftFloat(false), NoZerosInBSS(false),<br> JITEmitDebugInfo(false), JITEmitDebugInfoToDisk(false),<br> GuaranteedTailCallOpt(false), DisableTailCalls(false),<br>
- StackAlignmentOverride(0), RealignStack(true), SSPBufferSize(0),<br>+ StackAlignmentOverride(0), RealignStack(true),<br> EnableFastISel(false), PositionIndependentExecutable(false),<br> EnableSegmentedStacks(false), UseInitArray(false), TrapFuncName(""),<br>
FloatABIType(FloatABI::Default), AllowFPOpFusion(FPOpFusion::Standard)<br>@@ -151,10 +151,6 @@ namespace llvm {<br> /// automatically realigned, if needed.<br> unsigned RealignStack : 1;<br><br>- /// SSPBufferSize - The minimum size of buffers that will receive stack<br>
- /// smashing protection when -fstack-protection is used.<br>- unsigned SSPBufferSize;<br>-<br> /// EnableFastISel - This flag enables fast-path instruction selection<br> /// which trades away generated code quality in favor of reducing<br>
/// compile time.<br>@@ -224,7 +220,6 @@ inline bool operator==(const TargetOptio<br> ARE_EQUAL(DisableTailCalls) &&<br> ARE_EQUAL(StackAlignmentOverride) &&<br> ARE_EQUAL(RealignStack) &&<br>
- ARE_EQUAL(SSPBufferSize) &&<br> ARE_EQUAL(EnableFastISel) &&<br> ARE_EQUAL(PositionIndependentExecutable) &&<br> ARE_EQUAL(EnableSegmentedStacks) &&<br><br>Modified: llvm/trunk/lib/CodeGen/StackProtector.cpp<br>
URL:<span> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/StackProtector.cpp?rev=186217&r1=186216&r2=186217&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/StackProtector.cpp?rev=186217&r1=186216&r2=186217&view=diff</a><br>
==============================================================================<br>--- llvm/trunk/lib/CodeGen/StackProtector.cpp (original)<br>+++ llvm/trunk/lib/CodeGen/StackProtector.cpp Fri Jul 12 17:25:20 2013<br>@@ -33,6 +33,7 @@<br>
#include "llvm/Pass.h"<br>#include "llvm/Support/CommandLine.h"<br>#include "llvm/Target/TargetLowering.h"<br>+#include <cstdlib><br>using namespace llvm;<br><br>STATISTIC(NumFunProtected, "Number of functions protected");<br>
@@ -53,6 +54,10 @@ namespace {<br><br> DominatorTree *DT;<br><br>+ /// \brief The minimum size of buffers that will receive stack smashing<br>+ /// protection when -fstack-protection is used.<br>+ unsigned SSPBufferSize;<br>
+<br> /// VisitedPHIs - The set of PHI nodes visited when determining<br> /// if a variable's reference has been taken. This set<span> </span><br> /// is maintained to ensure we don't visit the same PHI node multiple<br>
@@ -85,11 +90,12 @@ namespace {<br> bool RequiresStackProtector();<br> public:<br> static char ID; // Pass identification, replacement for typeid.<br>- StackProtector() : FunctionPass(ID), TM(0), TLI(0) {<br>
+ StackProtector() : FunctionPass(ID), TM(0), TLI(0), SSPBufferSize(0) {<br> initializeStackProtectorPass(*PassRegistry::getPassRegistry());<br> }<br> StackProtector(const TargetMachine *TM)<br>- : FunctionPass(ID), TM(TM), TLI(0), Trip(TM->getTargetTriple()) {<br>
+ : FunctionPass(ID), TM(TM), TLI(0), Trip(TM->getTargetTriple()),<br>+ SSPBufferSize(8) {<br> initializeStackProtectorPass(*PassRegistry::getPassRegistry());<br> }<br><br>@@ -117,6 +123,12 @@ bool StackProtector::runOnFunction(Funct<br>
<br> if (!RequiresStackProtector()) return false;<br><br>+ Attribute Attr =<br>+ Fn.getAttributes().getAttribute(AttributeSet::FunctionIndex,<br>+ "ssp-buffer-size");<br>+ if (Attr.isStringAttribute())<br>
+ SSPBufferSize = atoi(Attr.getValueAsString().data());<br>+<br> ++NumFunProtected;<br> return InsertStackProtectors();<br>}<br>@@ -132,7 +144,6 @@ bool StackProtector::ContainsProtectable<br> // protector<br> if (Strong)<br>
return true;<br>- const TargetMachine &TM = TLI->getTargetMachine();<br> if (!AT->getElementType()->isIntegerTy(8)) {<br> // If we're on a non-Darwin platform or we're inside of a structure, don't<br>
// add stack protectors unless the array is a character array.<br>@@ -142,7 +153,7 @@ bool StackProtector::ContainsProtectable<br><br> // If an array has more than SSPBufferSize bytes of allocated space, then we<br>
// emit stack protectors.<br>- if (TM.Options.SSPBufferSize <= TLI->getDataLayout()->getTypeAllocSize(AT))<br>+ if (SSPBufferSize <= TLI->getDataLayout()->getTypeAllocSize(AT))<br> return true;<br>
}<br><br>@@ -230,13 +241,14 @@ bool StackProtector::RequiresStackProtec<br><br> if (const ConstantInt *CI =<br> dyn_cast<ConstantInt>(AI->getArraySize())) {<br>- unsigned BufferSize = TLI->getTargetMachine().Options.SSPBufferSize;<br>
- if (CI->getLimitedValue(BufferSize) >= BufferSize)<br>+ if (CI->getLimitedValue(SSPBufferSize) >= SSPBufferSize)<br> // A call to alloca with size >= SSPBufferSize requires<br>
// stack protectors.<br> return true;<br>- } else // A call to alloca with a variable size requires protectors.<br>+ } else {<br>+ // A call to alloca with a variable size requires protectors.<br>
return true;<br>+ }<br> }<br><br> if (ContainsProtectableArray(AI->getAllocatedType(), Strong))<br><br>Modified: llvm/trunk/tools/llc/llc.cpp<br>URL:<span> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llc/llc.cpp?rev=186217&r1=186216&r2=186217&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llc/llc.cpp?rev=186217&r1=186216&r2=186217&view=diff</a><br>
==============================================================================<br>--- llvm/trunk/tools/llc/llc.cpp (original)<br>+++ llvm/trunk/tools/llc/llc.cpp Fri Jul 12 17:25:20 2013<br>@@ -280,7 +280,6 @@ static int compileModule(char **argv, LL<br>
Options.PositionIndependentExecutable = EnablePIE;<br> Options.EnableSegmentedStacks = SegmentedStacks;<br> Options.UseInitArray = UseInitArray;<br>- Options.SSPBufferSize = SSPBufferSize;<br><br> OwningPtr<TargetMachine><br>
target(TheTarget->createTargetMachine(TheTriple.getTriple(),<br><br>Modified: llvm/trunk/tools/lto/LTOModule.cpp<br>URL:<span> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/lto/LTOModule.cpp?rev=186217&r1=186216&r2=186217&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/lto/LTOModule.cpp?rev=186217&r1=186216&r2=186217&view=diff</a><br>
==============================================================================<br>--- llvm/trunk/tools/lto/LTOModule.cpp (original)<br>+++ llvm/trunk/tools/lto/LTOModule.cpp Fri Jul 12 17:25:20 2013<br>@@ -151,11 +151,6 @@ UseInitArray("use-init-array",<br>
cl::desc("Use .init_array instead of .ctors."),<br> cl::init(false));<br><br>-static cl::opt<unsigned><br>-SSPBufferSize("stack-protector-buffer-size", cl::init(8),<br>- cl::desc("Lower bound for a buffer to be considered for "<br>
- "stack protection"));<br>-<br>LTOModule::LTOModule(llvm::Module *m, llvm::TargetMachine *t)<br> : _module(m), _target(t),<br> _context(_target->getMCAsmInfo(), _target->getRegisterInfo(), NULL),<br>
@@ -261,7 +256,6 @@ void LTOModule::getTargetOptions(TargetO<br> Options.PositionIndependentExecutable = EnablePIE;<br> Options.EnableSegmentedStacks = SegmentedStacks;<br> Options.UseInitArray = UseInitArray;<br>- Options.SSPBufferSize = SSPBufferSize;<br>
}<br><br>LTOModule *LTOModule::makeLTOModule(MemoryBuffer *buffer,<br><br>Modified: llvm/trunk/tools/opt/opt.cpp<br>URL:<span> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/opt/opt.cpp?rev=186217&r1=186216&r2=186217&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/opt/opt.cpp?rev=186217&r1=186216&r2=186217&view=diff</a><br>
==============================================================================<br>--- llvm/trunk/tools/opt/opt.cpp (original)<br>+++ llvm/trunk/tools/opt/opt.cpp Fri Jul 12 17:25:20 2013<br>@@ -510,7 +510,6 @@ static TargetOptions GetTargetOptions()<br>
Options.PositionIndependentExecutable = EnablePIE;<br> Options.EnableSegmentedStacks = SegmentedStacks;<br> Options.UseInitArray = UseInitArray;<br>- Options.SSPBufferSize = SSPBufferSize;<br> return Options;<br>}<br>
<br><br><br>_______________________________________________<br>llvm-commits mailing list<br><a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a></div>
</blockquote></div><br></div></div></div></div><br>_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div>