[Lldb-commits] Buildbot numbers for the week of 12/10/2017 - 12/16/2017

2017-12-28 Thread Galina Kistanova via lldb-commits
Hello everyone,

Below are some buildbot numbers for the week of 12/10/2017 - 12/16/2017.

Please see the same data in attached csv files:

The longest time each builder was red during the 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 week:

buildername| was_red
---+-
 llvm-clang-x86_64-expensive-checks-win| 71:23:24
 clang-ppc64le-linux-multistage| 58:28:42
 ubuntu-gcc7.1-werror  | 51:53:30
 sanitizer-x86_64-linux-fuzzer | 39:48:21
 clang-x64-ninja-win7  | 34:31:36
 clang-ppc64be-linux-multistage| 26:10:41
 libcxx-libcxxabi-x86_64-linux-debian  | 21:04:30
 clang-x86_64-linux-selfhost-modules   | 09:52:57
 clang-x86_64-linux-selfhost-modules-2 | 09:04:12
 clang-cmake-thumbv7-a15-full-sh   | 08:05:51
 clang-s390x-linux-multistage  | 07:23:57
 clang-ppc64le-linux-lnt   | 06:45:03
 sanitizer-ppc64le-linux   | 06:23:23
 clang-cmake-armv7-a15-full| 06:21:20
 clang-cmake-armv7-a15-selfhost-neon   | 06:07:52
 lldb-windows7-android | 05:52:17
 clang-lld-x86_64-2stage   | 05:48:48
 clang-cmake-armv7-a15-selfhost| 05:41:38
 libcxx-libcxxabi-libunwind-arm-linux-noexceptions | 05:02:49
 clang-with-lto-ubuntu | 05:02:23
 clang-cmake-aarch64-full  | 04:58:40
 llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast| 04:29:56
 clang-x86_64-debian-fast  | 04:29:10
 clang-with-thin-lto-ubuntu| 04:24:14
 clang-cmake-aarch64-lld   | 04:20:35
 libcxx-libcxxabi-libunwind-arm-linux  | 04:18:01
 sanitizer-x86_64-linux-bootstrap-msan | 04:10:31
 lldb-x86_64-darwin-13.4   | 03:59:57
 clang-s390x-linux-lnt | 03:41:27
 llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast  | 03:21:04
 sanitizer-windows | 03:19:02
 lldb-x86-windows-msvc2015 | 03:16:45
 lld-x86_64-win7   | 03:16:19
 lld-x86_64-darwin13   | 03:11:44
 sanitizer-x86_64-linux| 03:11:15
 clang-cuda-build  | 02:54:23
 clang-hexagon-elf | 02:46:24
 clang-cmake-x86_64-sde-avx512-linux   | 02:34:13
 polly-amd64-linux | 02:30:47
 llvm-hexagon-elf  | 02:21:28
 sanitizer-x86_64-linux-bootstrap  | 02:16:05
 clang-ppc64le-linux   | 02:09:57
 sanitizer-x86_64-linux-android| 02:09:24
 sanitizer-x86_64-linux-fast   | 02:06:48
 lldb-amd64-ninja-netbsd8  | 02:03:55
 sanitizer-x86_64-linux-bootstrap-ubsan| 01:52:28
 reverse-iteration | 01:48:52
 sanitizer-ppc64be-linux   | 01:46:55
 lld-x86_64-freebsd| 01:37:59
 lldb-x86_64-ubuntu-14.04-buildserver  | 01:37:43
 clang-atom-d525-fedora-rel| 01:37:40
 clang-cmake-x86_64-avx2-linux | 01:34:07
 clang-s390x-linux | 01:32:46
 clang-cmake-aarch64-quick | 01:29:04
 lldb-x86_64-ubuntu-14.04-cmake| 01:25:17
 polly-arm-linux   | 01:21:49
 clang-cmake-thumbv7-a15   | 01:21:01
 clang-cmake-armv7-a15 | 01:18:18
 clang-cmake-x86_64-avx2-linux-perf| 01:14:32
 clang-x86_64-linux-abi-test   | 01:13:58
 clang-bpf-build   | 01:13:08
 clang-cmake-aarch64-global-isel   | 01:10:36
 clang-ppc64be-linux   | 01:09:47
 clang-ppc64be-linux-lnt   | 01:03:14
 perf-x86_64-penryn-O3-polly-parallel-fast | 00:56:06
 perf-x86_64-penryn-O3-polly-unprofitable  | 00:56:00
 sanitizer-x86_64-linux-autoconf   | 00:39:21
 lldb-x86_64-ubuntu-14.04-android  | 00:36:04
 lldb-amd64-ninja-freebsd11

[Lldb-commits] Buildbot numbers for the week of 12/17/2017 - 12/23/2017

2017-12-28 Thread Galina Kistanova via lldb-commits
Hello everyone,

Below are some buildbot numbers for the last week of 12/17/2017 -
12/23/2017.

Please see the same data in attached csv files:

The longest time each builder was red during the 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 week:

   buildername| was_red
--+-
 llvm-mips-linux  | 86:05:19
 openmp-ompt-gcc-x86_64-linux-debian  | 66:55:04
 perf-x86_64-penryn-O3-polly-unprofitable | 65:33:59
 llvm-clang-x86_64-expensive-checks-win   | 62:57:35
 libcxx-libcxxabi-libunwind-x86_64-linux-debian   | 32:45:39
 reverse-iteration| 31:04:41
 sanitizer-ppc64le-linux  | 30:24:22
 clang-lld-x86_64-2stage  | 28:09:44
 ubuntu-gcc7.1-werror | 28:06:31
 clang-with-lto-ubuntu| 26:34:49
 sanitizer-ppc64be-linux  | 26:29:44
 clang-cmake-aarch64-full | 26:10:16
 clang-ppc64le-linux-multistage   | 26:00:40
 clang-ppc64le-linux-lnt  | 25:53:05
 clang-with-thin-lto-ubuntu   | 25:44:08
 clang-ppc64be-linux-multistage   | 25:20:38
 clang-x86_64-linux-selfhost-modules  | 24:50:24
 clang-x86_64-linux-selfhost-modules-2| 24:25:47
 clang-s390x-linux-multistage | 20:29:52
 clang-s390x-linux-lnt| 06:49:34
 clang-s390x-linux| 06:48:12
 lldb-windows7-android| 06:42:05
 clang-bpf-build  | 06:25:36
 clang-atom-d525-fedora-rel   | 04:56:08
 clang-cmake-x86_64-avx2-linux| 04:31:15
 lldb-amd64-ninja-netbsd8 | 04:15:51
 clang-cmake-x86_64-sde-avx512-linux  | 04:09:32
 clang-ppc64be-linux-lnt  | 03:52:55
 sanitizer-x86_64-linux-bootstrap-ubsan   | 03:51:49
 clang-hexagon-elf| 03:47:45
 perf-x86_64-penryn-O3-polly-parallel-fast| 03:42:42
 clang-x86_64-linux-abi-test  | 03:42:23
 clang-cuda-build | 03:34:17
 clang-x86_64-debian-fast | 03:32:14
 llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast   | 03:30:01
 sanitizer-x86_64-linux-bootstrap-msan| 03:26:41
 clang-cmake-aarch64-lld  | 03:24:50
 clang-cmake-armv7-a15-full   | 03:23:07
 sanitizer-x86_64-linux-fast  | 03:16:42
 sanitizer-x86_64-linux-bootstrap | 03:15:05
 clang-cmake-aarch64-global-isel  | 03:04:14
 clang-ppc64le-linux  | 03:00:02
 clang-ppc64be-linux  | 02:57:59
 llvm-hexagon-elf | 02:47:56
 lldb-x86_64-ubuntu-14.04-android | 02:44:54
 clang-cmake-thumbv7-a15  | 02:38:17
 clang-cmake-armv7-a15| 02:22:38
 llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast | 02:18:03
 clang-cmake-x86_64-avx2-linux-perf   | 02:14:43
 polly-amd64-linux| 01:49:19
 lldb-x86_64-darwin-13.4  | 01:45:44
 clang-native-arm-lnt | 01:33:05
 sanitizer-x86_64-linux   | 01:22:29
 sanitizer-x86_64-linux-android   | 01:12:38
 sanitizer-x86_64-linux-fuzzer| 01:11:16
 lld-x86_64-freebsd   | 00:59:30
 lld-x86_64-win7  | 00:53:01
 lldb-x86-windows-msvc2015| 00:47:32
 lld-x86_64-darwin13  | 00:44:37
 lldb-x86_64-ubuntu-14.04-cmake   | 00:27:01
 polly-arm-linux  | 00:19:47
 sanitizer-windows| 00:18:45
 lldb-amd64-ninja-freebsd11   | 00:15:35
 clang-tools-sphinx-docs  | 00:10:08
(64 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   | builds | changes
| status_change_ratio
-++-+

[Lldb-commits] [PATCH] D41428: [lldb] This commit adds support to cache a PDB's global scope and fixes a bug in getting the source file name for a compiland

2017-12-28 Thread Aaron Smith via Phabricator via lldb-commits
asmith updated this revision to Diff 128312.
asmith added a comment.

These changes will fix this crash in the current mainline:

lldb-test.exe symbols (path-to-your-lldb-exe)


Repository:
  rL LLVM

https://reviews.llvm.org/D41428

Files:
  source/Plugins/SymbolFile/PDB/PDBASTParser.cpp
  source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp
  source/Plugins/SymbolFile/PDB/SymbolFilePDB.h

Index: source/Plugins/SymbolFile/PDB/SymbolFilePDB.h
===
--- source/Plugins/SymbolFile/PDB/SymbolFilePDB.h
+++ source/Plugins/SymbolFile/PDB/SymbolFilePDB.h
@@ -16,6 +16,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/DebugInfo/PDB/IPDBSession.h"
 #include "llvm/DebugInfo/PDB/PDB.h"
+#include "llvm/DebugInfo/PDB/PDBSymbolExe.h"
 
 class SymbolFilePDB : public lldb_private::SymbolFile {
 public:
@@ -167,13 +168,14 @@
   const llvm::pdb::IPDBSession &GetPDBSession() const;
 
 private:
-  lldb::CompUnitSP ParseCompileUnitForSymIndex(uint32_t id);
+  lldb::CompUnitSP
+  ParseCompileUnitForUID(uint32_t id, uint32_t index = UINT32_MAX);
 
   bool ParseCompileUnitLineTable(const lldb_private::SymbolContext &sc,
  uint32_t match_line);
 
   void BuildSupportFileIdToSupportFileIndexMap(
-  const llvm::pdb::PDBSymbolCompiland &cu,
+  const llvm::pdb::PDBSymbolCompiland &pdb_compiland,
   llvm::DenseMap &index_map) const;
 
   void FindTypesByRegex(const lldb_private::RegularExpression ®ex,
@@ -183,11 +185,21 @@
   void FindTypesByName(const std::string &name, uint32_t max_matches,
lldb_private::TypeMap &types);
 
+  void GetCompileUnitIndex(const llvm::pdb::PDBSymbolCompiland *pdb_compiland,
+   uint32_t &index);
+
+  std::string GetSourceFileNameForPDBCompiland(
+  const llvm::pdb::PDBSymbolCompiland *pdb_compiland);
+
+  std::unique_ptr
+  GetPDBCompilandByUID(uint32_t uid);
+
   llvm::DenseMap m_comp_units;
   llvm::DenseMap m_types;
 
   std::vector m_builtin_types;
   std::unique_ptr m_session_up;
+  std::unique_ptr m_global_scope_up;
   uint32_t m_cached_compile_unit_count;
   std::unique_ptr m_tu_decl_ctx_up;
 };
Index: source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp
===
--- source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp
+++ source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp
@@ -18,6 +18,7 @@
 #include "lldb/Symbol/LineTable.h"
 #include "lldb/Symbol/ObjectFile.h"
 #include "lldb/Symbol/SymbolContext.h"
+#include "lldb/Symbol/SymbolVendor.h"
 #include "lldb/Symbol/TypeMap.h"
 #include "lldb/Utility/RegularExpression.h"
 
@@ -43,6 +44,7 @@
 
 #include 
 
+using namespace lldb;
 using namespace lldb_private;
 using namespace llvm::pdb;
 
@@ -92,7 +94,8 @@
 }
 
 SymbolFilePDB::SymbolFilePDB(lldb_private::ObjectFile *object_file)
-: SymbolFile(object_file), m_cached_compile_unit_count(0) {}
+: SymbolFile(object_file), m_session_up(), m_global_scope_up(),
+  m_cached_compile_unit_count(0), m_tu_decl_ctx_up() {}
 
 SymbolFilePDB::~SymbolFilePDB() {}
 
@@ -152,41 +155,95 @@
 
 void SymbolFilePDB::InitializeObject() {
   lldb::addr_t obj_load_address = m_obj_file->GetFileOffset();
+  lldbassert(obj_load_address &&
+ obj_load_address != LLDB_INVALID_ADDRESS);
   m_session_up->setLoadAddress(obj_load_address);
+  if (!m_global_scope_up)
+m_global_scope_up = m_session_up->getGlobalScope();
+  lldbassert(m_global_scope_up.get());
 
   TypeSystem *type_system =
   GetTypeSystemForLanguage(lldb::eLanguageTypeC_plus_plus);
   ClangASTContext *clang_type_system =
   llvm::dyn_cast_or_null(type_system);
+  lldbassert(clang_type_system);
   m_tu_decl_ctx_up = llvm::make_unique(
   type_system, clang_type_system->GetTranslationUnitDecl());
 }
 
 uint32_t SymbolFilePDB::GetNumCompileUnits() {
   if (m_cached_compile_unit_count == 0) {
-auto global = m_session_up->getGlobalScope();
-auto compilands = global->findAllChildren();
+auto compilands = m_global_scope_up->findAllChildren();
+if (!compilands)
+  return 0;
+
+// The linker could link *.dll (compiland language = LINK), or import
+// *.dll. For example, a compiland with name `Import:KERNEL32.dll`
+// could be found as a child of the global scope (PDB executable).
+// Usually, such compilands contain `thunk` symbols in which we are not
+// interested for now. However we still count them in the compiland list
+// so making access to them by index could be more easier.
+// The other reason is that if we perform any compiland related activity,
+// like finding symbols through llvm::pdb::IPDBSession methods,
+// such compilands will be all searched automatically no matter whether
+// we count them in or not.
 m_cached_compile_unit_count = compilands->getChildCount();
 
 // The linker can inject an additional "dummy" compilation unit into the
 // PDB. Ignore this spe

[Lldb-commits] [PATCH] D41428: [lldb] This commit adds support to cache a PDB's global scope and fixes a bug in getting the source file name for a compiland

2017-12-28 Thread Zachary Turner via Phabricator via lldb-commits
zturner added a comment.

Can you add a test with `REQUIRES: windows` that builds a simple program using 
clang-cl, generates a PDB, and then uses `lldb-test` to check part of the 
output against that executable?  It can be a one line check, basically just 
proving that it doesn't crash, and we can add more specific tests for certain 
types of symbols and types later.


Repository:
  rL LLVM

https://reviews.llvm.org/D41428



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