Embedded Image
Inferno Flamegraph Report

Process : amplewithnative (25016)
Date    : 2017-11-08 (Wednesday) 17:30:16
Threads : 3
Samples : 4977
Machine : Pixel 2 (walleye) by Google
Capture : /data/local/tmp/simpleperf record -e task-clock:u -g -f 1000 --duration 10 -o /data/local/tmp/perf.data --app com.example.simpleperf.simpleperfexamplewithnative



Navigate with WASD, zoom in with SPACE, zoom out with BACKSPACE.


Main Thread 25016 (amplewithnative) (2 samples):
art_quick_invoke_static_stub | /system/lib64/libart.so (1000000 events: 50.00%) com.android.internal.os.RuntimeInit.main | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.os.Binder.blockUntilThreadAvailable [DEDUPED] | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android::AppRuntime::onStarted() | /system/bin/app_process64 (1000000 events: 50.00%) android::AndroidRuntime::callMain(android::String8 const&, _jclass*, android::Vector<android::String8> const&) | /system/lib64/libandroid_runtime.so (1000000 events: 50.00%) _JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...) | /system/lib64/libandroid_runtime.so (1000000 events: 50.00%) art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list) | /system/lib64/libart.so (1000000 events: 50.00%) art::InvokeWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list) | /system/lib64/libart.so (1000000 events: 50.00%) art::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::ArgArray*, art::JValue*, char const*) | /system/lib64/libart.so (1000000 events: 50.00%) art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | /system/lib64/libart.so (1000000 events: 50.00%) art_quick_invoke_static_stub | /system/lib64/libart.so (1000000 events: 50.00%) art_quick_to_interpreter_bridge | /system/lib64/libart.so (1000000 events: 50.00%) artQuickToInterpreterBridge | /system/lib64/libart.so (1000000 events: 50.00%) art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) | /system/lib64/libart.so (1000000 events: 50.00%) artMterpAsmInstructionStart | /system/lib64/libart.so (1000000 events: 50.00%) MterpInvokeInterface | /system/lib64/libart.so (1000000 events: 50.00%) bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) | /system/lib64/libart.so (1000000 events: 50.00%) art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*) | /system/lib64/libart.so (1000000 events: 50.00%) art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | /system/lib64/libart.so (1000000 events: 50.00%) art_quick_invoke_stub | /system/lib64/libart.so (1000000 events: 50.00%) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) java.lang.Class.getDeclaredMethodInternal [DEDUPED] | /system/framework/arm64/boot.oat (1000000 events: 50.00%) art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobject*) | /system/lib64/libart.so (1000000 events: 50.00%) art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long) | /system/lib64/libart.so (1000000 events: 50.00%) art::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::ArgArray*, art::JValue*, char const*) | /system/lib64/libart.so (1000000 events: 50.00%) art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | /system/lib64/libart.so (1000000 events: 50.00%) art_quick_invoke_static_stub | /system/lib64/libart.so (1000000 events: 50.00%) android.app.ActivityThread.main | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.os.Looper.loop | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.os.Handler.dispatchMessage | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.view.Choreographer$FrameDisplayEventReceiver.run | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.view.Choreographer.doFrame | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.view.Choreographer.doCallbacks | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.content.ContextWrapper.getAutofillClient [DEDUPED] | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.view.ViewRootImpl.doTraversal | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.view.ViewRootImpl.performTraversals | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.view.ViewRootImpl.performLayout | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.view.ViewGroup.layout | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.view.View.layout | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) com.android.internal.policy.DecorView.onLayout | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.widget.FrameLayout.layoutChildren | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.view.ViewGroup.layout | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.view.View.layout | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.widget.LinearLayout.onLayout | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.widget.LinearLayout.layoutVertical | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.view.ViewGroup.layout | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.view.View.layout | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.widget.FrameLayout.onLayout | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.widget.FrameLayout.layoutChildren | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.view.ViewGroup.layout | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.view.View.layout | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) void android.support.v7.widget.ActionBarOverlayLayout.onLayout(boolean, int, int, int, int) | /data/app/com.example.simpleperf.simpleperfexamplewithnative-WWXaAz4Gfq1flZnVmLqwvg==/oat/arm64/base.odex (1000000 events: 50.00%) android.view.ViewGroup.layout | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.view.View.layout | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) void android.support.v7.widget.ActionBarContainer.onLayout(boolean, int, int, int, int) | /data/app/com.example.simpleperf.simpleperfexamplewithnative-WWXaAz4Gfq1flZnVmLqwvg==/oat/arm64/base.odex (1000000 events: 50.00%) android.widget.FrameLayout.onLayout | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.widget.FrameLayout.layoutChildren | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.view.ViewGroup.layout | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.view.View.layout | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) void android.support.v7.widget.Toolbar.onLayout(boolean, int, int, int, int) | /data/app/com.example.simpleperf.simpleperfexamplewithnative-WWXaAz4Gfq1flZnVmLqwvg==/oat/arm64/base.odex (1000000 events: 50.00%) art_quick_resolution_trampoline | /system/lib64/libart.so (1000000 events: 50.00%) artQuickResolutionTrampoline | /system/lib64/libart.so (1000000 events: 50.00%) art::DoGetCalleeSaveMethodCaller(art::ArtMethod*, unsigned long, bool) | /system/lib64/libart.so (1000000 events: 50.00%) art::CodeInfo::GetStackMapForNativePcOffset(unsigned int, art::CodeInfoEncoding const&) const | /system/lib64/libart.so (1000000 events: 50.00%) _start_main | /system/bin/app_process64 (1000000 events: 50.00%) __libc_init | /system/lib64/libc.so (1000000 events: 50.00%) main | /system/bin/app_process64 (1000000 events: 50.00%) android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool) | /system/lib64/libandroid_runtime.so (1000000 events: 50.00%) _JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...) | /system/lib64/libandroid_runtime.so (1000000 events: 50.00%) art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list) | /system/lib64/libart.so (1000000 events: 50.00%) art::InvokeWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list) | /system/lib64/libart.so (1000000 events: 50.00%) art::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::ArgArray*, art::JValue*, char const*) | /system/lib64/libart.so (1000000 events: 50.00%) art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | /system/lib64/libart.so (1000000 events: 50.00%) art_quick_invoke_static_stub | /system/lib64/libart.so (1000000 events: 50.00%) com.android.internal.os.RuntimeInit.main | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.os.Binder.blockUntilThreadAvailable [DEDUPED] | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android::AppRuntime::onStarted() | /system/bin/app_process64 (1000000 events: 50.00%) android::AndroidRuntime::callMain(android::String8 const&, _jclass*, android::Vector<android::String8> const&) | /system/lib64/libandroid_runtime.so (1000000 events: 50.00%) _JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...) | /system/lib64/libandroid_runtime.so (1000000 events: 50.00%) art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list) | /system/lib64/libart.so (1000000 events: 50.00%) art::InvokeWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list) | /system/lib64/libart.so (1000000 events: 50.00%) art::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::ArgArray*, art::JValue*, char const*) | /system/lib64/libart.so (1000000 events: 50.00%) art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | /system/lib64/libart.so (1000000 events: 50.00%) art_quick_invoke_static_stub | /system/lib64/libart.so (1000000 events: 50.00%) art_quick_to_interpreter_bridge | /system/lib64/libart.so (1000000 events: 50.00%) artQuickToInterpreterBridge | /system/lib64/libart.so (1000000 events: 50.00%) art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool) | /system/lib64/libart.so (1000000 events: 50.00%) artMterpAsmInstructionStart | /system/lib64/libart.so (1000000 events: 50.00%) MterpInvokeInterface | /system/lib64/libart.so (1000000 events: 50.00%) bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) | /system/lib64/libart.so (1000000 events: 50.00%) art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*) | /system/lib64/libart.so (1000000 events: 50.00%) art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | /system/lib64/libart.so (1000000 events: 50.00%) art_quick_invoke_stub | /system/lib64/libart.so (1000000 events: 50.00%) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) java.lang.Class.getDeclaredMethodInternal [DEDUPED] | /system/framework/arm64/boot.oat (1000000 events: 50.00%) art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobject*) | /system/lib64/libart.so (1000000 events: 50.00%) art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long) | /system/lib64/libart.so (1000000 events: 50.00%) art::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::ArgArray*, art::JValue*, char const*) | /system/lib64/libart.so (1000000 events: 50.00%) art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | /system/lib64/libart.so (1000000 events: 50.00%) art_quick_invoke_static_stub | /system/lib64/libart.so (1000000 events: 50.00%) android.app.ActivityThread.main | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.os.Looper.loop | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.os.MessageQueue.next | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android.app.NativeActivity.onWindowFocusChangedNative [DEDUPED] | /system/framework/arm64/boot-framework.oat (1000000 events: 50.00%) android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int) | /system/lib64/libandroid_runtime.so (1000000 events: 50.00%) android::Looper::pollOnce(int, int*, int*, void**) | /system/lib64/libutils.so (1000000 events: 50.00%) android::Looper::pollInner(int) | /system/lib64/libutils.so (1000000 events: 50.00%) android::DisplayEventDispatcher::handleEvent(int, int, void*) | /system/lib64/libandroidfw.so (1000000 events: 50.00%) android::NativeDisplayEventReceiver::dispatchVsync(long, int, unsigned int) | /system/lib64/libandroid_runtime.so (1000000 events: 50.00%) _JNIEnv::CallVoidMethod(_jobject*, _jmethodID*, ...) | /system/lib64/libandroid_runtime.so (1000000 events: 50.00%) art::JNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list) | /system/lib64/libart.so (1000000 events: 50.00%) art::InvokeVirtualOrInterfaceWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list) | /system/lib64/libart.so (1000000 events: 50.00%) Search Zoom out 100.00%%



Thread 25033 (SleepThread) (4938 samples):
__start_thread | /system/lib64/libc.so (4938000000 events: 100.00%) __pthread_start(void*) | /system/lib64/libc.so (4938000000 events: 100.00%) SleepThread(void*) | /data/app/com.example.simpleperf.simpleperfexamplewithnative-WWXaAz4Gfq1flZnVmLqwvg==/lib/arm64/libnative-lib.so (4938000000 events: 100.00%) RunFunction() | /data/app/com.example.simpleperf.simpleperfexamplewithnative-WWXaAz4Gfq1flZnVmLqwvg==/lib/arm64/libnative-lib.so (4937000000 events: 99.98%) SleepFunction(unsigned long long) | /data/app/com.example.simpleperf.simpleperfexamplewithnative-WWXaAz4Gfq1flZnVmLqwvg==/lib/arm64/libnative-lib.so (1000000 events: 0.02%) nanosleep | /system/lib64/libc.so (1000000 events: 0.02%) Search Zoom out 100.00%%



Thread 25034 (RenderThread) (37 samples):
EsxProgram::SaveBinaryToBlobCache(EsxContext*, void*, unsigned long) | /vendor/lib64/egl/libGLESv2_adreno.so (3000000 events: 8.11%) compress | /system/lib64/vndk-sp/libz.so (3000000 events: 8.11%) deflate | /system/lib64/vndk-sp/libz.so (3000000 events: 8.11%) deflate_slow | /system/lib64/vndk-sp/libz.so (3000000 events: 8.11%) longest_match | /system/lib64/vndk-sp/libz.so (1000000 events: 2.70%) EsxShaderCompiler::CompileProgram(EsxContext*, EsxProgram const*, EsxLinkedList const*, EsxInfoLog*) | /vendor/lib64/egl/libGLESv2_adreno.so (22000000 events: 59.46%) QGLCLinkProgram(void*, unsigned int, QGLC_SRCSHADER_IRSHADER**, QGLC_LINKPROGRAM_DATA*, QGLC_LINKPROGRAM_RESULT*) | /vendor/lib64/libllvm-glnext.so (22000000 events: 59.46%) CompilerContext::LinkProgram(unsigned int, QGLC_SRCSHADER_IRSHADER**, QGLC_LINKPROGRAM_DATA*, QGLC_LINKPROGRAM_RESULT*) | /vendor/lib64/libllvm-glnext.so (22000000 events: 59.46%) SOLinker::linkShaders(QGLC_LINKPROGRAM_DATA*, QGLC_LINKPROGRAM_RESULT*) | /vendor/lib64/libllvm-glnext.so (22000000 events: 59.46%) SOLinker::linkInputOutput(llvm::Module**, QGLC_SPECIALIZATION_INFO const*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::PassManagerImpl::run(llvm::Module&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::MPPassManager::runOnModule(llvm::Module&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::LowerNamedPointersPass::runOnModule(llvm::Module&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::LowerNamedPointersPass::init(llvm::Module&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) SOLinker::backendCodeGen(llvm::Module**, QGLC_LINKPROGRAM_RESULT*) | /vendor/lib64/libllvm-glnext.so (21000000 events: 56.76%) LLVMCompiler::compileHelper() | /vendor/lib64/libllvm-glnext.so (12000000 events: 32.43%) llvm::createUniformityAnalysisPass(bool) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::UniformityAnalysisPass::UniformityAnalysisPass(bool, llvm::raw_ostream*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::llclib::Compile(llvm::Module*, void* (*)(unsigned int), char**, unsigned int&, llvm::Module*, llvm::CLPrintfInterpreter const*) | /vendor/lib64/libllvm-glnext.so (10000000 events: 27.03%) llvm::llclib::CompileInSimplePipeline(llvm::Module*, llvm::QGPUMIRConverter*, char**, unsigned int&) | /vendor/lib64/libllvm-glnext.so (10000000 events: 27.03%) llvm::QGPUCodegenFixedPipeline::runOnModule(llvm::Module&) | /vendor/lib64/libllvm-glnext.so (10000000 events: 27.03%) QGPULocalRegAlloc::runOnMachineFunction(llvm::MachineFunction&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPULocalRegAlloc::runSimpleLinearScan() | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPULocalRegAlloc::constructLiveRanges() | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPULocalRegAlloc::getLiveRange(unsigned int) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUPeepholeOptimizer::runOnMachineFunction(llvm::MachineFunction&) | /vendor/lib64/libllvm-glnext.so (2000000 events: 5.41%) QGPUPeepholeOptimizer::runAsPostISelOpt(llvm::MachineFunction&) | /vendor/lib64/libllvm-glnext.so (2000000 events: 5.41%) QGPUPeepholeOptimizer::SimpleCSE(llvm::MachineBasicBlock::bundle_iterator<llvm::MachineInstr, llvm::ilist_iterator<llvm::MachineInstr> >&, llvm::MachineBasicBlock::bundle_iterator<llvm::MachineInstr, llvm::ilist_iterator<llvm::MachineInstr> >&, bool) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUPeepholeOptimizer::getMiniUseDistance(llvm::MachineInstr*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUPeepholeOptimizer::optimizeInOutOverlapping() | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUPeepholeOptimizer::collectGVInfoFromGRegs(llvm::MachineBasicBlock*, llvm::SmallVectorImpl<GRegSetPerGV*>&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::MOVCVTInstrInfo::getSrcRegs(llvm::SmallVectorImpl<unsigned int>&, llvm::MachineInstr const*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::QGPUInstrInfoBase::getISASrcOpd(llvm::MachOpdSet*, llvm::MachineInstr const*, unsigned int) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::QGPUInstrInfoBase::getISASrcOpd(llvm::MachOpdSet*, llvm::MachineInstr const*, llvm::ISAOperandLoc&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::QGPUInstrInfoBase::parseISARegisterOperand(llvm::MachOpdSet*, llvm::MachineInstr const*, llvm::ISAOperandLoc*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) (anonymous namespace)::QGPUNopandHwFlagsInserter::runOnMachineFunction(llvm::MachineFunction&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) (anonymous namespace)::QGPUNopandHwFlagsInserter::handleDataDep() | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) (anonymous namespace)::QGPUScheduler::runOnMachineFunction(llvm::MachineFunction&) | /vendor/lib64/libllvm-glnext.so (2000000 events: 5.41%) (anonymous namespace)::QGPUScheduleInstrs::Run(llvm::MachineBasicBlock*, llvm::MachineBasicBlock::bundle_iterator<llvm::MachineInstr, llvm::ilist_iterator<llvm::MachineInstr> >, llvm::MachineBasicBlock::bundle_iterator<llvm::MachineInstr, llvm::ilist_iterator<llvm::MachineInstr> >, unsigned int) | /vendor/lib64/libllvm-glnext.so (2000000 events: 5.41%) (anonymous namespace)::QGPUScheduleInstrs::BuildSchedGraph(llvm::AliasAnalysis*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) (anonymous namespace)::QGPUScheduleInstrs::ReleaseSuccessors(llvm::SUnit*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::SUnit::setDepthToAtLeast(unsigned int) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::SUnit::ComputeDepth() | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::QGPUModuleEncoder::runOnModule(llvm::Module&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::QGPUTargetObjGen::encoder(llvm::MachineFunction&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::QGPUTargetObjGen::encode_instr(llvm::MachineInstr const*, unsigned long*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::QGPUTargetObjGen::encode_instr_alu2(llvm::MachineInstr const*, unsigned long*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUInstructionSelector::runOnMachineFunction(llvm::MachineFunction&) | /vendor/lib64/libllvm-glnext.so (3000000 events: 8.11%) llvm::QGPUFastISelBase::SelectInstruction(llvm::Instruction const*) | /vendor/lib64/libllvm-glnext.so (2000000 events: 5.41%) QGPUFastISel::TargetSelectInstruction(llvm::Instruction const*) | /vendor/lib64/libllvm-glnext.so (2000000 events: 5.41%) QGPUFastISel::QGPUSelectCall(llvm::Instruction const*, unsigned int, bool) | /vendor/lib64/libllvm-glnext.so (2000000 events: 5.41%) QGPUFastISel::QGPUSelectIntrinsic(llvm::Instruction const*, unsigned int, bool) | /vendor/lib64/libllvm-glnext.so (2000000 events: 5.41%) QGPUFastISel::QGPUHandleMadIntrinsic(llvm::Instruction const*, unsigned int, bool) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUFastISel::getQGPURegForValue(llvm::Value const*, llvm::TargetRegisterClass const*, unsigned int, bool, bool) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUFastISel::QGPUSelectSetRegIntrinsic(llvm::Instruction const*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUFastISel::getQGPURegForValue(llvm::Value const*, llvm::TargetRegisterClass const*, unsigned int, bool, bool) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUFastISel::getRegForGlobalWithMetadata(llvm::GlobalVariable const*, unsigned int) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUFastISel::getRegForSymbol(llvm::Value const*, QGPUSymbolAllocInfo const*, AllocRegInfo**, llvm::EVT*, unsigned int) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::Use::getUser() const | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::FastISel::recomputeInsertPt() | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::llclib::construct_llclib(llvm::StringRef, llvm::StringRef) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::initializeQGPUI64EmulatePassPass(llvm::PassRegistry&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) LLVMCompiler::loadModuleData() | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) __memcpy_chk | /system/lib64/libc.so (1000000 events: 2.70%) LLVMCompiler::compileForBinning() | /vendor/lib64/libllvm-glnext.so (5000000 events: 13.51%) LLVMModuleUpdater::assignIOLocationInBinning(QGLC_GLSL_SYMBOLDATA&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) updateSymbolVID(GLSL_SYMBOL*, E_QGLC_SHADERTYPE, E_QGLC_GLSL_SYMBOLTYPE, llvm::Module*, llvm::NamedMDNode*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) updateVID(llvm::Module*, E_QGLC_GLSL_SYMBOLTYPE, llvm::NamedMDNode*, char const*, unsigned int, unsigned int, bool, bool) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUSymbolAllocInfo::convertToMetadata(llvm::LLVMContext*, QGPUSymbolAllocInfo*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::ConstantInt::get(llvm::IntegerType*, unsigned long, bool) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::ConstantInt::get(llvm::LLVMContext&, llvm::APInt const&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) LLVMCompiler::compileHelper() | /vendor/lib64/libllvm-glnext.so (4000000 events: 10.81%) llvm::llclib::Compile(llvm::Module*, void* (*)(unsigned int), char**, unsigned int&, llvm::Module*, llvm::CLPrintfInterpreter const*) | /vendor/lib64/libllvm-glnext.so (4000000 events: 10.81%) llvm::llclib::CompileInSimplePipeline(llvm::Module*, llvm::QGPUMIRConverter*, char**, unsigned int&) | /vendor/lib64/libllvm-glnext.so (4000000 events: 10.81%) llvm::QGPUCodegenFixedPipeline::runOnModule(llvm::Module&) | /vendor/lib64/libllvm-glnext.so (4000000 events: 10.81%) llvm::QGPUModuleEncoder::runOnModule(llvm::Module&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::QGPUTargetObjGen::encoder(llvm::MachineFunction&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::QGPU::QGPUEncoderInfo::getEntryPoint(llvm::MachineFunction*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) memcpy | /system/lib64/libc.so (1000000 events: 2.70%) QGPUPeepholeOptimizer::runOnMachineFunction(llvm::MachineFunction&) | /vendor/lib64/libllvm-glnext.so (2000000 events: 5.41%) QGPUPeepholeOptimizer::runAsPostISelOpt(llvm::MachineFunction&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUPeepholeOptimizer::SimpleCSE(llvm::MachineBasicBlock::bundle_iterator<llvm::MachineInstr, llvm::ilist_iterator<llvm::MachineInstr> >&, llvm::MachineBasicBlock::bundle_iterator<llvm::MachineInstr, llvm::ilist_iterator<llvm::MachineInstr> >&, bool) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUPeepholeOptimizer::getMiniUseDistance(llvm::MachineInstr*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUPeepholeOptimizer::runAsPostSchedOpt(llvm::MachineFunction&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUPeepholeOptimizer::postSchedImproveRegisterFootPrint(llvm::MachineFunction&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUPeepholeOptimizer::improveRegisterFootPrintForBlock(llvm::ilist_iterator<llvm::MachineBasicBlock>&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUPeepholeOptimizer::SimpleCSE(llvm::MachineBasicBlock::bundle_iterator<llvm::MachineInstr, llvm::ilist_iterator<llvm::MachineInstr> >&, llvm::MachineBasicBlock::bundle_iterator<llvm::MachineInstr, llvm::ilist_iterator<llvm::MachineInstr> >&, bool) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUPeepholeOptimizer::getMiniUseDistance(llvm::MachineInstr*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) (anonymous namespace)::QGPUScheduler::runOnMachineFunction(llvm::MachineFunction&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) (anonymous namespace)::QGPUScheduleInstrs::Run(llvm::MachineBasicBlock*, llvm::MachineBasicBlock::bundle_iterator<llvm::MachineInstr, llvm::ilist_iterator<llvm::MachineInstr> >, llvm::MachineBasicBlock::bundle_iterator<llvm::MachineInstr, llvm::ilist_iterator<llvm::MachineInstr> >, unsigned int) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) (anonymous namespace)::PriorityQueue::push(llvm::SUnit*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) je_calloc | /system/lib64/libc.so (1000000 events: 2.70%) LLVMCompiler::exportHWShaderMetaData(QGLC_GLSL_SYMBOLDATA*, llvm::DenseMap<char const*, TFInfo*, llvm::DenseMapInfo<char const*> >*, bool) | /vendor/lib64/libllvm-glnext.so (3000000 events: 8.11%) MetaDataExport::setupHWShaderData(E_QGLC_SHADERTYPE, E_QGLC_SHADERVERSION, QGPUCompiler::ConstSizedBuffer*, std::__1::vector<Symbol*, std::__1::allocator<Symbol*> >**, bool, bool, bool, unsigned int) | /vendor/lib64/libllvm-glnext.so (3000000 events: 8.11%) MetaDataExport::setupGLSLSymbolData(QGLC_GLSL_SYMBOLDATA*, std::__1::vector<Symbol*, std::__1::allocator<Symbol*> >**) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) moveGLSLSymbos(QGLC_GLSL_SYMBOLDATA*, QGLC_GLSL_SYMBOLDATA*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUCompiler::MetadataContext::BuildStructure(QCC_METADATA_DESCRIPTOR const*, void const**) | /vendor/lib64/libllvm-glnext.so (2000000 events: 5.41%) QGPUCompiler::MetadataContext::FillStructure(unsigned char*, QCC_METADATA_DESCRIPTOR const*, unsigned int) | /vendor/lib64/libllvm-glnext.so (2000000 events: 5.41%) QGPUCompiler::MetadataContext::FillStructure(unsigned char*, QCC_METADATA_DESCRIPTOR const*, unsigned int) | /vendor/lib64/libllvm-glnext.so (2000000 events: 5.41%) QGPUCompiler::Fill_ADRENO_INPUT_SYMBOLS(QGPUCompiler::MetadataContext*, QCC_METADATA_DESCRIPTOR const*, QCC_METADATA_ADRENO_INPUT_SYMBOLS*, unsigned int, llvm::SmallVectorImpl<QGPUCompiler::MetadataContext::Fixup>*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) QGPUCompiler::TranslateInputSymbol(QGPUCompiler::MetadataContext const*, QGPUSymbolTable const*, QCC_METADATA_ADRENO_GENERIC_SYMBOL*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) EsxShader::SaveBinaryToBlobCache(EsxContext*, void*, unsigned long) | /vendor/lib64/egl/libGLESv2_adreno.so (3000000 events: 8.11%) compress | /system/lib64/vndk-sp/libz.so (3000000 events: 8.11%) deflate | /system/lib64/vndk-sp/libz.so (2000000 events: 5.41%) deflate_slow | /system/lib64/vndk-sp/libz.so (2000000 events: 5.41%) deflateInit2_ | /system/lib64/vndk-sp/libz.so (1000000 events: 2.70%) je_malloc | /system/lib64/libc.so (1000000 events: 2.70%) EglAndroidWindowSurface::DequeueBuffer() | /vendor/lib64/egl/eglSubDriverAndroid.so (1000000 events: 2.70%) android::Surface::dequeueBuffer(ANativeWindowBuffer**, int*) | /system/lib64/libgui.so (1000000 events: 2.70%) android::BpGraphicBufferProducer::requestBuffer(int, android::sp<android::GraphicBuffer>*) | /system/lib64/libgui.so (1000000 events: 2.70%) android::GraphicBuffer::GraphicBuffer() | /system/lib64/libui.so (1000000 events: 2.70%) android::GraphicBufferMapper::GraphicBufferMapper() | /system/lib64/libui.so (1000000 events: 2.70%) android::Gralloc2::Mapper::Mapper() | /system/lib64/libui.so (1000000 events: 2.70%) android::hardware::graphics::mapper::V2_0::IMapper::getService(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) | /system/lib64/android.hardware.graphics.mapper@2.0.so (1000000 events: 2.70%) android::hardware::getPassthroughServiceManager() | /system/lib64/libhidltransport.so (1000000 events: 2.70%) android::hardware::getPassthroughServiceManager1_1() | /system/lib64/libhidltransport.so (1000000 events: 2.70%) __cxa_atexit | /system/lib64/libc.so (1000000 events: 2.70%) mprotect | /system/lib64/libc.so (1000000 events: 2.70%) EsxShaderCompiler::CompileShader(EsxContext const*, EsxShader const*, EsxInfoLog*) | /vendor/lib64/egl/libGLESv2_adreno.so (6000000 events: 16.22%) QGLCCompileToIRShader(void*, QGLC_SRCSHADER*, QGLC_COMPILETOIR_RESULT*) | /vendor/lib64/libllvm-glnext.so (6000000 events: 16.22%) CompilerContext::CompileToIRShader(QGLC_SRCSHADER*, QGLC_COMPILETOIR_RESULT*) | /vendor/lib64/libllvm-glnext.so (6000000 events: 16.22%) LLVMCompiler::optimize() | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::PassManagerImpl::run(llvm::Module&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::MPPassManager::runOnModule(llvm::Module&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::FPPassManager::runOnModule(llvm::Module&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::FPPassManager::runOnFunction(llvm::Function&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) (anonymous namespace)::EarlyCSE::runOnFunction(llvm::Function&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::DenseMap<(anonymous namespace)::SimpleValue, llvm::ScopedHashTableVal<(anonymous namespace)::SimpleValue, llvm::Value*>*, llvm::DenseMapInfo<(anonymous namespace)::SimpleValue> >::operator[]((anonymous namespace)::SimpleValue const&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) bool llvm::DenseMap<(anonymous namespace)::SimpleValue, llvm::ScopedHashTableVal<(anonymous namespace)::SimpleValue, llvm::Value*>*, llvm::DenseMapInfo<(anonymous namespace)::SimpleValue> >::LookupBucketFor<(anonymous namespace)::SimpleValue>((anonymous namespace)::SimpleValue const&, std::__1::pair<(anonymous namespace)::SimpleValue, llvm::ScopedHashTableVal<(anonymous namespace)::SimpleValue, llvm::Value*>*>*&) const | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) LLVMCompiler::exportIRShaderMetaData(bool) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) MetaDataExport::setupBCIRShaderData(E_QGLC_SHADERTYPE, E_QGLC_SHADERVERSION, llvm::OwningPtr<llvm::Module>*, std::__1::vector<Symbol*, std::__1::allocator<Symbol*> >**) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) ShaderObjects::generateShaderObject(E_QGLC_SHADERTYPE, llvm::OwningPtr<llvm::Module>*, QGLC_METADATA_IRSHADER*, CompilerContext*) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::WriteModule(llvm::Module const*, llvm::BitstreamWriter&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) ESXCompiler::parseShader(QGLC_SRCSHADER*, bool) | /vendor/lib64/libllvm-glnext.so (4000000 events: 10.81%) ShCompile | /vendor/lib64/libllvm-glnext.so (4000000 events: 10.81%) InitVertexFunctions(TSymbolTable&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) TFunction::addParameter(TParameter&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) TType::buildMangledName(std::__1::basic_string<char, std::__1::char_traits<char>, adreno_pool_allocator<char> >&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) TQCOM_Codegen::createSymbolForBufferUniformVarying() | /vendor/lib64/libllvm-glnext.so (2000000 events: 5.41%) TQCOM_Codegen::createSymbolForBUVs(TType*, llvm::StringRef const&, llvm::StringRef const&, int, Symbol*, int&, int&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) TQCOM_Codegen::createSymbolForBUVs(TType*, llvm::StringRef const&, llvm::StringRef const&, int, Symbol*, int&, int&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) TQCOM_Codegen::createOneBUVSymbol(TType*, llvm::StringRef const&, llvm::StringRef const&, int, Symbol*, int&, int&) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) SymbolManager::createNewSymbol(SymbolType const&, unsigned int) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) je_calloc | /system/lib64/libc.so (1000000 events: 2.70%) memset | /system/lib64/libc.so (1000000 events: 2.70%) TQCOM_Codegen::TraverseSymbolNode(TIntermSymbol*, bool) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) InitFragmentFunctions(TSymbolTable&, bool) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) TFunction::getMangledName() const | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) unknown[+74f71c063c] | unknown (1000000 events: 2.70%) void llvm::BitstreamWriter::EmitRecord<unsigned long>(unsigned int, llvm::SmallVectorImpl<unsigned long>&, unsigned int) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) llvm::BitstreamWriter::EmitVBR64(unsigned long, unsigned int) | /vendor/lib64/libllvm-glnext.so (1000000 events: 2.70%) EsxEnvironment::BuildExtensionStrings() | /vendor/lib64/egl/libGLESv2_adreno.so (1000000 events: 2.70%) strlcat | /system/lib64/libc.so (1000000 events: 2.70%) Search Zoom out 100.00%%