| #
00f56eeb |
| 05-Oct-2016 |
Luke Drummond <[email protected]> |
cleanup RSCoordinate handling and factor out coordinate parser
- This change updates the signature of `RenderScriptRuntime::PlaceBreakpointOnKernel` to take a default RSCoordinate pointer of nullptr
cleanup RSCoordinate handling and factor out coordinate parser
- This change updates the signature of `RenderScriptRuntime::PlaceBreakpointOnKernel` to take a default RSCoordinate pointer of nullptr. We use this as the predicate value for the breakpoint coordinate rather than trying to fit a sentinel `-1` into a signed version.
``` - void - PlaceBreakpointOnKernel(Stream &strm, const char *name, const std::array<int, 3> coords, Error &error, - lldb::TargetSP target); ```
``` + bool + PlaceBreakpointOnKernel(lldb::TargetSP target, Stream &messages, const char *name, + const lldb_renderscript::RSCoordinate *coords = nullptr); ``` The above change makes the API for setting breakpoints on kernels cleaner as it returns a failure value rather than modify a sentinel in the caller. The optional arguments are now last and have a default (falsey) value.
- RSCoordinate objects are now comparable with operator== and have zero initializers which should make them easier to work on. - Added a `FMT_COORD` macro for use in logging format strings which should make format strings a little less verbose.
llvm-svn: 283320
show more ...
|
| #
70602439 |
| 22-Sep-2016 |
Zachary Turner <[email protected]> |
Try to fix build errors on Android.
It doesn't like the implicit conversion from T[] to ArrayRef<T> so I'm using `llvm::makeArrayRef()`. Hopefully I got everything.
llvm-svn: 282195
|
| #
1f0f5b5b |
| 22-Sep-2016 |
Zachary Turner <[email protected]> |
Convert option tables to ArrayRefs.
This change is very mechanical. All it does is change the signature of `Options::GetDefinitions()` and `OptionGroup:: GetDefinitions()` to return an `ArrayRef<Op
Convert option tables to ArrayRefs.
This change is very mechanical. All it does is change the signature of `Options::GetDefinitions()` and `OptionGroup:: GetDefinitions()` to return an `ArrayRef<OptionDefinition>` instead of a `const OptionDefinition *`. In the case of the former, it deletes the sentinel entry from every table, and in the case of the latter, it removes the `GetNumDefinitions()` method from the interface. These are no longer necessary as `ArrayRef` carries its own length.
In the former case, iteration was done by using a sentinel entry, so there was no knowledge of length. Because of this the individual option tables were allowed to be defined below the corresponding class (after all, only a pointer was needed). Now, however, the length must be known at compile time to construct the `ArrayRef`, and as a result it is necessary to move every option table before its corresponding class. This results in this CL looking very big, but in terms of substance there is not much here.
Differential revision: https://reviews.llvm.org/D24834
llvm-svn: 282188
show more ...
|
| #
95eae423 |
| 21-Sep-2016 |
Zachary Turner <[email protected]> |
Make lldb::Regex use StringRef.
This updates getters and setters to use StringRef instead of const char *. I tested the build on Linux, Windows, and OSX and saw no build or test failures. I cannot
Make lldb::Regex use StringRef.
This updates getters and setters to use StringRef instead of const char *. I tested the build on Linux, Windows, and OSX and saw no build or test failures. I cannot test any BSD or Android variants, however I expect the required changes to be minimal or non-existant.
llvm-svn: 282079
show more ...
|
| #
7f193d69 |
| 16-Sep-2016 |
Luke Drummond <[email protected]> |
[RenderScript] Support tracking and dumping reduction kernels
Initial implementation of support for tracking [RenderScript Reductions](https://developer.android.com/guide/topics/renderscript/compute
[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
show more ...
|
| #
b9c1b51e |
| 06-Sep-2016 |
Kate Stone <[email protected]> |
*** This commit represents a complete reformatting of the LLDB source code *** to conform to clang-format’s LLVM style. This kind of mass change has *** two obvious implications:
Firstly, merging t
*** This commit represents a complete reformatting of the LLDB source code *** to conform to clang-format’s LLVM style. This kind of mass change has *** two obvious implications:
Firstly, merging this particular commit into a downstream fork may be a huge effort. Alternatively, it may be worth merging all changes up to this commit, performing the same reformatting operation locally, and then discarding the merge for this particular commit. The commands used to accomplish this reformatting were as follows (with current working directory as the root of the repository):
find . \( -iname "*.c" -or -iname "*.cpp" -or -iname "*.h" -or -iname "*.mm" \) -exec clang-format -i {} + find . -iname "*.py" -exec autopep8 --in-place --aggressive --aggressive {} + ;
The version of clang-format used was 3.9.0, and autopep8 was 1.2.4.
Secondly, “blame” style tools will generally point to this commit instead of a meaningful prior commit. There are alternatives available that will attempt to look through this change and find the appropriate prior commit. YMMV.
llvm-svn: 280751
show more ...
|
|
Revision tags: llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2 |
|
| #
e1cfbc79 |
| 11-Aug-2016 |
Todd Fiala <[email protected]> |
Decoupled Options from CommandInterpreter.
Options used to store a reference to the CommandInterpreter instance in the base Options class. This made it impossible to parse options independent of a
Decoupled Options from CommandInterpreter.
Options used to store a reference to the CommandInterpreter instance in the base Options class. This made it impossible to parse options independent of a CommandInterpreter.
This change removes the reference from the base class. Instead, it modifies the options-parsing-related methods to take an ExecutionContext pointer, which the options may inspect if they need to do so.
Closes https://reviews.llvm.org/D23416 Reviewers: clayborg, jingham
llvm-svn: 278440
show more ...
|
| #
5d057637 |
| 03-Aug-2016 |
Luke Drummond <[email protected]> |
[RenderScript] Always create a new allocation ID in CaptureAllocationInit hook
Due to internal reuse of buffers in the RenderScript runtime by the system allocator, comparing pointers is not a safe
[RenderScript] Always create a new allocation ID in CaptureAllocationInit hook
Due to internal reuse of buffers in the RenderScript runtime by the system allocator, comparing pointers is not a safe way to check whether an allocation is tracked by lldb. This change updates the lldb RenderScript internal hook callback to properly identify and remove old allocations that had have an address that is currently being tracked.
This change also removes the need for `lldb_private::renderscript::LookupAllocation` to take a `create` flag, as this is now always the case.
Original Author: <[email protected]>
Subscribers: lldb-commits llvm-svn: 277613
show more ...
|
|
Revision tags: llvmorg-3.9.0-rc1 |
|
| #
19459580 |
| 28-Jul-2016 |
Luke Drummond <[email protected]> |
Add IR fixups for RenderScript ABI mismatch between ARMV7 frontend and x86 backend
Expression evaluation for function calls to certain public RenderScript API functions in libRSCPURef can segfault.
Add IR fixups for RenderScript ABI mismatch between ARMV7 frontend and x86 backend
Expression evaluation for function calls to certain public RenderScript API functions in libRSCPURef can segfault.
`slang`, the compiler frontend for RenderScript embeds an ARM specific triple in IR that is shipped in the app, after generating IR that has some assumptions that an ARM device is the target. As the IR is then compiled on a device of unknown (at time the IR was generated at least) architecture, when calling RenderScript API function as part of debugger expressions, we have to perform a fixup pass that removes those assumptions right before the module is sent to be generated by the llvm backend.
This issue is caused by multiple problems with the ARMv7-specific assumptions encoded in the LLVM IR. x86 large value returns use a hidden first argument (mapping to llvm::Attribute::StructRet), which can't be picked up by the JIT due to the mismatch between IR generated by the slang frontend and llvm backend. This means that code generated by bcc did not necessarily match the default SysV Linux/Android ABI used by the LLDB JIT
- Original Authors: Luke Drummond (@ldrumm), Function declarations fixed by Aidan Dodds (@ADodds)
Subscribers: lldb-commits
Differential Revision: https://reviews.llvm.org/D18059
llvm-svn: 276976
show more ...
|
| #
75500e72 |
| 19-Jul-2016 |
Ed Maste <[email protected]> |
Typo corrections identified by codespell
Submitted by [email protected]; I fixed a couple of nearby errors and incorrect changes in the patch.
llvm.org/pr27634
llvm-svn: 275983
|
| #
7428a18c |
| 14-Jul-2016 |
Kate Stone <[email protected]> |
LLDB help content has accumulated over time without a recent attempt to review it for consistency, accuracy, and clarity. These changes attempt to address all of the above while keeping the text rela
LLDB help content has accumulated over time without a recent attempt to review it for consistency, accuracy, and clarity. These changes attempt to address all of the above while keeping the text relatively terse.
<rdar://problem/24868841>
llvm-svn: 275485
show more ...
|
|
Revision tags: llvmorg-3.8.1, llvmorg-3.8.1-rc1 |
|
| #
bb19a13c |
| 19-May-2016 |
Saleem Abdulrasool <[email protected]> |
second pass over removal of Mutex and Condition
llvm-svn: 270024
|
| #
5f57b6ee |
| 05-May-2016 |
Enrico Granata <[email protected]> |
Revert r268591
"Allow LanguageRuntimes to return an error if they fail in the course of dynamic type discovery
This is not meant to report that a value doesn't have a dynamic type - it is only mean
Revert r268591
"Allow LanguageRuntimes to return an error if they fail in the course of dynamic type discovery
This is not meant to report that a value doesn't have a dynamic type - it is only meant as a mechanism to propagate actual type discovery issues (e.g. malformed type metadata for languages that have such a notion)
This information is used by ValueObjectDynamic to set its own m_error, which is a fairly sharp and heavyweight tool to begin with
For the time being, this is an architectural improvement but a practical no-op as no existing runtimes are actually setting errors"
I need to think about what I want to do in this space more carefully - this attempt might be too heavy of a hammer for the nail I am trying to fix, and I don't want to leave it in while I ponder
llvm-svn: 268686
show more ...
|
| #
5ee54086 |
| 05-May-2016 |
Enrico Granata <[email protected]> |
Allow LanguageRuntimes to return an error if they fail in the course of dynamic type discovery
This is not meant to report that a value doesn't have a dynamic type - it is only meant as a mechanism
Allow LanguageRuntimes to return an error if they fail in the course of dynamic type discovery
This is not meant to report that a value doesn't have a dynamic type - it is only meant as a mechanism to propagate actual type discovery issues (e.g. malformed type metadata for languages that have such a notion)
This information is used by ValueObjectDynamic to set its own m_error, which is a fairly sharp and heavyweight tool to begin with
For the time being, this is an architectural improvement but a practical no-op as no existing runtimes are actually setting errors
llvm-svn: 268591
show more ...
|
| #
1e05c3bc |
| 24-Mar-2016 |
Greg Clayton <[email protected]> |
Get rid of two global constructors by making things static variables in the only function that uses these variables.
llvm-svn: 264347
|
| #
67dc3e15 |
| 10-Mar-2016 |
Aidan Dodds <[email protected]> |
[Renderscript] Add stack argument reading code for Mipsel 3
Fix a problem raised with the previous patches being applied in the wrong order.
Committed on behalf of: Dean De Leo <[email protected]>
[Renderscript] Add stack argument reading code for Mipsel 3
Fix a problem raised with the previous patches being applied in the wrong order.
Committed on behalf of: Dean De Leo <[email protected]>
llvm-svn: 263134
show more ...
|
| #
6dd4b579 |
| 10-Mar-2016 |
Aidan Dodds <[email protected]> |
[Renderscript] Add stack argument reading code for Mipsel 2
This commit implements the reading of stack spilled function arguments for little endian MIPS targets.
Committed on behalf of: Dean De Le
[Renderscript] Add stack argument reading code for Mipsel 2
This commit implements the reading of stack spilled function arguments for little endian MIPS targets.
Committed on behalf of: Dean De Leo <[email protected]>
llvm-svn: 263131
show more ...
|
| #
17e07c0a |
| 10-Mar-2016 |
Aidan Dodds <[email protected]> |
[Renderscript] Add stack argument reading code for Mipsel
This commit implements the reading of stack spilled function arguments for little endian MIPS targets.
Committed on behalf of: Dean De Leo
[Renderscript] Add stack argument reading code for Mipsel
This commit implements the reading of stack spilled function arguments for little endian MIPS targets.
Committed on behalf of: Dean De Leo <[email protected]>
llvm-svn: 263130
show more ...
|
| #
8433fdbe |
| 10-Mar-2016 |
Aidan Dodds <[email protected]> |
[Renderscript] Explicitly set the language to evaluate allocations
Currently it is not specified, and since allocations are usually requested once we hit a renderscript breakpoint, the language will
[Renderscript] Explicitly set the language to evaluate allocations
Currently it is not specified, and since allocations are usually requested once we hit a renderscript breakpoint, the language will be inferred being as renderscript by the ExpressionParser. Actually allocations attempt to invoke functions part of the RS runtime, written in C/C++, so evaluating the calls in RenderScript could be misleading.
In particular, in MIPS, the ABI between C/C++ (mips o32) and renderscript (arm) might introduce subtle bugs when evaluating such expressions.
This change explicitly sets the language used to evaluate the allocations as C++.
Committed on behalf of: Dean De Leo <[email protected]>
llvm-svn: 263129
show more ...
|
|
Revision tags: llvmorg-3.8.0 |
|
| #
cec91ef9 |
| 26-Feb-2016 |
Greg Clayton <[email protected]> |
Fix all of the unannotated switch cases to annotate the fall through or do the right thing and break.
llvm-svn: 261950
|
| #
577570b4 |
| 24-Feb-2016 |
Aidan Dodds <[email protected]> |
[Renderscript] Change expression strings to use portable format specifiers.
Mips64 tests were failing on windows because the sscanf implementation differs between clang/gcc/msvc such that on windows
[Renderscript] Change expression strings to use portable format specifiers.
Mips64 tests were failing on windows because the sscanf implementation differs between clang/gcc/msvc such that on windows %lx specifies a 32bits parameter and %llx is for 64bits. For us this meant that 64bit pointers were being truncated to 32bits on their way into a JIT'd expression.
llvm-svn: 261741
show more ...
|
|
Revision tags: llvmorg-3.8.0-rc3 |
|
| #
7ccf1373 |
| 23-Feb-2016 |
Saleem Abdulrasool <[email protected]> |
RenderScript: silence some -Wmissing-brace warnings
Silence some -Wmissing-brace warnings on Linux with clang 3.7.
llvm-svn: 261612
|
| #
b0be30f7 |
| 18-Feb-2016 |
Aidan Dodds <[email protected]> |
[Renderscript] Refactor .rs.info parser.
This patch refactors the .rs.info table parser so that its more in line with the current language runtime code.
llvm-svn: 261202
|
| #
1ee07253 |
| 15-Feb-2016 |
Saleem Abdulrasool <[email protected]> |
Silence some clang warnings
Silences -Wmissing-brace and -Wformat-pedantic warnings from clang on Linux. NFC.
llvm-svn: 260914
|
| #
72f77525 |
| 11-Feb-2016 |
Aidan Dodds <[email protected]> |
[Renderscript] Fix typo in mips64 argument reading code.
A typo in the mips64 argument reading code would cause register passed arguments to be truncated to 32bits.
llvm-svn: 260546
|