[Lldb-commits] [lldb] r278662 - Fixup r278524 for non-apple targets

2016-08-15 Thread Pavel Labath via lldb-commits
Author: labath
Date: Mon Aug 15 04:17:13 2016
New Revision: 278662

URL: http://llvm.org/viewvc/llvm-project?rev=278662&view=rev
Log:
Fixup r278524 for non-apple targets

The commit started passing a nullptr port into 
GDBRemoteCommunication::StartDebugserverProcess.
The function was mostly handling the null value correctly, but it one case it 
did not check it's
value before assigning to it. Fix that.

Modified:
lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp

Modified: 
lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp?rev=278662&r1=278661&r2=278662&view=diff
==
--- lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp 
(original)
+++ lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp Mon 
Aug 15 04:17:13 2016
@@ -1254,15 +1254,17 @@ GDBRemoteCommunication::StartDebugserver
 
 ConnectionFileDescriptor *connection = 
(ConnectionFileDescriptor *)GetConnection ();
 // Wait for 10 seconds to resolve the bound port
-*port = connection->GetListeningPort(10);
-if (*port > 0)
+uint16_t port_ = connection->GetListeningPort(10);
+if (port_ > 0)
 {
 char port_cstr[32];
-snprintf(port_cstr, sizeof(port_cstr), "127.0.0.1:%i", 
*port);
+snprintf(port_cstr, sizeof(port_cstr), "127.0.0.1:%i", 
port_);
 // Send the host and port down that debugserver and 
specify an option
 // so that it connects back to the port we are listening 
to in this process
 debugserver_args.AppendArgument("--reverse-connect");
 debugserver_args.AppendArgument(port_cstr);
+if (port)
+*port = port_;
 }
 else
 {


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


Re: [Lldb-commits] [PATCH] D23406: Fix a race in Broadcaster/Listener interaction

2016-08-15 Thread Pavel Labath via lldb-commits
labath added a comment.

In https://reviews.llvm.org/D23406#513927, @jingham wrote:

> Yes, sorry.  I seem to have trouble with remembering the Action dropdown...  
> Thanks for figuring this out - and apologies for any hair loss we 
> inadvertently caused you!


No worries.

> I doubt it is important to use SmallVector rather than std::vector in this 
> case, but not doing it because the thing is opaque does not seem the right 
> deciding factor.  There will clearly be cases where it is beneficial.  Along 
> with all the other testing improvements we need to do in our spare time, it 
> might be good to write some tests for these formatters so they don't regress 
> if they have.

> 

> gdb's build process writes a .gdbinit file into the build products that set 
> up a convenient environment for debugging gdb with gdb.  To use the gdb ones, 
> you have to cd into the gdb directory, and debug from there.  That works but 
> is a little inelegant.  I don't have a better idea right now, but it would be 
> cool to come up with a way to do the same thing in lldb, so that if you're 
> debugging lldb you get both useful formatters for lldb & llvm/clang.

> 

> Another in the continuing series of "What other people should do with their 
> spare time..."


:)

The .lldbinit thing would work for me pretty well. When doing debugging from 
the console, I generally `cd` into the build directory already. If xcode has 
some "initial debugger commands" option we could use it to load that file and 
make that use case work as well. I'll see if I can get around to doing that.


https://reviews.llvm.org/D23406



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


Re: [Lldb-commits] [PATCH] D23406: Fix a race in Broadcaster/Listener interaction

2016-08-15 Thread Pavel Labath via lldb-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL278664: Fix a race in Broadcaster/Listener interaction 
(authored by labath).

Changed prior to commit:
  https://reviews.llvm.org/D23406?vs=67686&id=68007#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D23406

Files:
  lldb/trunk/include/lldb/Core/Broadcaster.h
  lldb/trunk/source/Core/Broadcaster.cpp
  lldb/trunk/unittests/Core/BroadcasterTest.cpp
  lldb/trunk/unittests/Core/CMakeLists.txt

Index: lldb/trunk/source/Core/Broadcaster.cpp
===
--- lldb/trunk/source/Core/Broadcaster.cpp
+++ lldb/trunk/source/Core/Broadcaster.cpp
@@ -56,31 +56,25 @@
 }
 }
 
-void
-Broadcaster::BroadcasterImpl::ListenerIterator (std::function  const &callback)
+llvm::SmallVector, 4>
+Broadcaster::BroadcasterImpl::GetListeners()
 {
-// Private iterator that should be used by everyone except BroadcasterImpl::RemoveListener().
-// We have weak pointers to our listeners which means that at any point the listener can
-// expire which means we will need to take it out of our list. To take care of this, we
-// iterate and check that the weak pointer can be made into a valid shared pointer before
-// we call the callback. If the weak pointer has expired, we remove it from our list.
-collection::iterator pos = m_listeners.begin();
-while (pos != m_listeners.end())
+llvm::SmallVector, 4> listeners;
+listeners.reserve(m_listeners.size());
+
+for (auto it = m_listeners.begin(); it != m_listeners.end();)
 {
-lldb::ListenerSP curr_listener_sp(pos->first.lock());
-if (curr_listener_sp)
+lldb::ListenerSP curr_listener_sp(it->first.lock());
+if (curr_listener_sp && it->second)
 {
-if (callback(curr_listener_sp, pos->second))
-++pos;  // Keep iterating
-else
-return; // Done iterating
+listeners.emplace_back(std::move(curr_listener_sp), it->second);
+++it;
 }
 else
-{
-// The listener has been expired. Remove this entry.
-pos = m_listeners.erase(pos);
-}
+it = m_listeners.erase(it);
 }
+
+return listeners;
 }
 
 void
@@ -91,11 +85,8 @@
 // Make sure the listener forgets about this broadcaster. We do
 // this in the broadcaster in case the broadcaster object initiates
 // the removal.
-
-ListenerIterator([this](const lldb::ListenerSP &curr_listener_sp, uint32_t &curr_event_mask) -> bool {
-curr_listener_sp->BroadcasterWillDestruct (&m_broadcaster);
-return true; // Keep iterating
-});
+for(auto &pair : GetListeners())
+pair.first->BroadcasterWillDestruct (&m_broadcaster);
 
 m_listeners.clear();
 }
@@ -154,16 +145,16 @@
 
 bool handled = false;
 
-ListenerIterator([this, &listener_sp, &handled, event_mask](const lldb::ListenerSP &curr_listener_sp, uint32_t &curr_event_mask) -> bool {
-if (curr_listener_sp == listener_sp)
+for(auto &pair: GetListeners())
+{
+if (pair.first == listener_sp)
 {
 handled = true;
-curr_event_mask |= event_mask;
+pair.second |= event_mask;
 m_broadcaster.AddInitialEventsToListener (listener_sp, event_mask);
-return false; // Stop iterating
+break;
 }
-return true; // Keep iterating
-});
+}
 
 if (!handled)
 {
@@ -187,55 +178,27 @@
 if (!m_hijacking_listeners.empty() && event_type & m_hijacking_masks.back())
 return true;
 
-if (m_listeners.empty())
-return false;
-
-bool result = false;
-ListenerIterator([this, event_type, &result](const lldb::ListenerSP &curr_listener_sp, uint32_t &curr_event_mask) -> bool {
-
-if (curr_event_mask & event_type)
-{
-result = true;
-return false; // Stop iterating
-}
-else
-{
-return true; // Keep iterating
-}
-});
-return result;
+for(auto &pair: GetListeners())
+{
+if (pair.second & event_type)
+return true;
+}
+return false;
 }
 
 bool
 Broadcaster::BroadcasterImpl::RemoveListener (lldb_private::Listener *listener, uint32_t event_mask)
 {
-if (listener)
+if (!listener)
+return false;
+
+std::lock_guard guard(m_listeners_mutex);
+for (auto &pair : GetListeners())
 {
-std::lock_guard guard(m_listeners_mutex);
-collection::iterator pos = m_listeners.begin();
-// See if we already have this listener, and if so, update its mask
-while (pos != m_listeners.end())
+if (pair.first.get() == listener)
 {
-lldb::ListenerSP curr_listener_sp(pos->first.lock());
-if (curr_listener_sp)
-{
-if (curr_listener_sp.get(

[Lldb-commits] [lldb] r278664 - Fix a race in Broadcaster/Listener interaction

2016-08-15 Thread Pavel Labath via lldb-commits
Author: labath
Date: Mon Aug 15 04:53:08 2016
New Revision: 278664

URL: http://llvm.org/viewvc/llvm-project?rev=278664&view=rev
Log:
Fix a race in Broadcaster/Listener interaction

Summary:
The following problem was occuring:
- broadcaster B had two listeners: L1 and L2 (thread T1)
- (T1) B has started to broadcast an event, it has locked a shared_ptr to L1 (in
  ListenerIterator())
- on another thread T2 the penultimate reference to L1 was destroyed (the 
transient object in B is
  now the last reference)
- (T2) the last reference to L2 was destroyed as well
- (T1) B has finished broadcasting the event to L1 and destroyed the last 
shared_ptr
- (T1) this triggered the destructor, which called into B->RemoveListener()
- (T1) all pointers in the m_listeners list were now stale, so RemoveListener 
emptied the list
- (T1) Eventually control returned to the ListenerIterator() for doing 
broadcasting, which was
  still in the middle of iterating through the list
- (T1) Only now, it was holding onto a dangling iterator. BOOM.

I fix this issue by making sure nothing can interfere with the
iterate-and-remove-expired-pointers loop, by moving this logic into a single 
function, which
first locks (or clears) the whole list and then returns the list of valid and 
locked Listeners
for further processing. Instead of std::list I use an llvm::SmallVector which 
should hopefully
offset the fact that we create a copy of the list for the common case where we 
have only a few
listeners (no heap allocations).

A slight difference in behaviour is that now RemoveListener does not remove an 
element from the
list -- it only sets it's mask to 0, which means it will be removed during the 
next iteration of
GetListeners(). This is purely an implementation detail and it should not be 
externally
noticable.

I was not able to reproduce this bug reliably without inserting sleep 
statements into the code,
so I do not add a test for it. Instead, I add some unit tests for the functions 
that I do modify.

Reviewers: clayborg, jingham

Subscribers: tberghammer, lldb-commits

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

Added:
lldb/trunk/unittests/Core/BroadcasterTest.cpp
Modified:
lldb/trunk/include/lldb/Core/Broadcaster.h
lldb/trunk/source/Core/Broadcaster.cpp
lldb/trunk/unittests/Core/CMakeLists.txt

Modified: lldb/trunk/include/lldb/Core/Broadcaster.h
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/Broadcaster.h?rev=278664&r1=278663&r2=278664&view=diff
==
--- lldb/trunk/include/lldb/Core/Broadcaster.h (original)
+++ lldb/trunk/include/lldb/Core/Broadcaster.h Mon Aug 15 04:53:08 2016
@@ -24,6 +24,8 @@
 #include "lldb/lldb-private.h"
 #include "lldb/Core/ConstString.h"
 
+#include "llvm/ADT/SmallVector.h"
+
 namespace lldb_private {
 
 //--
@@ -615,12 +617,11 @@ protected:
 //--
 //
 //--
-typedef std::list< std::pair > collection;
+typedef llvm::SmallVector, 4> 
collection;
 typedef std::map event_names_map;
 
-void
-ListenerIterator (std::function  const &callback);
-
+llvm::SmallVector, 4>
+GetListeners();
 
 Broadcaster &m_broadcaster; ///< The broadcsater 
that this implements
 event_names_map m_event_names;  ///< Optionally define 
event names for readability and logging for each event bit

Modified: lldb/trunk/source/Core/Broadcaster.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Broadcaster.cpp?rev=278664&r1=278663&r2=278664&view=diff
==
--- lldb/trunk/source/Core/Broadcaster.cpp (original)
+++ lldb/trunk/source/Core/Broadcaster.cpp Mon Aug 15 04:53:08 2016
@@ -56,31 +56,25 @@ Broadcaster::CheckInWithManager ()
 }
 }
 
-void
-Broadcaster::BroadcasterImpl::ListenerIterator (std::function  const &callback)
+llvm::SmallVector, 4>
+Broadcaster::BroadcasterImpl::GetListeners()
 {
-// Private iterator that should be used by everyone except 
BroadcasterImpl::RemoveListener().
-// We have weak pointers to our listeners which means that at any point 
the listener can
-// expire which means we will need to take it out of our list. To take 
care of this, we
-// iterate and check that the weak pointer can be made into a valid shared 
pointer before
-// we call the callback. If the weak pointer has expired, we remove it 
from our list.
-collection::iterator pos = m_listeners.begin();
-while (pos != m_listeners.end())
+llvm::SmallVector, 4> listeners;
+listeners.reserve(m_listeners.size());
+
+for (auto it = m_listeners.begin(); it != m_listeners.end();)
   

Re: [Lldb-commits] [PATCH] D17856: Fix expression evaluation with operator new

2016-08-15 Thread Pavel Labath via lldb-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL278670: Fix expression evaluation with operator new 
(authored by labath).

Changed prior to commit:
  https://reviews.llvm.org/D17856?vs=56252&id=68036#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D17856

Files:
  lldb/trunk/include/lldb/Symbol/ClangASTContext.h
  
lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/global_operators/TestCppGlobalOperators.py
  lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/global_operators/main.cpp
  lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
  lldb/trunk/source/Symbol/ClangASTContext.cpp

Index: lldb/trunk/source/Symbol/ClangASTContext.cpp
===
--- lldb/trunk/source/Symbol/ClangASTContext.cpp
+++ lldb/trunk/source/Symbol/ClangASTContext.cpp
@@ -131,6 +131,241 @@
 return *g_map_ptr;
 }
 
+static bool
+IsOperator(const char *name, clang::OverloadedOperatorKind &op_kind)
+{
+if (name == nullptr || name[0] == '\0')
+return false;
+
+#define OPERATOR_PREFIX "operator"
+#define OPERATOR_PREFIX_LENGTH (sizeof(OPERATOR_PREFIX) - 1)
+
+const char *post_op_name = nullptr;
+
+bool no_space = true;
+
+if (::strncmp(name, OPERATOR_PREFIX, OPERATOR_PREFIX_LENGTH))
+return false;
+
+post_op_name = name + OPERATOR_PREFIX_LENGTH;
+
+if (post_op_name[0] == ' ')
+{
+post_op_name++;
+no_space = false;
+}
+
+#undef OPERATOR_PREFIX
+#undef OPERATOR_PREFIX_LENGTH
+
+// This is an operator, set the overloaded operator kind to invalid
+// in case this is a conversion operator...
+op_kind = clang::NUM_OVERLOADED_OPERATORS;
+
+switch (post_op_name[0])
+{
+default:
+if (no_space)
+return false;
+break;
+case 'n':
+if (no_space)
+return false;
+if (strcmp(post_op_name, "new") == 0)
+op_kind = clang::OO_New;
+else if (strcmp(post_op_name, "new[]") == 0)
+op_kind = clang::OO_Array_New;
+break;
+
+case 'd':
+if (no_space)
+return false;
+if (strcmp(post_op_name, "delete") == 0)
+op_kind = clang::OO_Delete;
+else if (strcmp(post_op_name, "delete[]") == 0)
+op_kind = clang::OO_Array_Delete;
+break;
+
+case '+':
+if (post_op_name[1] == '\0')
+op_kind = clang::OO_Plus;
+else if (post_op_name[2] == '\0')
+{
+if (post_op_name[1] == '=')
+op_kind = clang::OO_PlusEqual;
+else if (post_op_name[1] == '+')
+op_kind = clang::OO_PlusPlus;
+}
+break;
+
+case '-':
+if (post_op_name[1] == '\0')
+op_kind = clang::OO_Minus;
+else if (post_op_name[2] == '\0')
+{
+switch (post_op_name[1])
+{
+case '=':
+op_kind = clang::OO_MinusEqual;
+break;
+case '-':
+op_kind = clang::OO_MinusMinus;
+break;
+case '>':
+op_kind = clang::OO_Arrow;
+break;
+}
+}
+else if (post_op_name[3] == '\0')
+{
+if (post_op_name[2] == '*')
+op_kind = clang::OO_ArrowStar;
+break;
+}
+break;
+
+case '*':
+if (post_op_name[1] == '\0')
+op_kind = clang::OO_Star;
+else if (post_op_name[1] == '=' && post_op_name[2] == '\0')
+op_kind = clang::OO_StarEqual;
+break;
+
+case '/':
+if (post_op_name[1] == '\0')
+op_kind = clang::OO_Slash;
+else if (post_op_name[1] == '=' && post_op_name[2] == '\0')
+op_kind = clang::OO_SlashEqual;
+break;
+
+case '%':
+if (post_op_name[1] == '\0')
+op_kind = clang::OO_Percent;
+else if (post_op_name[1] == '=' && post_op_name[2] == '\0')
+op_kind = clang::OO_PercentEqual;
+break;
+
+case '^':
+if (post_op_name[1] == '\0')
+op_kind = clang::OO_Caret;
+else if (post_op_name[1] == '=' && post_op_name[2] == '\0')
+op_kind = clang::OO_CaretEqual;
+break;
+
+case '&':
+if (post_op_name[1] == '\0')
+op_kind = clang::OO_Amp;
+else if (post_op_name[2] == '\0')
+{
+switch (post_op_name[1])
+{
+case '=':
+o

[Lldb-commits] [lldb] r278670 - Fix expression evaluation with operator new

2016-08-15 Thread Pavel Labath via lldb-commits
Author: labath
Date: Mon Aug 15 09:32:32 2016
New Revision: 278670

URL: http://llvm.org/viewvc/llvm-project?rev=278670&view=rev
Log:
Fix expression evaluation with operator new

Summary:
referencing a user-defined operator new was triggering an assert in clang 
because we were
registering the function name as string "operator new", instead of using the 
special operator
enum, which clang has for this purpose. Method operators already had code to 
handle this, and now
I extend this to cover free standing operator functions as well. Test included.

Reviewers: spyffe

Subscribers: sivachandra, paulherman, lldb-commits

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

Modified:
lldb/trunk/include/lldb/Symbol/ClangASTContext.h

lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/global_operators/TestCppGlobalOperators.py
lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/global_operators/main.cpp
lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
lldb/trunk/source/Symbol/ClangASTContext.cpp

Modified: lldb/trunk/include/lldb/Symbol/ClangASTContext.h
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Symbol/ClangASTContext.h?rev=278670&r1=278669&r2=278670&view=diff
==
--- lldb/trunk/include/lldb/Symbol/ClangASTContext.h (original)
+++ lldb/trunk/include/lldb/Symbol/ClangASTContext.h Mon Aug 15 09:32:32 2016
@@ -390,10 +390,9 @@ public:
 static clang::DeclContext *
 GetAsDeclContext (clang::ObjCMethodDecl *objc_method_decl);
 
-
 static bool
-CheckOverloadedOperatorKindParameterCount (uint32_t op_kind, 
-   uint32_t num_params);
+CheckOverloadedOperatorKindParameterCount(bool is_method, 
clang::OverloadedOperatorKind op_kind,
+  uint32_t num_params);
 
 bool
 FieldIsBitfield (clang::FieldDecl* field,
@@ -1188,6 +1187,9 @@ public:
 return clang::QualType();
 }
 
+clang::DeclarationName
+GetDeclarationName(const char *name, const CompilerType 
&function_clang_type);
+
 protected:
 //--
 // Classes that inherit from ClangASTContext can see and modify these

Modified: 
lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/global_operators/TestCppGlobalOperators.py
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/global_operators/TestCppGlobalOperators.py?rev=278670&r1=278669&r2=278670&view=diff
==
--- 
lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/global_operators/TestCppGlobalOperators.py
 (original)
+++ 
lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/global_operators/TestCppGlobalOperators.py
 Mon Aug 15 09:32:32 2016
@@ -10,8 +10,7 @@ class TestCppGlobalOperators(TestBase):
 
 mydir = TestBase.compute_mydir(__file__)
 
-@expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr21765")
-def test_with_run_command(self):
+def prepare_executable_and_get_frame(self):
 self.build()
 
 # Get main source file
@@ -42,8 +41,11 @@ class TestCppGlobalOperators(TestBase):
 self.assertTrue(process.GetState() == lldb.eStateStopped, 
PROCESS_STOPPED)
 thread = lldbutil.get_stopped_thread(process, 
lldb.eStopReasonBreakpoint)
 
-# Check if global operators are evaluated 
-frame = thread.GetSelectedFrame()
+return thread.GetSelectedFrame()
+
+@expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr21765")
+def test_equals_operator(self):
+frame = self.prepare_executable_and_get_frame()
 
 test_result = frame.EvaluateExpression("operator==(s1, s2)")
 self.assertTrue(test_result.IsValid() and test_result.GetValue() == 
"false", "operator==(s1, s2) = false")
@@ -53,3 +55,25 @@ class TestCppGlobalOperators(TestBase):
 
 test_result = frame.EvaluateExpression("operator==(s2, s3)")
 self.assertTrue(test_result.IsValid() and test_result.GetValue() == 
"false", "operator==(s2, s3) = false")
+
+def do_new_test(self, frame, expr, expected_value_name):
+"""Evaluate a new expression, and check its result"""
+
+expected_value = frame.FindValue(expected_value_name, 
lldb.eValueTypeVariableGlobal)
+self.assertTrue(expected_value.IsValid())
+
+expected_value_addr = expected_value.AddressOf()
+self.assertTrue(expected_value_addr.IsValid())
+
+got = frame.EvaluateExpression(expr)
+self.assertTrue(got.IsValid())
+self.assertEqual(got.GetValueAsUnsigned(), 
expected_value_addr.GetValueAsUnsigned())
+got_type = got.GetType()
+self.assertTrue(got_type.IsPointerType())
+self.assertEqual(got_type.GetPointeeType().GetName(), "Struct")
+
+def test_operator_

[Lldb-commits] Buildbot numbers for the week of 7/31/2016 - 8/06/2016

2016-08-15 Thread Galina Kistanova via lldb-commits
Hello everyone,

Below are some buildbot numbers for the week of 7/31/2016 - 8/06/2016.

Please see the same data in attached csv files:

The longest time each builder was red during the last week;
"Status change ratio" by active builder (percent of builds that changed the
builder status from greed to red or from red to green);
Count of commits by project;
Number of completed builds, failed builds and average build time for
successful builds per active builder;
Average waiting time for a revision to get build result per active builder
(response time);

Thanks

Galina


The longest time each builder was red during the last week:

 buildername|  was_red
+---
 clang-3stage-ubuntu| 104:26:38
 clang-x64-ninja-win7   | 57:39:42
 clang-x86-win2008-selfhost | 37:12:21
 sanitizer-windows  | 35:59:16
 lldb-windows7-android  | 30:43:38
 lldb-x86_64-darwin-13.4| 28:53:57
 libcxx-libcxxabi-singlethreaded-x86_64-linux-debian| 16:52:14
 sanitizer-x86_64-linux | 12:57:21
 clang-native-aarch64-full  | 11:32:22
 clang-cmake-aarch64-full   | 09:10:29
 clang-ppc64le-linux-multistage | 07:58:21
 sanitizer-ppc64le-linux| 07:55:40
 clang-ppc64le-linux-lnt| 07:29:25
 sanitizer-ppc64be-linux| 07:17:24
 clang-ppc64be-linux-multistage | 06:42:28
 clang-cmake-thumbv7-a15-full-sh| 06:28:20
 clang-cmake-mips   | 06:27:27
 clang-ppc64be-linux-lnt| 06:21:39
 perf-x86_64-penryn-O3  | 06:19:35
 perf-x86_64-penryn-O3-polly-fast   | 06:13:02
 sanitizer-x86_64-linux-bootstrap   | 05:50:16
 clang-ppc64le-linux| 05:31:03
 clang-atom-d525-fedora-rel | 05:30:36
 clang-ppc64be-linux| 05:28:39
 clang-cmake-armv7-a15-selfhost | 05:23:07
 lldb-x86_64-ubuntu-14.04-cmake | 05:21:03
 clang-cmake-aarch64-42vma  | 05:15:20
 clang-cmake-aarch64-quick  | 04:58:26
 perf-x86_64-penryn-O3-polly-unprofitable   | 04:41:49
 clang-cmake-armv7-a15-full | 04:30:53
 perf-x86_64-penryn-O3-polly-parallel-fast  | 04:22:43
 clang-cuda-build   | 04:16:57
 perf-x86_64-penryn-O3-polly-before-vectorizer-unprofitable | 04:14:49
 clang-native-arm-lnt   | 04:08:27
 llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast   | 02:55:42
 llvm-clang-lld-x86_64-debian-fast  | 02:54:29
 sanitizer-x86_64-linux-autoconf| 02:50:25
 llvm-mips-linux| 02:35:15
 sanitizer-x86_64-linux-fuzzer  | 02:01:54
 clang-x86_64-debian-fast   | 01:34:05
 lldb-amd64-ninja-netbsd7   | 01:30:36
 sanitizer-x86_64-linux-fast| 01:24:45
 lld-x86_64-freebsd | 01:23:58
 llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast | 01:20:51
 lld-x86_64-win7| 01:20:37
 lld-x86_64-darwin13| 01:20:27
 lldb-x86_64-ubuntu-14.04-buildserver   | 01:18:06
 lldb-x86_64-ubuntu-14.04-android   | 01:14:59
 clang-cmake-armv7-a15  | 01:07:50
 clang-cmake-thumbv7-a15| 01:07:50
 libcxx-libcxxabi-x86_64-linux-ubuntu-gcc49-cxx11   | 01:04:32
 clang-hexagon-elf  | 00:58:54
 llvm-hexagon-elf   | 00:52:51
 polly-amd64-linux  | 00:42:35
 clang-x86_64-linux-abi-test| 00:40:12
 clang-s390x-linux  | 00:32:48
 lldb-amd64-ninja-freebsd11 | 00:23:50
(57 rows)


"Status change ratio" by active builder (percent of builds that changed the
builder status from greed to red or from red to green):

 buildername 

[Lldb-commits] Buildbot numbers for the last week of 8/07/2016 - 8/13/2016

2016-08-15 Thread Galina Kistanova via lldb-commits
Hello everyone,

Below are some buildbot numbers for the last week of 8/07/2016 - 8/13/2016.

Please see the same data in attached csv files:

The longest time each builder was red during the last week;
"Status change ratio" by active builder (percent of builds that changed the
builder status from greed to red or from red to green);
Count of commits by project;
Number of completed builds, failed builds and average build time for
successful builds per active builder;
Average waiting time for a revision to get build result per active builder
(response time);

Thanks

Galina


The longest time each builder was red during the last week:

 buildername|  was_red
+---
 lldb-windows7-android  | 58:07:37
 clang-ppc64be-linux-lnt| 30:43:16
 clang-native-aarch64-full  | 26:00:07
 libcxx-libcxxabi-libunwind-arm-linux-noexceptions  | 24:33:36
 libcxx-libcxxabi-libunwind-x86_64-linux-debian | 24:14:15
 libcxx-libcxxabi-libunwind-arm-linux   | 23:14:43
 libcxx-libcxxabi-libunwind-x86_64-linux-ubuntu | 22:38:52
 clang-cmake-armv7-a15-selfhost-neon| 18:00:25
 clang-cmake-thumbv7-a15-full-sh| 17:46:36
 clang-cmake-armv7-a15-selfhost | 16:41:55
 clang-ppc64le-linux-multistage | 15:50:57
 llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast | 14:17:49
 llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast   | 14:14:15
 sanitizer-ppc64be-linux| 13:53:48
 sanitizer-ppc64le-linux| 13:14:27
 clang-ppc64be-linux-multistage | 13:04:22
 sanitizer-x86_64-linux | 13:00:15
 clang-native-arm-lnt   | 12:19:32
 clang-x86-win2008-selfhost | 10:05:12
 clang-x64-ninja-win7   | 10:00:44
 sanitizer-x86_64-linux-bootstrap   | 09:34:04
 sanitizer-windows  | 09:29:19
 clang-cmake-armv7-a15-full | 08:39:13
 clang-cmake-thumbv7-a15| 08:36:47
 clang-cmake-armv7-a15  | 08:36:08
 sanitizer-x86_64-linux-fast| 08:31:37
 clang-atom-d525-fedora-rel | 08:15:31
 clang-cmake-mips   | 07:15:00
 perf-x86_64-penryn-O3-polly| 06:24:47
 perf-x86_64-penryn-O3-polly-fast   | 06:03:32
 clang-ppc64le-linux| 05:28:22
 lldb-x86_64-ubuntu-14.04-android   | 05:17:18
 llvm-mips-linux| 05:10:10
 clang-ppc64be-linux| 04:49:44
 clang-cmake-aarch64-quick  | 04:22:23
 clang-ppc64le-linux-lnt| 04:17:03
 llvm-clang-lld-x86_64-debian-fast  | 04:11:50
 clang-cmake-aarch64-42vma  | 03:46:22
 polly-amd64-linux  | 03:27:00
 clang-cmake-aarch64-full   | 03:04:35
 lldb-x86_64-darwin-13.4| 02:55:02
 clang-x86_64-debian-fast   | 02:42:25
 lldb-x86_64-ubuntu-14.04-cmake | 02:31:13
 clang-bpf-build| 02:15:46
 clang-cuda-build   | 02:14:35
 perf-x86_64-penryn-O3-polly-before-vectorizer-unprofitable | 02:14:03
 llvm-sphinx-docs   | 02:08:21
 libomp-ompt-gcc-x86_64-linux-debian| 02:05:29
 libomp-gcc-x86_64-linux-debian | 02:05:24
 perf-x86_64-penryn-O3-polly-unprofitable   | 02:03:12
 lldb-x86_64-ubuntu-14.04-buildserver   | 01:49:26
 perf-x86_64-penryn-O3-polly-parallel-fast  | 01:44:41
 sanitizer-x86_64-linux-fuzzer  | 01:15:34
 clang-3stage-ubuntu| 01:10:32
 libcxx-libcxxabi-x86_64-linux-ubuntu-cxx03 | 01:08:59
 sanitizer-x86_64-linux-autoconf| 01:02:47
 llvm-hexagon-elf   | 00:59:27
 clang-hexagon-elf  | 00:59:10
 clang-x86_64-linux-abi-test| 00:47:13
 lld-x86_64-win7

Re: [Lldb-commits] [PATCH] D20386: Correct makefile.rules to use arm/aarch64 target specific AR and OBJCOPY

2016-08-15 Thread Muhammad Omair Javaid via lldb-commits
omjavaid added a comment.

I like your suggestions and I dont think we have any other way but to use 
preset environment variable to detect what kind of TOOLCHAIN we want to use 
apart from some standard cases where we have the ability to detect through 
proposed hack logic.

I agree we should have the ability to override this hack as well just for the 
fact that it allows us to use various other versions of AR, OBJCOPY etc.


https://reviews.llvm.org/D20386



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


[Lldb-commits] [lldb] r278774 - Symbol: add missing item in covered switch

2016-08-15 Thread Saleem Abdulrasool via lldb-commits
Author: compnerd
Date: Mon Aug 15 23:12:36 2016
New Revision: 278774

URL: http://llvm.org/viewvc/llvm-project?rev=278774&view=rev
Log:
Symbol: add missing item in covered switch

RenderScript was missing from the covered switch.  Add it to avoid a warning of
the missing entry.  NFC.

Modified:
lldb/trunk/source/Symbol/ClangASTContext.cpp

Modified: lldb/trunk/source/Symbol/ClangASTContext.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Symbol/ClangASTContext.cpp?rev=278774&r1=278773&r2=278774&view=diff
==
--- lldb/trunk/source/Symbol/ClangASTContext.cpp (original)
+++ lldb/trunk/source/Symbol/ClangASTContext.cpp Mon Aug 15 23:12:36 2016
@@ -406,6 +406,7 @@ ParseLangArgs (LangOptions &Opts, InputK
 case IK_None:
 case IK_AST:
 case IK_LLVM_IR:
+case IK_RenderScript:
 assert (!"Invalid input kind!");
 case IK_OpenCL:
 LangStd = LangStandard::lang_opencl;


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