summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Get rid of two global constructors by making things static variables in the ↵Greg Clayton2016-03-241-7/+8
| | | | | | only function that uses these variables. llvm-svn: 264347
* [Renderscript] Add stack argument reading code for Mipsel 3Aidan Dodds2016-03-101-7/+7
| | | | | | | | Fix a problem raised with the previous patches being applied in the wrong order. Committed on behalf of: Dean De Leo <dean@codeplay.com> llvm-svn: 263134
* [Renderscript] Add stack argument reading code for Mipsel 2Aidan Dodds2016-03-101-2/+9
| | | | | | | | This commit implements the reading of stack spilled function arguments for little endian MIPS targets. Committed on behalf of: Dean De Leo <dean@codeplay.com> llvm-svn: 263131
* [Renderscript] Add stack argument reading code for MipselAidan Dodds2016-03-101-6/+17
| | | | | | | | This commit implements the reading of stack spilled function arguments for little endian MIPS targets. Committed on behalf of: Dean De Leo <dean@codeplay.com> llvm-svn: 263130
* [Renderscript] Explicitly set the language to evaluate allocationsAidan Dodds2016-03-101-1/+3
| | | | | | | | | | | | | | | | | | | | 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 <dean@codeplay.com> llvm-svn: 263129
* Fix all of the unannotated switch cases to annotate the fall through or do ↵Greg Clayton2016-02-261-4/+4
| | | | | | the right thing and break. llvm-svn: 261950
* [Renderscript] Change expression strings to use portable format specifiers.Aidan Dodds2016-02-241-22/+26
| | | | | | 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
* RenderScript: silence some -Wmissing-brace warningsSaleem Abdulrasool2016-02-231-2/+2
| | | | | | Silence some -Wmissing-brace warnings on Linux with clang 3.7. llvm-svn: 261612
* [Renderscript] Refactor .rs.info parser.Aidan Dodds2016-02-181-52/+66
| | | | | | This patch refactors the .rs.info table parser so that its more in line with the current language runtime code. llvm-svn: 261202
* Silence some clang warningsSaleem Abdulrasool2016-02-151-13/+13
| | | | | | Silences -Wmissing-brace and -Wformat-pedantic warnings from clang on Linux. NFC. llvm-svn: 260914
* [Renderscript] Fix typo in mips64 argument reading code.Aidan Dodds2016-02-111-1/+1
| | | | | | A typo in the mips64 argument reading code would cause register passed arguments to be truncated to 32bits. llvm-svn: 260546
* [Renderscript] Refactor target argument reading code.Aidan Dodds2016-02-111-337/+463
| | | | | | This patch reworks the function argument reading code, allowing us to annotate arguments with their types. The type/size information is needed to correctly parse arguments passed on the stack. llvm-svn: 260525
* [RenderScript] Refactor allocation expressions Ewan Crawford2016-02-101-77/+85
| | | | | | | Patch refractors RS plugin code specifying how format strings are used to JIT the runtime. Author: Dean De Leo <dean@codeplay.com> llvm-svn: 260372
* Fix an issue where certain CommandObjects (or Options thereof) were being ↵Enrico Granata2016-02-061-6/+1
| | | | | | | | | | created once, bound to a specific CommandInterpreter (and hence a specific Debugger), and then cached for reuse across different Debugger instances Obviously, if the original Debugger goes away, those commands are holding on to now stale memory, which has the potential to cause crashes Fixes rdar://24460882 llvm-svn: 259964
* [RenderScript] Add command for recalculating allocation detailsEwan Crawford2016-02-041-0/+58
| | | | | | | | Patch replaces the --refresh flag removed in r258800 with it's own command, 'language renderscript allocation refresh'. Since there is no reason this functionality should be tied to another command as an option. The command itself simply re-JITs all our cached information about allocations. llvm-svn: 259773
* [RenderScript] Remove unused RS commandEwan Crawford2016-01-291-52/+2
| | | | | | | | | | Patch deletes the 'language renderscript module probe' command. This command was present in the initial commit to help debug the plugin. However we haven't used it recently and it's functionality is unclear, so can be removed entirely. Also add back 'kernel coordinate' command, removed by accident in clang format patch r259056. llvm-svn: 259181
* [Renderscript] Clang-format the renderscript plugin.Aidan Dodds2016-01-281-651/+654
| | | | | | Run clang-format over the renderscript plugin and fix common formatting deviations. llvm-svn: 259056
* [RenderScript] Provide option to specify a single allocation to printEwan Crawford2016-01-261-21/+21
| | | | | | | | Patch replaces the 'renderscript allocation list' command flag --refresh, with a new option --id <ID>. This new option only prints the details of a single allocation with a given id, rather than printing all the allocations. Functionality from the removed '--refresh' flag will be moved into its own command in a subsequent commit. llvm-svn: 258800
* Fix clang warning in RenderScriptRuntimePavel Labath2016-01-201-1/+1
| | | | | | | | std::array should have "the same semantics as a struct holding a C-style array T[N] as its only non-static data member", so the initialization should have one more level of braces. Hopefully, no compiler will object to that. llvm-svn: 258306
* [RenderScript] New command for viewing coordinate of current kernel invocationEwan Crawford2016-01-201-34/+131
| | | | | | | Patch adds command 'language renderscript kernel coordinate' for printing the kernel index in (x,y,z) format. This is done by walking the call stack and looking for a function with suffix '.expand', as well as the frame variables containing the coordinate data. llvm-svn: 258303
* [RenderScript] Remove mips specific expressionsEwan Crawford2016-01-181-160/+90
| | | | | | | | Reverts earlier commit r254910, which used function pointers for jitted expressions to avoid a Mips64 compiler bug. Bug has since been fixed, and compiler longer issues the problem instruction. Author: Dean De Leo <dean@codeplay.com> llvm-svn: 258038
* [RenderScript] Hook kernel invocation.Aidan Dodds2016-01-141-17/+114
| | | | | | This patch adds a hook to track kernel invocations and to track all script and allocation objects used. llvm-svn: 257772
* [RenderScript] Improve file format for saving RS allocationsEwan Crawford2016-01-071-29/+151
| | | | | | | | | | | Updates the file format for storing RS allocations to a file, so that the format now supports struct element types. The file header will now contain a subheader for every RS element and it's descendants. Where an element subheader contains element type details and offsets to the subheaders of that elements fields. Patch also improves robustness when loading incorrect files. llvm-svn: 257045
* [Renderscript] Fix stack argument inspection.Aidan Dodds2016-01-061-43/+42
| | | | | | | Function arguments that were spilled and passed on the stack were incorrectly read. The value was written back into the output pointer rather then the memory being pointed to. llvm-svn: 256941
* Revert r256769Ewan Crawford2016-01-051-1/+1
| | | | | | | | | Reverts "Use correct format identifiers to print something meaningful." Original format specifiers were correct. Instead use void* casts to remove warnings, since this is what the %p specifier expects. llvm-svn: 256833
* Use correct format identifiers to print something meaningful.Davide Italiano2016-01-041-1/+1
| | | | llvm-svn: 256769
* [RenderScript] Support all RS allocation types Ewan Crawford2015-12-171-18/+100
| | | | | | | | Currently we can just inspect the details of the most common allocation types. This patch allows us to support all the types defined by the RS runtime in its `RsDataType` enum. Including handlers, matrices and packed graphical data. llvm-svn: 255904
* [RenderScript] Support for amd64 RS hooksEwan Crawford2015-12-111-9/+54
| | | | | | | Adds support for reading a maximum of six integer arguments from a renderscript hook on X86_64. Author: Luke Drummond <luke.drummond@codeplay.com> llvm-svn: 255338
* [RenderScript] Refactor condition deciding when to JIT RS runtimeEwan Crawford2015-12-101-9/+19
| | | | | | | Patch creates a member function that decides when to JIT all the details about an allocation. By checking for zero pointers we can avoid the situation where we store uninitialised data from previously inspecting the allocation during creation. llvm-svn: 255238
* [RenderScript] Add hook for destroyed allocationsEwan Crawford2015-12-091-1/+45
| | | | | | | New hook for rsdAllocationDestroy() which is called when allocations are deleted. LLDB should be aware of this so we can remove the allocation from our internal list. llvm-svn: 255121
* [RenderScript] Mips64 allocations workaroundEwan Crawford2015-12-071-90/+160
| | | | | | | | | Workaround for Mips64 compiler bug by using function pointers to call functions for expression evaluation. This avoids the emission of the JAL instruction, which can only jump within a particular range of the PC. Author: Dean De Leo, dean@codeplay.com llvm-svn: 254910
* Fix hang in global static initializationAdrian McCarthy2015-11-301-4/+10
| | | | | | Differential Revision: http://reviews.llvm.org/D15092 llvm-svn: 254338
* [RS] Support RenderScript struct allocationsEwan Crawford2015-11-301-113/+402
| | | | | | | | | | | | This patch adds functionality for dumping allocations of struct elements. This involves: + Jitting the runtime for details on all the struct fields. + Finding the name of the struct type by looking for a global variable of the same type, which will have been reflected back to the java host code. + Using this struct type name to pass into expression evaluation for pretty printing the data for the dump command. llvm-svn: 254294
* Allow renderscript runtime to read MIPS target arguments.Aidan Dodds2015-11-121-1/+41
| | | | llvm-svn: 252914
* Explicitly cast size_t var to (uint64_t) when printf format is PRIx64.Jason Molenda2015-10-291-2/+2
| | | | llvm-svn: 251585
* Fix Clang-tidy modernize-use-override warnings in ↵Eugene Zelenko2015-10-271-124/+87
| | | | | | source/Plugins/LanguageRuntime and Platform; other minor fixes. llvm-svn: 251374
* [RenderScript] Add option to break on a specific kernel invocationEwan Crawford2015-10-261-19/+253
| | | | | | | | | Adds option -c <x,y,z> to the 'language renderscript kernel breakpoint set' command. Breaks only on the invocation of the kernel with specified coordinate. Implemented by adding a callback to the kernel breakpoint which checks the coordinates of every invocation. llvm-svn: 251293
* Fix a build issue on Debian unstable. The compiler rejected the convertion ↵Sylvestre Ledru2015-10-261-2/+2
| | | | | | to ‘bool’ from ‘std::nullptr_t’ llvm-svn: 251276
* [RenderScript] Support for mips64 runtime hookEwan Crawford2015-10-221-16/+61
| | | | | | | | | Previously we could not hook the RS runtime on mips64 architectures. Patch implements ABI specific code for inspecting function arguments. Author: Dean De Leo, dean@codeplay.com llvm-svn: 251003
* [RenderScript] Fix out of bounds warning.Ewan Crawford2015-10-211-3/+3
| | | | llvm-svn: 250891
* [RenderScript] New commands to save/load RS allocations to file.Ewan Crawford2015-10-211-39/+403
| | | | | | | | | | | | | | Patch adds command 'language renderscript allocation save' to store the contents of an allocation in a binary file. And 'language renderscript allocation load' to restore an allocation with the saved data from a binary file. Binary file format contains a header FileHeader with meta information preceding the raw data. Reviewed by: jingham, clayborg Subscribers: lldb-commits, domipheus Differential Revision: http://reviews.llvm.org/D13903 llvm-svn: 250886
* Resubmit: RenderScript command for printing allocation contents Ewan Crawford2015-10-161-0/+455
| | | | | | | | | Previous commit r250281 broke TestDataFormatterSmartArray.py Resolved in in this patch by adding the new enum eFormatVectorOfFloat16 to FormatManager. Differential Revision: http://reviews.llvm.org/D13730 llvm-svn: 250499
* Revert "RenderScript command for printing allocation contents"Pavel Labath2015-10-141-455/+0
| | | | | | This commit breaks TestDataFormatterSmartArray on all buildbots. llvm-svn: 250290
* RenderScript command for printing allocation contentsEwan Crawford2015-10-141-0/+455
| | | | | | | | | | | | | | | | | | | This patch adds the command 'language renderscript allocation dump <ID>' for printing the contents of a RS allocation. Displaying the coordinate of each element as well as its formatted value e.g (lldb) language renderscript allocation dump 1 Data (X, Y, Z): (0, 0, 0) = {0 1} (1, 0, 0) = {2 3} (2, 0, 0) = {4 5} A --file <filename> option is also included, since for large allocations it may be more helpful to view this text as a file. Reviewed by: jingham, clayborg Subscribers: lldb-commits, ADodds, domipheus, brucem Differential Revision: http://reviews.llvm.org/D13699 llvm-svn: 250281
* RenderScript command for printing allocation information Ewan Crawford2015-10-061-16/+616
| | | | | | | | | | | | | | | | This patch adds a new command 'language renderscript allocation list' for printing the details of all loaded RS allocations. In order to work out this information lldb JITs the runtime for the data it wants. This has a penalty of a couple seconds latency, so is only done once for each allocation and the results cached. If the user later wants to recalculate this information however, they can force lldb to do so with the --refresh flag. Reviewed by: jingham, clayborg Subscribers: lldb-commits, ADodds, domipheus, dean, tberghammer, danalbert, srhines Differential Revision: http://reviews.llvm.org/D13247 llvm-svn: 249380
* On second thought, amend the previous patch to pass itself the ValueObject& ↵Enrico Granata2015-09-221-2/+2
| | | | | | for the static value instead of just its type llvm-svn: 248316
* Move the logic to post-process dynamic types for ValueObject purposes from ↵Enrico Granata2015-09-221-0/+7
| | | | | | | | | | | | the ValueObjects to the LanguageRuntime plugins This is meant to cover cases such as the obvious Base *base = new Derived(); where GetDynamicTypeAndAddress(base) would return the type "Derived", not "Derived *" llvm-svn: 248315
* RenderScript lookup bug fixEwan Crawford2015-09-221-3/+2
| | | | | | | | | | After the std::move operation the unique pointer is null. So this statement always returns a null pointer. Also remove unnecessary call to Module::ParseAllDebugSymbols(), which spews errors due to how it incorrectly tries to parse DWARF DIE types. llvm-svn: 248274
* Groundwork for better tracking of renderscript allocations and scriptsEwan Crawford2015-09-211-35/+220
| | | | | | | | | | | | This patch adds some of the groundwork required for tracking the lifetime of scripts and allocations and collecting data associated with them during execution. Committed on behalf of Aidan Dodds. Authored by: ADodds Reviewed by: clayborg, jingham Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D12936 llvm-svn: 248149
* Differential Revision: http://reviews.llvm.org/D12966Aidan Dodds2015-09-181-87/+231
| | | | | | On behalf of Dean De Leo llvm-svn: 248003
OpenPOWER on IntegriCloud