This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] Ignore non relobj files in gc


If a relocation points to a dynamic object we can ignore it, since we
cannot gc an already existing .so file.

The attached patch produces an identical chromium binary, but does so
a bit faster (see the attached perf logs).

Using Relobj also helps me in my patch for gcing parts of SHF_MERGE sections.

Cheers,
Rafael


2015-04-22  Rafael Ãvila de EspÃndola <rafael.espindola@gmail.com>

* gc.cc (Garbage_collection::do_transitive_closure): Use Rel_section_id.
* gc.h (Garbage_collection): Use Rel_section_id.
(is_section_garbage): Use Relobj.
(add_cident_section): Use Relobj.
(add_reference): Use Relobj and Rel_section_id.
(gc_process_relocs): Ignore non Relobj objects.
* object.cc (do_layout): Use Rel_section_id.
* object.h (Rel_section_id): New.
* powerpc.cc (Powerpc_relobj): Use Rel_section_id.
(add_reference): Use Relobj and Rel_section_id.
(do_gc_add_reference): Use Relobj.
(gc_process_relocs): Use Relobj.
(do_gc_mark_symbol): Use Rel_section_id.
* symtab.cc (gc_mark_symbol): Use Rel_section_id.
* symtab.h (relobj): New.
* target.h (gc_add_reference): Use Relobj.
(do_gc_add_reference): Use Relobj.
diff --git a/gold/gc.cc b/gold/gc.cc
index 08a2bba..eff4968 100644
--- a/gold/gc.cc
+++ b/gold/gc.cc
@@ -38,7 +38,7 @@ Garbage_collection::do_transitive_closure()
     {
       // Add elements from the work list to the referenced list
       // one by one.
-      Section_id entry = this->worklist().back();
+      Rel_section_id entry = this->worklist().back();
       this->worklist().pop_back();
       if (!this->referenced_list().insert(entry).second)
         continue;
diff --git a/gold/gc.h b/gold/gc.h
index bf4023d..9723e3f 100644
--- a/gold/gc.h
+++ b/gold/gc.h
@@ -49,9 +49,9 @@ class Garbage_collection
 {
  public:
 
-  typedef Unordered_set<Section_id, Section_id_hash> Sections_reachable;
-  typedef std::map<Section_id, Sections_reachable> Section_ref;
-  typedef std::vector<Section_id> Worklist_type;
+  typedef Unordered_set<Rel_section_id, Section_id_hash> Sections_reachable;
+  typedef std::map<Rel_section_id, Sections_reachable> Section_ref;
+  typedef std::vector<Rel_section_id> Worklist_type;
   // This maps the name of the section which can be represented as a C
   // identifier (cident) to the list of sections that have that name.
   // Different object files can have cident sections with the same name.
@@ -87,8 +87,8 @@ class Garbage_collection
   do_transitive_closure();
 
   bool
-  is_section_garbage(Object* obj, unsigned int shndx)
-  { return (this->referenced_list().find(Section_id(obj, shndx))
+  is_section_garbage(Relobj* obj, unsigned int shndx)
+  { return (this->referenced_list().find(Rel_section_id(obj, shndx))
             == this->referenced_list().end()); }
 
   Cident_section_map*
@@ -97,17 +97,17 @@ class Garbage_collection
 
   void
   add_cident_section(std::string section_name,
-		     Section_id secn)
+		     Rel_section_id secn)
   { this->cident_sections_[section_name].insert(secn); }
 
   // Add a reference from the SRC_SHNDX-th section of SRC_OBJECT to
   // DST_SHNDX-th section of DST_OBJECT.
   void
-  add_reference(Object* src_object, unsigned int src_shndx,
-		Object* dst_object, unsigned int dst_shndx)
+  add_reference(Relobj* src_object, unsigned int src_shndx,
+		Relobj* dst_object, unsigned int dst_shndx)
   {
-    Section_id src_id(src_object, src_shndx);
-    Section_id dst_id(dst_object, dst_shndx);
+    Rel_section_id src_id(src_object, src_shndx);
+    Rel_section_id dst_id(dst_object, dst_shndx);
     Sections_reachable& reachable = this->section_reloc_map_[src_id];
     reachable.insert(dst_id);
   }
@@ -229,7 +229,7 @@ gc_process_relocs(
       unsigned int r_type = elfcpp::elf_r_type<size>(r_info);
       typename elfcpp::Elf_types<size>::Elf_Swxword addend =
       Reloc_types<sh_type, size, big_endian>::get_reloc_addend_noerror(&reloc);
-      Object* dst_obj;
+      Relobj* dst_obj;
       unsigned int dst_indx;
       typedef typename elfcpp::Elf_types<size>::Elf_Addr Address;
       Address dst_off;
@@ -291,7 +291,7 @@ gc_process_relocs(
           bool is_ordinary = false;
           if (gsym->source() == Symbol::FROM_OBJECT)
             {
-              dst_obj = gsym->object();
+              dst_obj = gsym->relobj();
               dst_indx = gsym->shndx(&is_ordinary);
             }
 	  dst_off = static_cast<const Sized_symbol<size>*>(gsym)->value();
@@ -340,7 +340,7 @@ gc_process_relocs(
                                                          src_obj));
 	    }
 
-          if (gsym->source() != Symbol::FROM_OBJECT)
+          if (dst_obj == NULL)
             continue;
           if (!is_ordinary)
             continue;
@@ -357,7 +357,7 @@ gc_process_relocs(
                 symtab->gc()->cident_sections()->find(std::string(cident_section_name));
               if (ele == symtab->gc()->cident_sections()->end())
                 continue;
-	      Section_id src_id(src_obj, src_indx);
+	      Rel_section_id src_id(src_obj, src_indx);
               Garbage_collection::Sections_reachable&
                 v(symtab->gc()->section_reloc_map()[src_id]);
               Garbage_collection::Sections_reachable& cident_secn(ele->second);
diff --git a/gold/object.cc b/gold/object.cc
index 18c6670..a2bad83 100644
--- a/gold/object.cc
+++ b/gold/object.cc
@@ -1602,7 +1602,7 @@ Sized_relobj_file<size, big_endian>::do_layout(Symbol_table* symtab,
 	      || shdr.get_sh_type() == elfcpp::SHT_INIT_ARRAY
 	      || shdr.get_sh_type() == elfcpp::SHT_FINI_ARRAY)
 	    {
-	      symtab->gc()->worklist().push_back(Section_id(this, i));
+	      symtab->gc()->worklist().push_back(Rel_section_id(this, i));
 	    }
 	  // If the section name XXX can be represented as a C identifier
 	  // it cannot be discarded if there are references to
@@ -1610,7 +1610,7 @@ Sized_relobj_file<size, big_endian>::do_layout(Symbol_table* symtab,
 	  // specially handled.
 	  if (is_cident(name))
 	    {
-	      symtab->gc()->add_cident_section(name, Section_id(this, i));
+	      symtab->gc()->add_cident_section(name, Rel_section_id(this, i));
 	    }
 	}
 
diff --git a/gold/object.h b/gold/object.h
index fc93abd..29376f2 100644
--- a/gold/object.h
+++ b/gold/object.h
@@ -2865,6 +2865,8 @@ struct Relocate_info
 // key type for various section maps.
 typedef std::pair<Object*, unsigned int> Section_id;
 
+typedef std::pair<Relobj*, unsigned int> Rel_section_id;
+
 // This is similar to Section_id but is used when the section
 // pointers are const.
 typedef std::pair<const Object*, unsigned int> Const_section_id;
diff --git a/gold/powerpc.cc b/gold/powerpc.cc
index fddf3fa..57e0082 100644
--- a/gold/powerpc.cc
+++ b/gold/powerpc.cc
@@ -79,7 +79,7 @@ class Powerpc_relobj : public Sized_relobj_file<size, big_endian>
 {
 public:
   typedef typename elfcpp::Elf_types<size>::Elf_Addr Address;
-  typedef Unordered_set<Section_id, Section_id_hash> Section_refs;
+  typedef Unordered_set<Rel_section_id, Section_id_hash> Section_refs;
   typedef Unordered_map<Address, Section_refs> Access_from;
 
   Powerpc_relobj(const std::string& name, Input_file* input_file, off_t offset,
@@ -212,11 +212,11 @@ public:
   // Add a reference from SRC_OBJ, SRC_INDX to this object's .opd
   // section at DST_OFF.
   void
-  add_reference(Object* src_obj,
+  add_reference(Relobj* src_obj,
 		unsigned int src_indx,
 		typename elfcpp::Elf_types<size>::Elf_Addr dst_off)
   {
-    Section_id src_id(src_obj, src_indx);
+    Rel_section_id src_id(src_obj, src_indx);
     this->access_from_map_[dst_off].insert(src_id);
   }
 
@@ -238,7 +238,7 @@ public:
       if (this->opd_ent_[i].gc_mark)
 	{
 	  unsigned int shndx = this->opd_ent_[i].shndx;
-	  symtab->gc()->worklist().push_back(Section_id(this, shndx));
+	  symtab->gc()->worklist().push_back(Rel_section_id(this, shndx));
 	}
   }
 
@@ -780,9 +780,9 @@ class Target_powerpc : public Sized_target<size, big_endian>
   // section of a function descriptor.
   void
   do_gc_add_reference(Symbol_table* symtab,
-		      Object* src_obj,
+		      Relobj* src_obj,
 		      unsigned int src_shndx,
-		      Object* dst_obj,
+		      Relobj* dst_obj,
 		      unsigned int dst_shndx,
 		      Address dst_off) const;
 
@@ -6347,7 +6347,7 @@ Target_powerpc<size, big_endian>::gc_process_relocs(
 	  typename Powerpc_relobj<size, big_endian>::Section_refs::iterator s;
 	  for (s = p->second.begin(); s != p->second.end(); ++s)
 	    {
-	      Object* src_obj = s->first;
+	      Relobj* src_obj = s->first;
 	      unsigned int src_indx = s->second;
 	      symtab->gc()->add_reference(src_obj, src_indx,
 					  ppc_object, dst_indx);
@@ -6384,9 +6384,9 @@ template<int size, bool big_endian>
 void
 Target_powerpc<size, big_endian>::do_gc_add_reference(
     Symbol_table* symtab,
-    Object* src_obj,
+    Relobj* src_obj,
     unsigned int src_shndx,
-    Object* dst_obj,
+    Relobj* dst_obj,
     unsigned int dst_shndx,
     Address dst_off) const
 {
@@ -6434,8 +6434,8 @@ Target_powerpc<size, big_endian>::do_gc_mark_symbol(
 	  if (ppc_object->opd_valid())
 	    {
 	      unsigned int dst_indx = ppc_object->get_opd_ent(dst_off);
-	      symtab->gc()->worklist().push_back(Section_id(ppc_object,
-                                                            dst_indx));
+	      symtab->gc()->worklist().push_back(Rel_section_id(ppc_object,
+                                                                dst_indx));
 	    }
 	  else
 	    ppc_object->add_gc_mark(dst_off);
diff --git a/gold/symtab.cc b/gold/symtab.cc
index c197221..385024f 100644
--- a/gold/symtab.cc
+++ b/gold/symtab.cc
@@ -653,7 +653,7 @@ Symbol_table::gc_mark_symbol(Symbol* sym)
   if (is_ordinary && shndx != elfcpp::SHN_UNDEF)
     {
       gold_assert(this->gc_!= NULL);
-      this->gc_->worklist().push_back(Section_id(sym->object(), shndx));
+      this->gc_->worklist().push_back(Rel_section_id(sym->relobj(), shndx));
     }
   parameters->target().gc_mark_symbol(this, sym);
 }
diff --git a/gold/symtab.h b/gold/symtab.h
index 9413360..4144aef 100644
--- a/gold/symtab.h
+++ b/gold/symtab.h
@@ -157,6 +157,17 @@ class Symbol
     return this->u_.from_object.object;
   }
 
+  Relobj*
+  relobj() const
+  {
+    if (this->source_ != FROM_OBJECT)
+      return NULL;
+    Object *r = this->u_.from_object.object;
+    if (r->is_dynamic() || r->pluginobj() != NULL)
+      return NULL;
+    return static_cast<Relobj*>(r);
+  }
+
   // Return the index of the section in the input relocatable or
   // dynamic object file.
   unsigned int
diff --git a/gold/target.h b/gold/target.h
index 95bc57e..dfbc5ee 100644
--- a/gold/target.h
+++ b/gold/target.h
@@ -1056,9 +1056,9 @@ class Sized_target : public Target
   // and DST_OFF.
   void
   gc_add_reference(Symbol_table* symtab,
-		   Object* src_obj,
+		   Relobj* src_obj,
 		   unsigned int src_shndx,
-		   Object* dst_obj,
+		   Relobj* dst_obj,
 		   unsigned int dst_shndx,
 		   typename elfcpp::Elf_types<size>::Elf_Addr dst_off) const
   {
@@ -1080,8 +1080,8 @@ class Sized_target : public Target
 
   // Handle target specific gc actions when adding a gc reference.
   virtual void
-  do_gc_add_reference(Symbol_table*, Object*, unsigned int,
-		      Object*, unsigned int,
+  do_gc_add_reference(Symbol_table*, Relobj*, unsigned int,
+		      Relobj*, unsigned int,
 		      typename elfcpp::Elf_types<size>::Elf_Addr) const
   { }
 
 Performance counter stats for '/home/espindola/binutils/ld-master -pie --hash-style=gnu --no-add-needed --build-id --gc-sections --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o chrome /usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/Scrt1.o /usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.9.2/crtbeginS.o -L. -L/usr/lib/gcc/x86_64-redhat-linux/4.9.2 -L/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../.. -L/home/espindola/llvm/build-227431/bin/../lib -L/lib -L/usr/lib -z now -z relro --fatal-warnings -z defs -z noexecstack --disable-new-dtags --export-dynamic -uIsHeapProfilerRunning -uProfilerStart -u_Z21InitialMallocHook_NewPKvj -u_Z22InitialMallocHook_MMapPKvS0_jiiix -u_Z22InitialMallocHook_SbrkPKvi -u_Z21InitialMallocHook_NewPKvm -u_Z22InitialMallocHook_MMapPKvS0_miiil -u_Z22InitialMallocHook_SbrkPKvl -u_ZN15HeapLeakChecker12IgnoreObjectEPKv -u_ZN15HeapLeakChecker14UnIgnoreObjectEPKv -O1 --as-needed --start-group obj/chrome/app/chrome_initial.chrome_exe_main_aura.o obj/content/public/common/chrome_initial.content_switches.o obj/chrome/app/chrome_initial.chrome_main.o obj/chrome/app/chrome_initial.chrome_main_delegate.o obj/chrome/libcommon.a obj/chrome/libbrowser.a obj/chrome/libdebugger.a obj/ppapi/libppapi_host.a obj/printing/libprinting.a obj/chrome/libservice.a obj/chrome/libplugin.a obj/chrome/librenderer.a obj/chrome/libutility.a obj/content/libcontent_gpu.a obj/content/libcontent_ppapi_plugin.a obj/components/nacl/renderer/plugin/libnacl_trusted_plugin.a obj/remoting/libremoting_client_plugin.a obj/content/libcontent_app_both.a obj/chrome/libinstaller_util.a obj/base/allocator/liballocator.a obj/components/libstartup_metric_utils.a obj/chrome/libcommon_net.a obj/base/libbase.a obj/base/libbase_static.a obj/base/allocator/liballocator_extension_thunks.a obj/third_party/modp_b64/libmodp_b64.a obj/base/third_party/dynamic_annotations/libdynamic_annotations.a obj/base/libsymbolize.a obj/base/libxdg_mime.a obj/third_party/libevent/libevent.a obj/components/libnetwork_hints_common.a obj/components/liberror_page_common.a obj/url/liburl_lib.a obj/third_party/icu/libicui18n.a obj/third_party/icu/libicuuc.a obj/third_party/icu/libicudata.a obj/crypto/libcrcrypto.a obj/net/third_party/nss/libcrssl.a obj/net/libnet.a obj/base/libbase_i18n.a obj/base/libbase_prefs.a obj/sdch/libsdch.a obj/third_party/zlib/libchrome_zlib.a obj/third_party/zlib/libzlib_x86_simd.a obj/build/linux/libgio.a obj/ui/base/libui_base.a obj/skia/libskia_library.a obj/skia/libskia_opts.a obj/skia/libskia_opts_ssse3.a obj/skia/libskia_opts_sse41.a obj/third_party/sfntly/libsfntly.a obj/skia/libskia_chrome.a obj/skia/libskia_chrome_opts.a obj/ui/events/libevents.a obj/ui/gfx/libgfx.a obj/third_party/libpng/libpng.a obj/ui/gfx/libgfx_geometry.a obj/third_party/libjpeg_turbo/libjpeg_turbo.a obj/ui/gfx/x/libgfx_x11.a obj/ui/events/libdom4_keycode_converter.a obj/ui/events/libevents_base.a obj/ui/events/libgesture_detection.a obj/ui/events/devices/libevents_devices.a obj/ui/events/platform/libevents_platform.a obj/ui/events/platform/x11/libx11_events_platform.a obj/gpu/libgpu_ipc.a obj/gpu/libcommand_buffer_common.a obj/gpu/command_buffer/libgles2_utils.a obj/ipc/libipc.a obj/chrome/libsafe_browsing_proto.a obj/third_party/protobuf/libprotobuf_lite.a obj/chrome/libcommon_constants.a obj/components/libbookmarks_common.a obj/components/libnacl_switches.a obj/components/libcloud_devices_common.a obj/google_apis/libgoogle_apis.a obj/third_party/libxml/libxml2.a obj/components/libcomponent_updater.a obj/components/libupdate_client.a obj/courgette/libcourgette_lib.a obj/third_party/lzma_sdk/liblzma_sdk.a obj/third_party/zlib/google/libzip.a obj/third_party/zlib/libminizip.a obj/components/libcrx_file.a obj/components/libcontent_settings_core_common.a obj/components/libjson_schema.a obj/third_party/re2/libre2.a obj/components/libmetrics.a obj/components/libcomponent_metrics_proto.a obj/components/libvariations.a obj/third_party/mt19937ar/libmt19937ar.a obj/components/libpolicy_component_common.a obj/components/libcloud_policy_proto.a obj/components/libpolicy.a obj/components/libcloud_policy_proto_generated_compile.a obj/components/libtranslate_core_common.a obj/content/libcontent_common.a obj/components/libtracing.a obj/ui/accessibility/libaccessibility.a obj/ui/accessibility/libax_gen.a obj/tools/json_schema_compiler/libapi_gen_util.a obj/ui/events/ipc/libevents_ipc.a obj/ui/gfx/ipc/libgfx_ipc.a obj/ui/shell_dialogs/libshell_dialogs.a obj/ui/aura/libaura.a obj/ui/compositor/libcompositor.a obj/cc/libcc.a obj/gpu/libcommand_buffer_client.a obj/gpu/libcommand_buffer_service.a obj/gpu/libdisk_cache_proto.a obj/third_party/smhasher/libcityhash.a obj/ui/gl/libgl_wrapper.a obj/third_party/angle/src/libtranslator.a obj/third_party/angle/src/libtranslator_lib.a obj/third_party/angle/src/libpreprocessor.a obj/third_party/angle/src/libangle_common.a obj/gpu/libgles2_cmd_helper.a obj/gpu/libgpu_config.a obj/build/linux/libpci.a obj/third_party/libXNVCtrl/libXNVCtrl.a obj/media/libmedia.a libyuv.a obj/third_party/opus/libopus.a obj/media/libshared_memory_support.a obj/third_party/ffmpeg/libffmpeg.a obj/third_party/libvpx/libvpx.a obj/third_party/libvpx/libvpx_intrinsics_mmx.a obj/third_party/libvpx/libvpx_intrinsics_sse2.a obj/third_party/libvpx/libvpx_intrinsics_ssse3.a obj/third_party/libvpx/libvpx_intrinsics_sse4_1.a obj/third_party/libvpx/libvpx_intrinsics_avx2.a obj/media/libmedia_asm.a obj/media/libmedia_sse2.a obj/cc/libcc_surfaces.a obj/gpu/blink/libgpu_blink.a obj/gpu/libgles2_c_lib.a obj/gpu/libgles2_implementation.a obj/gpu/libgl_in_process_context.a obj/gpu/skia_bindings/libgpu_skia_bindings.a obj/third_party/WebKit/Source/platform/libblink_common.a obj/third_party/WebKit/Source/wtf/libwtf.a obj/ipc/mojo/libipc_mojo.a obj/mojo/libmojo_environment_chromium.a obj/mojo/libmojo_environment_chromium_impl.a obj/mojo/libmojo_common_lib.a obj/third_party/mojo/libmojo_cpp_bindings.a obj/third_party/mojo/libmojo_system_impl.a obj/storage/libstorage_common.a obj/third_party/WebKit/Source/platform/libblink_platform.a obj/third_party/WebKit/Source/platform/libblink_heap_asm_stubs.a obj/third_party/libwebp/libwebp_dec.a obj/third_party/libwebp/libwebp_dsp.a obj/third_party/libwebp/libwebp_utils.a obj/third_party/libwebp/libwebp_demux.a obj/third_party/libwebp/libwebp_enc.a obj/third_party/ots/libots.a obj/third_party/brotli/libbrotli.a obj/third_party/qcms/libqcms.a obj/v8/tools/gyp/libv8_base.a obj/v8/tools/gyp/libv8_libbase.a obj/v8/tools/gyp/libv8_external_snapshot.a obj/third_party/iccjpeg/libiccjpeg.a obj/third_party/WebKit/Source/web/libblink_web.a obj/third_party/WebKit/Source/core/libwebcore_dom.a obj/third_party/libxslt/libxslt.a obj/third_party/sqlite/libsqlite3.a obj/third_party/WebKit/Source/core/libwebcore_html.a obj/third_party/WebKit/Source/core/libwebcore_remaining.a obj/third_party/WebKit/Source/core/libwebcore_rendering.a obj/third_party/WebKit/Source/core/libwebcore_svg.a obj/third_party/WebKit/Source/core/libwebcore_generated.a obj/gin/libgin.a obj/third_party/snappy/libsnappy.a obj/third_party/WebKit/Source/modules/libmodules.a obj/third_party/mojo/libmojo_application_bindings.a obj/webkit/common/gpu/libwebkit_gpu.a obj/ppapi/libppapi_shared.a obj/ui/surface/libsurface.a obj/third_party/libjingle/libjingle.a obj/third_party/webrtc/base/librtc_base.a obj/third_party/webrtc/base/librtc_base_approved.a obj/third_party/webrtc/libjingle/xmllite/librtc_xmllite.a obj/third_party/libjingle/libjingle_p2p_constants.a obj/device/usb/libdevice_usb.a obj/third_party/libusb/libusb.a obj/device/udev_linux/libudev_linux.a obj/build/linux/libudev.a obj/chrome/common/extensions/api/libchrome_api.a obj/extensions/common/api/libextensions_api.a obj/extensions/libextensions_common.a obj/components/liburl_matcher.a obj/device/bluetooth/libdevice_bluetooth.a obj/extensions/libextensions_common_constants.a obj/media/cast/libcast_net.a obj/media/cast/libcast_base.a obj/media/cast/libcast_logging_proto.a obj/components/libautofill_core_common.a obj/components/libautofill_content_common.a obj/components/libpassword_manager_core_common.a obj/components/libpassword_manager_content_common.a obj/components/libsignin_core_common.a obj/components/libtranslate_content_common.a obj/components/libtranslate_core_language_detection.a obj/components/libvisitedlink_common.a obj/components/libnacl_common.a obj/components/libprinting_common.a obj/chrome/libbrowser_ui.a obj/chrome/libcert_logger_proto.a obj/chrome/libbrowser_ui_views.a obj/ash/libash.a obj/components/libuser_manager.a obj/components/libwallpaper.a obj/content/libcontent_browser.a obj/device/vibration/libdevice_vibration.a obj/device/vibration/libdevice_vibration_mojo_bindings.a obj/device/battery/libdevice_battery.a obj/device/battery/libdevice_battery_mojo_bindings.a obj/dbus/libdbus.a obj/sql/libsql.a obj/ui/snapshot/libsnapshot.a obj/content/browser/service_worker/libservice_worker_proto.a obj/content/browser/speech/proto/libspeech_proto.a obj/content/libcontent_common_mojo_bindings.a obj/net/libhttp_server.a obj/storage/libstorage.a obj/third_party/leveldatabase/libleveldatabase.a obj/third_party/mojo/libmojo_js_bindings.a obj/ui/touch_selection/libui_touch_selection.a obj/sandbox/libsandbox_services.a obj/sandbox/libsuid_sandbox_client.a obj/sandbox/libseccomp_bpf.a obj/sandbox/libseccomp_bpf_helpers.a obj/jingle/libjingle_glue.a obj/third_party/libjingle/libjingle_webrtc.a obj/third_party/libjingle/libjingle_webrtc_common.a obj/third_party/libsrtp/libsrtp.a obj/third_party/webrtc/modules/libmedia_file.a obj/third_party/webrtc/system_wrappers/libsystem_wrappers.a obj/third_party/webrtc/modules/libvideo_capture_module_impl.a obj/third_party/webrtc/modules/libvideo_capture_module.a obj/third_party/webrtc/modules/libwebrtc_utility.a obj/third_party/webrtc/modules/libaudio_coding_module.a obj/third_party/webrtc/modules/libCNG.a obj/third_party/webrtc/common_audio/libcommon_audio.a obj/third_party/openmax_dl/dl/libopenmax_dl.a obj/third_party/webrtc/common_audio/libcommon_audio_sse2.a obj/third_party/webrtc/modules/libaudio_encoder_interface.a obj/third_party/webrtc/modules/libG711.a obj/third_party/webrtc/modules/libG722.a obj/third_party/webrtc/modules/libiLBC.a obj/third_party/webrtc/modules/libiSAC.a obj/third_party/webrtc/modules/libaudio_decoder_interface.a obj/third_party/webrtc/modules/libiSACFix.a obj/third_party/webrtc/modules/libPCM16B.a obj/third_party/webrtc/modules/libred.a obj/third_party/webrtc/modules/libwebrtc_opus.a obj/third_party/webrtc/modules/libneteq.a obj/third_party/webrtc/modules/libwebrtc_video_coding.a obj/third_party/webrtc/modules/libwebrtc_i420.a obj/third_party/webrtc/common_video/libcommon_video.a obj/third_party/webrtc/modules/video_coding/utility/libvideo_coding_utility.a obj/third_party/webrtc/modules/video_coding/codecs/vp8/libwebrtc_vp8.a obj/third_party/webrtc/modules/video_coding/codecs/vp9/libwebrtc_vp9.a obj/third_party/webrtc/modules/libvideo_render_module_impl.a obj/third_party/webrtc/modules/libvideo_render_module.a obj/third_party/usrsctp/libusrsctplib.a obj/third_party/webrtc/modules/libaudio_processing.a obj/third_party/webrtc/modules/libaudioproc_debug_proto.a obj/third_party/webrtc/modules/libaudio_processing_sse2.a obj/third_party/webrtc/modules/libdesktop_capture.a obj/third_party/webrtc/modules/libdesktop_capture_differ_sse2.a obj/sandbox/libc_urandom_override.a obj/ppapi/libppapi_ipc.a obj/third_party/flac/libflac.a obj/third_party/speex/libspeex.a obj/content/libcontent_child.a obj/content/libcontent_plugin.a obj/content/libcontent_renderer.a obj/cc/blink/libcc_blink.a obj/media/blink/libmedia_blink.a obj/third_party/mojo/libmojo_js_lib.a obj/ui/native_theme/libnative_theme.a obj/third_party/libjingle/libpeerconnection.a obj/third_party/webrtc/voice_engine/libvoice_engine.a obj/third_party/webrtc/modules/libaudio_conference_mixer.a obj/third_party/webrtc/modules/libaudio_device.a obj/third_party/webrtc/modules/libbitrate_controller.a obj/third_party/webrtc/modules/librtp_rtcp.a obj/third_party/webrtc/modules/libpaced_sender.a obj/third_party/webrtc/modules/libremote_bitrate_estimator.a obj/third_party/webrtc/libwebrtc.a obj/third_party/webrtc/libwebrtc_common.a obj/third_party/webrtc/video_engine/libvideo_engine_core.a obj/third_party/webrtc/modules/libvideo_processing.a obj/third_party/webrtc/modules/libvideo_processing_sse2.a obj/ppapi/libppapi_proxy.a obj/content/libcontent_utility.a obj/ui/accelerometer/libui_accelerometer.a obj/ui/app_list/libapp_list.a obj/components/libkeyed_service_core.a obj/ui/wm/libwm.a obj/ui/views/libviews.a obj/ui/display/libdisplay_util.a obj/ui/keyboard/libkeyboard.a obj/ui/message_center/libmessage_center.a obj/ui/views/controls/webview/libwebview.a obj/ui/content_accelerators/libui_content_accelerators.a obj/ui/web_dialogs/libweb_dialogs.a obj/components/libauto_login_parser.a obj/components/libdom_distiller_core.a obj/sync/libsync_core.a obj/sync/libattachment_store_proto.a obj/sync/libsync_proto.a obj/third_party/dom_distiller_js/libdom_distiller_js_proto.a obj/components/libleveldb_proto.a obj/components/libdistilled_page_proto.a obj/components/libpref_registry.a obj/components/libdom_distiller_webui.a obj/components/libfeedback_proto.a obj/components/libhistory_core_browser_proto.a obj/components/libinvalidation.a obj/jingle/libnotifier.a obj/third_party/cacheinvalidation/libcacheinvalidation.a obj/third_party/cacheinvalidation/libcacheinvalidation_proto_cpp.a obj/components/libgcm_driver.a obj/components/libos_crypt.a obj/google_apis/gcm/libgcm.a obj/components/libsignin_core_browser.a obj/components/libcontent_settings_core_browser.a obj/components/libwebdata_common.a obj/components/libonc_component.a obj/components/libpassword_manager_core_browser.a obj/components/libpassword_manager_core_browser_proto.a obj/components/libui_zoom.a obj/components/libapp_modal.a obj/components/libautofill_content_risk_proto.a obj/net/libnet_with_v8.a obj/native_client/src/trusted/service_runtime/libsel.a obj/native_client/src/trusted/service_runtime/libenv_cleanser.a obj/native_client/src/trusted/service_runtime/libnacl_error_code.a obj/native_client/src/shared/gio/libgio.a obj/native_client/src/shared/platform/libplatform.a obj/native_client/src/shared/srpc/libnonnacl_srpc.a obj/native_client/src/trusted/debug_stub/libdebug_stub.a obj/native_client/src/trusted/desc/libnrd_xfer.a obj/native_client/src/trusted/desc/libdesc_wrapper.a obj/native_client/src/shared/imc/libimc.a obj/native_client/src/trusted/nacl_base/libnacl_base.a obj/native_client/src/trusted/desc_cacheability/libdesc_cacheability.a obj/native_client/src/trusted/fault_injection/libnacl_fault_inject.a obj/native_client/src/trusted/interval_multiset/libnacl_interval.a obj/native_client/src/trusted/perf_counter/libnacl_perf_counter.a obj/native_client/src/trusted/platform_qualify/libplatform_qual_lib.a obj/native_client/src/trusted/cpu_features/libcpu_features.a obj/native_client/src/trusted/simple_service/libsimple_service.a obj/native_client/src/trusted/threading/libthread_interface.a obj/native_client/src/trusted/validator/libvalidation_cache.a obj/native_client/src/trusted/validator/libvalidators.a obj/native_client/src/trusted/service_runtime/arch/x86/libservice_runtime_x86_common.a obj/native_client/src/trusted/validator_ragel/libdfa_validate_x86_64.a obj/native_client/src/trusted/service_runtime/arch/x86_64/libservice_runtime_x86_64.a obj/native_client/src/trusted/validator_x86/libnccopy_x86_64.a obj/native_client/src/trusted/service_runtime/libnacl_signal.a obj/chrome/libsafe_browsing_chunk_proto.a obj/chrome/libsafe_browsing_report_proto.a obj/ash/libash_with_content.a obj/components/libconstrained_window.a obj/components/libweb_modal.a obj/extensions/components/libnative_app_window.a obj/extensions/libextensions_browser.a obj/components/libcopresence_endpoints.a obj/components/libkeyed_service_content.a obj/components/libuser_prefs.a obj/components/libsessions_content.a obj/components/libstorage_monitor.a obj/device/media_transfer_protocol/libdevice_media_transfer_protocol.a obj/device/media_transfer_protocol/libmtp_file_entry_proto.a obj/device/media_transfer_protocol/libmtp_storage_info_proto.a obj/components/libweb_cache_browser.a obj/components/libweb_cache_common.a obj/device/serial/libdevice_serial.a obj/extensions/browser/api/libextensions_api_registration.a obj/extensions/common/api/libcast_channel_proto.a obj/chrome/browser/ui/libgtk2ui/libgtk2ui.a obj/third_party/libaddressinput/libaddressinput.a obj/third_party/libaddressinput/libaddressinput_util.a obj/chrome/libbrowser_extensions.a obj/chrome/browser/extensions/api/libchrome_api_registration.a obj/components/libcopresence_proto.a obj/components/libcopresence.a obj/components/libproximity_auth.a obj/device/hid/libdevice_hid.a obj/device/core/libdevice_core.a obj/third_party/hunspell/libhunspell.a obj/extensions/components/libjavascript_dialog_extensions_client.a obj/chrome/libprobe_message_proto.a obj/components/libautofill_core_browser.a obj/third_party/fips181/libfips181.a obj/third_party/libphonenumber/libphonenumber.a obj/third_party/libphonenumber/libphonenumber_without_metadata.a obj/components/libinfobars_core.a obj/components/libbookmarks_browser.a obj/components/libfavicon_base.a obj/components/libquery_parser.a obj/components/libcaptive_portal.a obj/components/libdata_reduction_proxy_core_browser.a obj/components/libdata_reduction_proxy_core_common.a obj/components/libdomain_reliability.a obj/components/libenhanced_bookmarks.a obj/components/libenhanced_bookmarks_proto.a obj/components/libfavicon_core.a obj/components/libfeedback_component.a obj/components/libgoogle_core_browser.a obj/components/liburl_fixer.a obj/components/libhistory_core_browser.a obj/components/libhistory_core_common.a obj/components/libmetrics_gpu.a obj/components/libmetrics_net.a obj/components/libmetrics_profiler.a obj/components/libnavigation_metrics.a obj/components/libnetwork_time.a obj/components/libomnibox.a obj/components/libsearch.a obj/components/libsearch_engines.a obj/components/librappor.a obj/components/search_engines/libprepopulated_engines.a obj/components/libvariations_http_provider.a obj/components/libpolicy_component_browser.a obj/components/libprecache_core.a obj/components/libprecache_core_proto.a obj/components/librenderer_context_menu.a obj/components/libsearch_provider_logos.a obj/components/libsuggestions.a obj/components/libsync_driver.a obj/components/libtranslate_core_browser.a obj/components/liblanguage_usage_metrics.a obj/components/libwebdata_services.a obj/chrome/libapps.a obj/components/libautofill_content_browser.a obj/components/libdom_distiller_content.a obj/components/libhistory_content_browser.a obj/components/libnavigation_interception.a obj/components/libpacked_ct_ev_whitelist.a obj/components/libpassword_manager_content_browser.a obj/components/libpower.a obj/components/libprecache_content.a obj/components/libtranslate_content_browser.a obj/components/libvisitedlink_browser.a obj/components/libweb_resource.a obj/net/libnet_extras.a obj/testing/perf/libperf_test.a obj/chrome/libsync_file_system_drive_proto.a obj/components/libcryptauth.a obj/components/libcryptauth_proto.a obj/components/libnacl_browser.a obj/chrome/libpolicy_path_parser.a obj/components/libpdf_browser.a obj/components/libpdf_common.a obj/chrome/libsafe_browsing_metadata_proto.a obj/build/linux/libspeechd.a obj/components/libbreakpad_host.a obj/components/libcrash_component.a obj/components/libcrash_component_lib.a obj/breakpad/libbreakpad_client.a obj/components/libautofill_content_renderer.a obj/components/libcdm_renderer.a obj/components/libcdm_common.a obj/components/libnetwork_hints_renderer.a obj/components/liberror_page_renderer.a obj/components/libpassword_manager_content_renderer.a obj/components/libplugins_renderer.a obj/components/libtranslate_content_renderer.a obj/components/libvisitedlink_renderer.a obj/components/libweb_cache_renderer.a obj/components/libnacl.a obj/mojo/libmonacl_syscall.a obj/components/libnacl_renderer.a obj/native_client/src/trusted/nonnacl_util/libsel_ldr_launcher_base.a obj/native_client/src/shared/serialization/libserialization.a obj/ppapi/libppapi_cpp_objects.a obj/ppapi/libppapi_internal_module.a obj/third_party/jsoncpp/libjsoncpp.a obj/components/libpdf_renderer.a obj/third_party/smhasher/libmurmurhash3.a obj/extensions/libextensions_renderer.a obj/media/cast/libcast_sender.a obj/components/libprinting_renderer.a obj/extensions/libextensions_utility.a obj/third_party/cld_2/libcld2_static.a obj/remoting/libremoting_base.a obj/remoting/proto/libchromotocol_proto_lib.a obj/remoting/libremoting_client.a obj/remoting/libremoting_protocol.a --end-group -lrt -ldl -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -lpthread -lgconf-2 -lgio-2.0 -lresolv -lfontconfig -lfreetype -lpangocairo-1.0 -lcairo -lpangoft2-1.0 -lpango-1.0 -lharfbuzz -lX11 -lXi -lXcursor -lXext -lXfixes -lXrender -lXss -lXcomposite -lasound -lm -lXdamage -lXtst -lXrandr -lexpat -lcups -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lz -lcrypt -ldbus-1 -lcap -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lstdc++ -lm -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-redhat-linux/4.9.2/crtendS.o /usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crtn.o' (30 runs):

       6410.666507      task-clock (msec)         #    0.999 CPUs utilized            ( +-  0.20% )
                 3      context-switches          #    0.000 K/sec                    ( +-  6.07% )
                 0      cpu-migrations            #    0.000 K/sec                  
           266,965      page-faults               #    0.042 M/sec                  
    19,501,602,507      cycles                    #    3.042 GHz                      ( +-  0.04% )
     9,079,633,434      stalled-cycles-frontend   #   46.56% frontend cycles idle     ( +-  0.09% )
                 0      stalled-cycles-backend    #    0.00% backend  cycles idle   
    27,918,003,360      instructions              #    1.43  insns per cycle        
                                                  #    0.33  stalled cycles per insn  ( +-  0.00% )
     5,534,244,864      branches                  #  863.287 M/sec                    ( +-  0.00% )
        81,205,896      branch-misses             #    1.47% of all branches          ( +-  0.00% )

       6.415159106 seconds time elapsed                                          ( +-  0.20% )

 Performance counter stats for '/home/espindola/binutils/ld-patch -pie --hash-style=gnu --no-add-needed --build-id --gc-sections --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o chrome /usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/Scrt1.o /usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.9.2/crtbeginS.o -L. -L/usr/lib/gcc/x86_64-redhat-linux/4.9.2 -L/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../.. -L/home/espindola/llvm/build-227431/bin/../lib -L/lib -L/usr/lib -z now -z relro --fatal-warnings -z defs -z noexecstack --disable-new-dtags --export-dynamic -uIsHeapProfilerRunning -uProfilerStart -u_Z21InitialMallocHook_NewPKvj -u_Z22InitialMallocHook_MMapPKvS0_jiiix -u_Z22InitialMallocHook_SbrkPKvi -u_Z21InitialMallocHook_NewPKvm -u_Z22InitialMallocHook_MMapPKvS0_miiil -u_Z22InitialMallocHook_SbrkPKvl -u_ZN15HeapLeakChecker12IgnoreObjectEPKv -u_ZN15HeapLeakChecker14UnIgnoreObjectEPKv -O1 --as-needed --start-group obj/chrome/app/chrome_initial.chrome_exe_main_aura.o obj/content/public/common/chrome_initial.content_switches.o obj/chrome/app/chrome_initial.chrome_main.o obj/chrome/app/chrome_initial.chrome_main_delegate.o obj/chrome/libcommon.a obj/chrome/libbrowser.a obj/chrome/libdebugger.a obj/ppapi/libppapi_host.a obj/printing/libprinting.a obj/chrome/libservice.a obj/chrome/libplugin.a obj/chrome/librenderer.a obj/chrome/libutility.a obj/content/libcontent_gpu.a obj/content/libcontent_ppapi_plugin.a obj/components/nacl/renderer/plugin/libnacl_trusted_plugin.a obj/remoting/libremoting_client_plugin.a obj/content/libcontent_app_both.a obj/chrome/libinstaller_util.a obj/base/allocator/liballocator.a obj/components/libstartup_metric_utils.a obj/chrome/libcommon_net.a obj/base/libbase.a obj/base/libbase_static.a obj/base/allocator/liballocator_extension_thunks.a obj/third_party/modp_b64/libmodp_b64.a obj/base/third_party/dynamic_annotations/libdynamic_annotations.a obj/base/libsymbolize.a obj/base/libxdg_mime.a obj/third_party/libevent/libevent.a obj/components/libnetwork_hints_common.a obj/components/liberror_page_common.a obj/url/liburl_lib.a obj/third_party/icu/libicui18n.a obj/third_party/icu/libicuuc.a obj/third_party/icu/libicudata.a obj/crypto/libcrcrypto.a obj/net/third_party/nss/libcrssl.a obj/net/libnet.a obj/base/libbase_i18n.a obj/base/libbase_prefs.a obj/sdch/libsdch.a obj/third_party/zlib/libchrome_zlib.a obj/third_party/zlib/libzlib_x86_simd.a obj/build/linux/libgio.a obj/ui/base/libui_base.a obj/skia/libskia_library.a obj/skia/libskia_opts.a obj/skia/libskia_opts_ssse3.a obj/skia/libskia_opts_sse41.a obj/third_party/sfntly/libsfntly.a obj/skia/libskia_chrome.a obj/skia/libskia_chrome_opts.a obj/ui/events/libevents.a obj/ui/gfx/libgfx.a obj/third_party/libpng/libpng.a obj/ui/gfx/libgfx_geometry.a obj/third_party/libjpeg_turbo/libjpeg_turbo.a obj/ui/gfx/x/libgfx_x11.a obj/ui/events/libdom4_keycode_converter.a obj/ui/events/libevents_base.a obj/ui/events/libgesture_detection.a obj/ui/events/devices/libevents_devices.a obj/ui/events/platform/libevents_platform.a obj/ui/events/platform/x11/libx11_events_platform.a obj/gpu/libgpu_ipc.a obj/gpu/libcommand_buffer_common.a obj/gpu/command_buffer/libgles2_utils.a obj/ipc/libipc.a obj/chrome/libsafe_browsing_proto.a obj/third_party/protobuf/libprotobuf_lite.a obj/chrome/libcommon_constants.a obj/components/libbookmarks_common.a obj/components/libnacl_switches.a obj/components/libcloud_devices_common.a obj/google_apis/libgoogle_apis.a obj/third_party/libxml/libxml2.a obj/components/libcomponent_updater.a obj/components/libupdate_client.a obj/courgette/libcourgette_lib.a obj/third_party/lzma_sdk/liblzma_sdk.a obj/third_party/zlib/google/libzip.a obj/third_party/zlib/libminizip.a obj/components/libcrx_file.a obj/components/libcontent_settings_core_common.a obj/components/libjson_schema.a obj/third_party/re2/libre2.a obj/components/libmetrics.a obj/components/libcomponent_metrics_proto.a obj/components/libvariations.a obj/third_party/mt19937ar/libmt19937ar.a obj/components/libpolicy_component_common.a obj/components/libcloud_policy_proto.a obj/components/libpolicy.a obj/components/libcloud_policy_proto_generated_compile.a obj/components/libtranslate_core_common.a obj/content/libcontent_common.a obj/components/libtracing.a obj/ui/accessibility/libaccessibility.a obj/ui/accessibility/libax_gen.a obj/tools/json_schema_compiler/libapi_gen_util.a obj/ui/events/ipc/libevents_ipc.a obj/ui/gfx/ipc/libgfx_ipc.a obj/ui/shell_dialogs/libshell_dialogs.a obj/ui/aura/libaura.a obj/ui/compositor/libcompositor.a obj/cc/libcc.a obj/gpu/libcommand_buffer_client.a obj/gpu/libcommand_buffer_service.a obj/gpu/libdisk_cache_proto.a obj/third_party/smhasher/libcityhash.a obj/ui/gl/libgl_wrapper.a obj/third_party/angle/src/libtranslator.a obj/third_party/angle/src/libtranslator_lib.a obj/third_party/angle/src/libpreprocessor.a obj/third_party/angle/src/libangle_common.a obj/gpu/libgles2_cmd_helper.a obj/gpu/libgpu_config.a obj/build/linux/libpci.a obj/third_party/libXNVCtrl/libXNVCtrl.a obj/media/libmedia.a libyuv.a obj/third_party/opus/libopus.a obj/media/libshared_memory_support.a obj/third_party/ffmpeg/libffmpeg.a obj/third_party/libvpx/libvpx.a obj/third_party/libvpx/libvpx_intrinsics_mmx.a obj/third_party/libvpx/libvpx_intrinsics_sse2.a obj/third_party/libvpx/libvpx_intrinsics_ssse3.a obj/third_party/libvpx/libvpx_intrinsics_sse4_1.a obj/third_party/libvpx/libvpx_intrinsics_avx2.a obj/media/libmedia_asm.a obj/media/libmedia_sse2.a obj/cc/libcc_surfaces.a obj/gpu/blink/libgpu_blink.a obj/gpu/libgles2_c_lib.a obj/gpu/libgles2_implementation.a obj/gpu/libgl_in_process_context.a obj/gpu/skia_bindings/libgpu_skia_bindings.a obj/third_party/WebKit/Source/platform/libblink_common.a obj/third_party/WebKit/Source/wtf/libwtf.a obj/ipc/mojo/libipc_mojo.a obj/mojo/libmojo_environment_chromium.a obj/mojo/libmojo_environment_chromium_impl.a obj/mojo/libmojo_common_lib.a obj/third_party/mojo/libmojo_cpp_bindings.a obj/third_party/mojo/libmojo_system_impl.a obj/storage/libstorage_common.a obj/third_party/WebKit/Source/platform/libblink_platform.a obj/third_party/WebKit/Source/platform/libblink_heap_asm_stubs.a obj/third_party/libwebp/libwebp_dec.a obj/third_party/libwebp/libwebp_dsp.a obj/third_party/libwebp/libwebp_utils.a obj/third_party/libwebp/libwebp_demux.a obj/third_party/libwebp/libwebp_enc.a obj/third_party/ots/libots.a obj/third_party/brotli/libbrotli.a obj/third_party/qcms/libqcms.a obj/v8/tools/gyp/libv8_base.a obj/v8/tools/gyp/libv8_libbase.a obj/v8/tools/gyp/libv8_external_snapshot.a obj/third_party/iccjpeg/libiccjpeg.a obj/third_party/WebKit/Source/web/libblink_web.a obj/third_party/WebKit/Source/core/libwebcore_dom.a obj/third_party/libxslt/libxslt.a obj/third_party/sqlite/libsqlite3.a obj/third_party/WebKit/Source/core/libwebcore_html.a obj/third_party/WebKit/Source/core/libwebcore_remaining.a obj/third_party/WebKit/Source/core/libwebcore_rendering.a obj/third_party/WebKit/Source/core/libwebcore_svg.a obj/third_party/WebKit/Source/core/libwebcore_generated.a obj/gin/libgin.a obj/third_party/snappy/libsnappy.a obj/third_party/WebKit/Source/modules/libmodules.a obj/third_party/mojo/libmojo_application_bindings.a obj/webkit/common/gpu/libwebkit_gpu.a obj/ppapi/libppapi_shared.a obj/ui/surface/libsurface.a obj/third_party/libjingle/libjingle.a obj/third_party/webrtc/base/librtc_base.a obj/third_party/webrtc/base/librtc_base_approved.a obj/third_party/webrtc/libjingle/xmllite/librtc_xmllite.a obj/third_party/libjingle/libjingle_p2p_constants.a obj/device/usb/libdevice_usb.a obj/third_party/libusb/libusb.a obj/device/udev_linux/libudev_linux.a obj/build/linux/libudev.a obj/chrome/common/extensions/api/libchrome_api.a obj/extensions/common/api/libextensions_api.a obj/extensions/libextensions_common.a obj/components/liburl_matcher.a obj/device/bluetooth/libdevice_bluetooth.a obj/extensions/libextensions_common_constants.a obj/media/cast/libcast_net.a obj/media/cast/libcast_base.a obj/media/cast/libcast_logging_proto.a obj/components/libautofill_core_common.a obj/components/libautofill_content_common.a obj/components/libpassword_manager_core_common.a obj/components/libpassword_manager_content_common.a obj/components/libsignin_core_common.a obj/components/libtranslate_content_common.a obj/components/libtranslate_core_language_detection.a obj/components/libvisitedlink_common.a obj/components/libnacl_common.a obj/components/libprinting_common.a obj/chrome/libbrowser_ui.a obj/chrome/libcert_logger_proto.a obj/chrome/libbrowser_ui_views.a obj/ash/libash.a obj/components/libuser_manager.a obj/components/libwallpaper.a obj/content/libcontent_browser.a obj/device/vibration/libdevice_vibration.a obj/device/vibration/libdevice_vibration_mojo_bindings.a obj/device/battery/libdevice_battery.a obj/device/battery/libdevice_battery_mojo_bindings.a obj/dbus/libdbus.a obj/sql/libsql.a obj/ui/snapshot/libsnapshot.a obj/content/browser/service_worker/libservice_worker_proto.a obj/content/browser/speech/proto/libspeech_proto.a obj/content/libcontent_common_mojo_bindings.a obj/net/libhttp_server.a obj/storage/libstorage.a obj/third_party/leveldatabase/libleveldatabase.a obj/third_party/mojo/libmojo_js_bindings.a obj/ui/touch_selection/libui_touch_selection.a obj/sandbox/libsandbox_services.a obj/sandbox/libsuid_sandbox_client.a obj/sandbox/libseccomp_bpf.a obj/sandbox/libseccomp_bpf_helpers.a obj/jingle/libjingle_glue.a obj/third_party/libjingle/libjingle_webrtc.a obj/third_party/libjingle/libjingle_webrtc_common.a obj/third_party/libsrtp/libsrtp.a obj/third_party/webrtc/modules/libmedia_file.a obj/third_party/webrtc/system_wrappers/libsystem_wrappers.a obj/third_party/webrtc/modules/libvideo_capture_module_impl.a obj/third_party/webrtc/modules/libvideo_capture_module.a obj/third_party/webrtc/modules/libwebrtc_utility.a obj/third_party/webrtc/modules/libaudio_coding_module.a obj/third_party/webrtc/modules/libCNG.a obj/third_party/webrtc/common_audio/libcommon_audio.a obj/third_party/openmax_dl/dl/libopenmax_dl.a obj/third_party/webrtc/common_audio/libcommon_audio_sse2.a obj/third_party/webrtc/modules/libaudio_encoder_interface.a obj/third_party/webrtc/modules/libG711.a obj/third_party/webrtc/modules/libG722.a obj/third_party/webrtc/modules/libiLBC.a obj/third_party/webrtc/modules/libiSAC.a obj/third_party/webrtc/modules/libaudio_decoder_interface.a obj/third_party/webrtc/modules/libiSACFix.a obj/third_party/webrtc/modules/libPCM16B.a obj/third_party/webrtc/modules/libred.a obj/third_party/webrtc/modules/libwebrtc_opus.a obj/third_party/webrtc/modules/libneteq.a obj/third_party/webrtc/modules/libwebrtc_video_coding.a obj/third_party/webrtc/modules/libwebrtc_i420.a obj/third_party/webrtc/common_video/libcommon_video.a obj/third_party/webrtc/modules/video_coding/utility/libvideo_coding_utility.a obj/third_party/webrtc/modules/video_coding/codecs/vp8/libwebrtc_vp8.a obj/third_party/webrtc/modules/video_coding/codecs/vp9/libwebrtc_vp9.a obj/third_party/webrtc/modules/libvideo_render_module_impl.a obj/third_party/webrtc/modules/libvideo_render_module.a obj/third_party/usrsctp/libusrsctplib.a obj/third_party/webrtc/modules/libaudio_processing.a obj/third_party/webrtc/modules/libaudioproc_debug_proto.a obj/third_party/webrtc/modules/libaudio_processing_sse2.a obj/third_party/webrtc/modules/libdesktop_capture.a obj/third_party/webrtc/modules/libdesktop_capture_differ_sse2.a obj/sandbox/libc_urandom_override.a obj/ppapi/libppapi_ipc.a obj/third_party/flac/libflac.a obj/third_party/speex/libspeex.a obj/content/libcontent_child.a obj/content/libcontent_plugin.a obj/content/libcontent_renderer.a obj/cc/blink/libcc_blink.a obj/media/blink/libmedia_blink.a obj/third_party/mojo/libmojo_js_lib.a obj/ui/native_theme/libnative_theme.a obj/third_party/libjingle/libpeerconnection.a obj/third_party/webrtc/voice_engine/libvoice_engine.a obj/third_party/webrtc/modules/libaudio_conference_mixer.a obj/third_party/webrtc/modules/libaudio_device.a obj/third_party/webrtc/modules/libbitrate_controller.a obj/third_party/webrtc/modules/librtp_rtcp.a obj/third_party/webrtc/modules/libpaced_sender.a obj/third_party/webrtc/modules/libremote_bitrate_estimator.a obj/third_party/webrtc/libwebrtc.a obj/third_party/webrtc/libwebrtc_common.a obj/third_party/webrtc/video_engine/libvideo_engine_core.a obj/third_party/webrtc/modules/libvideo_processing.a obj/third_party/webrtc/modules/libvideo_processing_sse2.a obj/ppapi/libppapi_proxy.a obj/content/libcontent_utility.a obj/ui/accelerometer/libui_accelerometer.a obj/ui/app_list/libapp_list.a obj/components/libkeyed_service_core.a obj/ui/wm/libwm.a obj/ui/views/libviews.a obj/ui/display/libdisplay_util.a obj/ui/keyboard/libkeyboard.a obj/ui/message_center/libmessage_center.a obj/ui/views/controls/webview/libwebview.a obj/ui/content_accelerators/libui_content_accelerators.a obj/ui/web_dialogs/libweb_dialogs.a obj/components/libauto_login_parser.a obj/components/libdom_distiller_core.a obj/sync/libsync_core.a obj/sync/libattachment_store_proto.a obj/sync/libsync_proto.a obj/third_party/dom_distiller_js/libdom_distiller_js_proto.a obj/components/libleveldb_proto.a obj/components/libdistilled_page_proto.a obj/components/libpref_registry.a obj/components/libdom_distiller_webui.a obj/components/libfeedback_proto.a obj/components/libhistory_core_browser_proto.a obj/components/libinvalidation.a obj/jingle/libnotifier.a obj/third_party/cacheinvalidation/libcacheinvalidation.a obj/third_party/cacheinvalidation/libcacheinvalidation_proto_cpp.a obj/components/libgcm_driver.a obj/components/libos_crypt.a obj/google_apis/gcm/libgcm.a obj/components/libsignin_core_browser.a obj/components/libcontent_settings_core_browser.a obj/components/libwebdata_common.a obj/components/libonc_component.a obj/components/libpassword_manager_core_browser.a obj/components/libpassword_manager_core_browser_proto.a obj/components/libui_zoom.a obj/components/libapp_modal.a obj/components/libautofill_content_risk_proto.a obj/net/libnet_with_v8.a obj/native_client/src/trusted/service_runtime/libsel.a obj/native_client/src/trusted/service_runtime/libenv_cleanser.a obj/native_client/src/trusted/service_runtime/libnacl_error_code.a obj/native_client/src/shared/gio/libgio.a obj/native_client/src/shared/platform/libplatform.a obj/native_client/src/shared/srpc/libnonnacl_srpc.a obj/native_client/src/trusted/debug_stub/libdebug_stub.a obj/native_client/src/trusted/desc/libnrd_xfer.a obj/native_client/src/trusted/desc/libdesc_wrapper.a obj/native_client/src/shared/imc/libimc.a obj/native_client/src/trusted/nacl_base/libnacl_base.a obj/native_client/src/trusted/desc_cacheability/libdesc_cacheability.a obj/native_client/src/trusted/fault_injection/libnacl_fault_inject.a obj/native_client/src/trusted/interval_multiset/libnacl_interval.a obj/native_client/src/trusted/perf_counter/libnacl_perf_counter.a obj/native_client/src/trusted/platform_qualify/libplatform_qual_lib.a obj/native_client/src/trusted/cpu_features/libcpu_features.a obj/native_client/src/trusted/simple_service/libsimple_service.a obj/native_client/src/trusted/threading/libthread_interface.a obj/native_client/src/trusted/validator/libvalidation_cache.a obj/native_client/src/trusted/validator/libvalidators.a obj/native_client/src/trusted/service_runtime/arch/x86/libservice_runtime_x86_common.a obj/native_client/src/trusted/validator_ragel/libdfa_validate_x86_64.a obj/native_client/src/trusted/service_runtime/arch/x86_64/libservice_runtime_x86_64.a obj/native_client/src/trusted/validator_x86/libnccopy_x86_64.a obj/native_client/src/trusted/service_runtime/libnacl_signal.a obj/chrome/libsafe_browsing_chunk_proto.a obj/chrome/libsafe_browsing_report_proto.a obj/ash/libash_with_content.a obj/components/libconstrained_window.a obj/components/libweb_modal.a obj/extensions/components/libnative_app_window.a obj/extensions/libextensions_browser.a obj/components/libcopresence_endpoints.a obj/components/libkeyed_service_content.a obj/components/libuser_prefs.a obj/components/libsessions_content.a obj/components/libstorage_monitor.a obj/device/media_transfer_protocol/libdevice_media_transfer_protocol.a obj/device/media_transfer_protocol/libmtp_file_entry_proto.a obj/device/media_transfer_protocol/libmtp_storage_info_proto.a obj/components/libweb_cache_browser.a obj/components/libweb_cache_common.a obj/device/serial/libdevice_serial.a obj/extensions/browser/api/libextensions_api_registration.a obj/extensions/common/api/libcast_channel_proto.a obj/chrome/browser/ui/libgtk2ui/libgtk2ui.a obj/third_party/libaddressinput/libaddressinput.a obj/third_party/libaddressinput/libaddressinput_util.a obj/chrome/libbrowser_extensions.a obj/chrome/browser/extensions/api/libchrome_api_registration.a obj/components/libcopresence_proto.a obj/components/libcopresence.a obj/components/libproximity_auth.a obj/device/hid/libdevice_hid.a obj/device/core/libdevice_core.a obj/third_party/hunspell/libhunspell.a obj/extensions/components/libjavascript_dialog_extensions_client.a obj/chrome/libprobe_message_proto.a obj/components/libautofill_core_browser.a obj/third_party/fips181/libfips181.a obj/third_party/libphonenumber/libphonenumber.a obj/third_party/libphonenumber/libphonenumber_without_metadata.a obj/components/libinfobars_core.a obj/components/libbookmarks_browser.a obj/components/libfavicon_base.a obj/components/libquery_parser.a obj/components/libcaptive_portal.a obj/components/libdata_reduction_proxy_core_browser.a obj/components/libdata_reduction_proxy_core_common.a obj/components/libdomain_reliability.a obj/components/libenhanced_bookmarks.a obj/components/libenhanced_bookmarks_proto.a obj/components/libfavicon_core.a obj/components/libfeedback_component.a obj/components/libgoogle_core_browser.a obj/components/liburl_fixer.a obj/components/libhistory_core_browser.a obj/components/libhistory_core_common.a obj/components/libmetrics_gpu.a obj/components/libmetrics_net.a obj/components/libmetrics_profiler.a obj/components/libnavigation_metrics.a obj/components/libnetwork_time.a obj/components/libomnibox.a obj/components/libsearch.a obj/components/libsearch_engines.a obj/components/librappor.a obj/components/search_engines/libprepopulated_engines.a obj/components/libvariations_http_provider.a obj/components/libpolicy_component_browser.a obj/components/libprecache_core.a obj/components/libprecache_core_proto.a obj/components/librenderer_context_menu.a obj/components/libsearch_provider_logos.a obj/components/libsuggestions.a obj/components/libsync_driver.a obj/components/libtranslate_core_browser.a obj/components/liblanguage_usage_metrics.a obj/components/libwebdata_services.a obj/chrome/libapps.a obj/components/libautofill_content_browser.a obj/components/libdom_distiller_content.a obj/components/libhistory_content_browser.a obj/components/libnavigation_interception.a obj/components/libpacked_ct_ev_whitelist.a obj/components/libpassword_manager_content_browser.a obj/components/libpower.a obj/components/libprecache_content.a obj/components/libtranslate_content_browser.a obj/components/libvisitedlink_browser.a obj/components/libweb_resource.a obj/net/libnet_extras.a obj/testing/perf/libperf_test.a obj/chrome/libsync_file_system_drive_proto.a obj/components/libcryptauth.a obj/components/libcryptauth_proto.a obj/components/libnacl_browser.a obj/chrome/libpolicy_path_parser.a obj/components/libpdf_browser.a obj/components/libpdf_common.a obj/chrome/libsafe_browsing_metadata_proto.a obj/build/linux/libspeechd.a obj/components/libbreakpad_host.a obj/components/libcrash_component.a obj/components/libcrash_component_lib.a obj/breakpad/libbreakpad_client.a obj/components/libautofill_content_renderer.a obj/components/libcdm_renderer.a obj/components/libcdm_common.a obj/components/libnetwork_hints_renderer.a obj/components/liberror_page_renderer.a obj/components/libpassword_manager_content_renderer.a obj/components/libplugins_renderer.a obj/components/libtranslate_content_renderer.a obj/components/libvisitedlink_renderer.a obj/components/libweb_cache_renderer.a obj/components/libnacl.a obj/mojo/libmonacl_syscall.a obj/components/libnacl_renderer.a obj/native_client/src/trusted/nonnacl_util/libsel_ldr_launcher_base.a obj/native_client/src/shared/serialization/libserialization.a obj/ppapi/libppapi_cpp_objects.a obj/ppapi/libppapi_internal_module.a obj/third_party/jsoncpp/libjsoncpp.a obj/components/libpdf_renderer.a obj/third_party/smhasher/libmurmurhash3.a obj/extensions/libextensions_renderer.a obj/media/cast/libcast_sender.a obj/components/libprinting_renderer.a obj/extensions/libextensions_utility.a obj/third_party/cld_2/libcld2_static.a obj/remoting/libremoting_base.a obj/remoting/proto/libchromotocol_proto_lib.a obj/remoting/libremoting_client.a obj/remoting/libremoting_protocol.a --end-group -lrt -ldl -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -lpthread -lgconf-2 -lgio-2.0 -lresolv -lfontconfig -lfreetype -lpangocairo-1.0 -lcairo -lpangoft2-1.0 -lpango-1.0 -lharfbuzz -lX11 -lXi -lXcursor -lXext -lXfixes -lXrender -lXss -lXcomposite -lasound -lm -lXdamage -lXtst -lXrandr -lexpat -lcups -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lz -lcrypt -ldbus-1 -lcap -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lstdc++ -lm -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-redhat-linux/4.9.2/crtendS.o /usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crtn.o' (30 runs):

       6401.969857      task-clock (msec)         #    0.999 CPUs utilized            ( +-  0.19% )
                 3      context-switches          #    0.000 K/sec                    ( +-  5.68% )
                 0      cpu-migrations            #    0.000 K/sec                  
           265,300      page-faults               #    0.041 M/sec                  
    19,477,104,133      cycles                    #    3.042 GHz                      ( +-  0.04% )
     8,945,865,937      stalled-cycles-frontend   #   45.93% frontend cycles idle     ( +-  0.09% )
                 0      stalled-cycles-backend    #    0.00% backend  cycles idle   
    27,808,410,820      instructions              #    1.43  insns per cycle        
                                                  #    0.32  stalled cycles per insn  ( +-  0.00% )
     5,499,248,193      branches                  #  858.993 M/sec                    ( +-  0.00% )
        81,882,483      branch-misses             #    1.49% of all branches          ( +-  0.00% )

       6.406455897 seconds time elapsed                                          ( +-  0.19% )


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]