Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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


1234567