llvm-project/lldb
Luke Drummond 7f193d6903 [RenderScript] Support tracking and dumping reduction kernels
Initial implementation of support for tracking
[RenderScript Reductions](https://developer.android.com/guide/topics/renderscript/compute.html#reduction-in-depth)

With this patch, `language renderscript module dump` properly lists reductions
that are part of loaded RenderScript modules as well the the consituent
functions and their roles, within the reduction.

This support required new tracking mechanisms for the `#pragma(reduce)`
mechanism, and extension of `RSModuleDescriptor::ParseRSInfo` to support
the metadata output by `bcc`. This work was also an opportunity to
refactor/improve parse code:

- `RSModuleDescriptor::ParseExportReduceCount` now has a complete
  implementation and the debugger can correctly track reductions on
  receipt of a module hook.
- `RSModuleDescriptor::Dump` now dumps Reductions as well as `ForEach`
  kernels. Also, fixed indentation of the output, and made indentation
  groupings in the source clearer.
- `RSModuleDescriptor::ParseRSInfo` now returns true if the `".rs.info"`
  packet has nonzero linecount, rather than rejecting RenderScripts that
  don't contain kernels (an unlikely situation, but possibly valid). This
  was changed because scripts that only contained reductions were not
  being tracked in `RenderScriptRuntime::LoadModule`.
- Refactor `RSModuleInfo::ParseRSInfo` and add reduction spec parser stub
 - Prepared ParseRSInfo to more easily be able to add new parser types
 - Use llvm::StringRef and llvm::StringMap helpers to make the parsing code cleaner
 - factor out forEachCount, globalVarCount, and pragmaCount parsing block to their own methods
 - Add ExportReduceCount Parser
 - Use `llvm::StringRef` in `RSKernelDescriptor` constructor
 - removed now superfluous `MAXLINE` macros as we've switched from `const
   char *` to `llvm::StringRef`

llvm-svn: 281717
2016-09-16 11:28:12 +00:00
..
cmake Use llvm's demangler. 2016-09-07 16:14:00 +00:00
docs gdb-remote: Add jModulesInfo packet 2016-09-08 10:07:04 +00:00
examples *** This commit represents a complete reformatting of the LLDB source code 2016-09-06 20:57:50 +00:00
include/lldb First tests for serializing breakpoints. 2016-09-16 01:41:27 +00:00
lit [cmake] Don't depend on lldb-server unless it's built. 2016-09-15 21:32:51 +00:00
lldb.xcodeproj added LLDB_PYTHON_TESTSUITE_ARCH Xcode variable 2016-09-15 18:28:03 +00:00
lldb.xcworkspace Revert r275223, which committed the wrong thing. 2016-07-12 23:31:42 +00:00
packages/Python/lldbsuite add availability check to DarwinLog event tests 2016-09-16 03:07:14 +00:00
resources Bump the lldb version # in the xcode project files from 2016-03-15 04:36:11 +00:00
scripts First tests for serializing breakpoints. 2016-09-16 01:41:27 +00:00
source [RenderScript] Support tracking and dumping reduction kernels 2016-09-16 11:28:12 +00:00
test *** This commit represents a complete reformatting of the LLDB source code 2016-09-06 20:57:50 +00:00
third_party/Python/module *** This commit represents a complete reformatting of the LLDB source code 2016-09-06 20:57:50 +00:00
tools Remove MIUtilParse (no longer used) 2016-09-13 10:39:12 +00:00
unittests Allow ArchSpec to take a StringRef. 2016-09-15 21:32:57 +00:00
utils *** This commit represents a complete reformatting of the LLDB source code 2016-09-06 20:57:50 +00:00
www Remove lldb coding conventions as they are no longer relevant. 2016-09-08 00:42:02 +00:00
.arcconfig Upgrade all the .arcconfigs to https. 2016-07-14 13:15:37 +00:00
.clang-format Updated .clang-format rules so bring LLDB in line with LLVM standards. 2016-09-06 17:19:00 +00:00
.gitignore Add StructuredData plugin type; showcase with new DarwinLog feature 2016-08-19 04:21:48 +00:00
CMakeLists.txt Revert "[lldb][cmake] Remove libclang as an lldbBase dependency (NFCI)" 2016-08-19 21:00:40 +00:00
CODE_OWNERS.txt Switch linux and android CODE_OWNERS 2016-08-26 10:06:13 +00:00
INSTALL.txt Revert the patch to Test Commit Access 2015-07-06 11:26:51 +00:00
LICENSE.TXT
use_lldb_suite_root.py *** This commit represents a complete reformatting of the LLDB source code 2016-09-06 20:57:50 +00:00