9e0f8f0c8965834de02d007bb30e1dc950cf9762 |
|
12-Apr-2016 |
Pirama Arumuga Nainar <pirama@google.com> |
Translate GEP instructions on structs to GEP on int8* http://b/24142721 X86 data layout has 64-bit scalars aligned at 4-byte boundaries, while ARM aligns these data at 8-byte boundaries. To bring frontend- and backend-generated code into agreement, this patch adds a pass to translate GEPs on structs to GEPs with int8* operands and byte offsets. This pass runs only on X86 targets. Change-Id: I961b2bc7db9f57f15126f27396db42c9deedfd43 (cherry picked from commit d2d5ee3893220cec256c829a4740a718232f84ac)
/frameworks/compile/libbcc/include/bcc/Renderscript/RSTransforms.h
|
ba1a8f1e6f3eb5b7069e9ba1575f16e393c84c23 |
|
25-Nov-2015 |
Dean De Leo <dean@codeplay.com> |
Make RSKernelExpand use memory rather than registers. The RSKernelExpand pass generates a loop around the main kernel body. This patch changes it to use LLVM memory with loads and stores rather than generating the SSA directly. This is required in order to be able to attach debugging information to the memory location associated with the loop iteration index variable, enabling the debugger to inspect current thread coordinate. The regular SSA form of LLVM IR doesn't allow this to be done efficiently. If optimizations are enabled, the subsequent passes promote memory back to registers, avoiding potential performance regressions. (cherry picked from commit 4165d29822fc7caf81e435995ff6189608fc0323) Change-Id: Ic394c2876e72a4b3c7e1fe888f2369510fdd3d33
/frameworks/compile/libbcc/include/bcc/Renderscript/RSTransforms.h
|
09c7a41f73602bec33e9d392cc959d78931f73c4 |
|
25-Nov-2015 |
Dean De Leo <dean@codeplay.com> |
Initial version of debug info pass for RS. This introduces a new LLVM pass into libbcc called RSAddDebugInfoPass. Its purpose is to add debug information metadata to LLVM constructs generated by the other parts of libbcc. The generated code generally lacks sufficient debugging information as it has not been processed by the clang-based front-end. The initial version of RSAddDebugInfoPass provides the following: 1. It annotates the expanded function generated by RSExpandKernel pass with debug information, stating the name of the function and source file indicating that the function has been generated. 2. It annotates the instructions of the *.expand function with filename/line indicating that the function code has been generated. The source file of both the generated function definition and the instructions that make up the function is mapped to the source location of /opt/renderscriptdebugger/1/generated.rs:1. That might be source-mapped by the debugger to an appropriate file in the SDK, the contents of which clearly indicate that the user is dealing with generated code (i.e. one without a "physical" source file). Change-Id: I2e566160a448d7bfbb3f8d16680e09e43c845693
/frameworks/compile/libbcc/include/bcc/Renderscript/RSTransforms.h
|
4e7a50685ae18a24087f6f2a51c604e71fab69e2 |
|
31-Jul-2015 |
Matt Wala <wala@google.com> |
Expand reduce-style kernels. Bug: 22631253 Rename the RSForEachExpand pass / source file to RSKernelExpand. In addition to already being responsible for expanding foreach-style kernels, RSKernelExpand now expands reduce-style kernels from define foo @func(foo %a, foo %b) into define void @func.expand(i8* %inBuf, i8* %outBuf, i32 len) The expanded function reduces a sub-range of its input. Change-Id: I518fa9367b57111a2f2a1b23903ff870c421beeb
/frameworks/compile/libbcc/include/bcc/Renderscript/RSTransforms.h
|
750ee65e129a2baef2dc5bb9ad210b45c9184926 |
|
17-Apr-2015 |
Stephen Hines <srhines@google.com> |
Provide a pass that creates information about global variables in RS. Bug: 20306487 This change implements RSGlobalInfoPass, which is an optional LLVM pass that adds several new global variables to a given Module. These variables contain information about the other RenderScript global variables that are present. Change-Id: I671013c11c7a528254edad5c66f2858953c0f5c4
/frameworks/compile/libbcc/include/bcc/Renderscript/RSTransforms.h
|
8c24f8d1d75b619130e8bfce204ed9695362d4a1 |
|
17-Mar-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Undo AArch64 pass-by-pointer for X86-64 bug 19779488 AArch64's calling convention passes large objects by pointer/reference. Consequently, RS functions exported in the driver need special handling for x86-64. This patch creates a new pass to libbcc that identifies pointer arguments created due to the AArch64 convention and marks them as pass-by-value. Change-Id: I2e24edd9704e843b118f4c445cfd92f61f9de909
/frameworks/compile/libbcc/include/bcc/Renderscript/RSTransforms.h
|
1d93a190e62ec1588b4724ca8759216b2d0b76d7 |
|
25-Mar-2015 |
David Gross <dgross@google.com> |
Add RSInvariant pass to recognize Load from RsExpandKernelDriverInfo as invariant. This allows more-aggressive optimization of foreachexp-generated code and of the rsGet*(rs_kernel_context) API functions. In particular, it facilitates LICM of Loads out of the wrapper loop in a .expand function. Bug: 18964628 Change-Id: I77a87b325724ca08c4a04f5a46f316be78a5e0fd
/frameworks/compile/libbcc/include/bcc/Renderscript/RSTransforms.h
|
9fe081b8bae8a95d903f8fa8dc0a7590ae706606 |
|
27-Jan-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Mark whether a script is threadable bug 19095896 Add a pass to check for calls to non-threadable functions. We add a metadata flag to store the result. RSEmbedInfo also adds this information to .rs.info. Change-Id: Iba9a41b338d21a3529a1092656a51be985910fca
/frameworks/compile/libbcc/include/bcc/Renderscript/RSTransforms.h
|
5db508c73e6177eb306bac4725616b7c001587c4 |
|
06-Jan-2015 |
Stephen Hines <srhines@google.com> |
Fix a few bugs in RSScreenFunctionsPass. Bug: 18322681 This patch fixes a few small issues: 1) The debug context runtime stubs had a few minor name mangling errors. 2) The verification of functions needs to be done after we have stripped away any unused code. Without this, there are issues with debug contexts, because they have unused references to rsOffset()/rsOffsetNs(). 3) We don't actually need to maintain a separate status return for the pass, since llvm::report_fatal_error() will do the right thing in the case of an illegal function being called. Change-Id: I0afe7cf58148cd132f9356268d5ad8acdce1a02d
/frameworks/compile/libbcc/include/bcc/Renderscript/RSTransforms.h
|
1e0557ae75ae780352845bd2ba0f4babdc5ae4e6 |
|
03-Dec-2014 |
Pirama Arumuga Nainar <pirama@google.com> |
BCC updates to handle linkloader removal Bug: 18322681 - Add -fPIC and -embedRSInfo flags to bcc. fPIC generates relocatable object code and -embedRSInfo embeds RS symbol information into the .rs.info variable in the object file. - PIC_ relocation in x86_64 also entails that the CodeModel must be small. Otherwise, we end up with TEXTRELs in the shared library. - Add an LLVM pass to screen functions visibile in RS. lib/RenderScript/generate-whitelist.sh is used to automatically generate the stubbed functions to the whitelist. Change-Id: Ib0a16b7e7aff89490ac631885ffa97dd31c184ce
/frameworks/compile/libbcc/include/bcc/Renderscript/RSTransforms.h
|
b7bce7436876884dfd78ec41d147ddbe47e37cbd |
|
04-Nov-2014 |
Tim Murray <timmurray@google.com> |
generate calls to rsSetObject inside .helper invoke functions bug 18071147 Change-Id: I0ff00b3a86cd799cdb1eebcd1000b74070ee0cdf
/frameworks/compile/libbcc/include/bcc/Renderscript/RSTransforms.h
|
25eb586bb055ae07c7e82a2b1bdbd6936641580c |
|
09-May-2014 |
Stephen Hines <srhines@google.com> |
Switch RSForEachExpandPass to use MetadataExtractor. Change-Id: I442054e7aa2329b369f578052bd41c7a973cc822
/frameworks/compile/libbcc/include/bcc/Renderscript/RSTransforms.h
|
1253c195dd7911ad91bd66790f03e4c2f8888ad2 |
|
09-May-2014 |
Stephen Hines <srhines@google.com> |
Switch to MetadataExtractor path. Change-Id: Iabef9abb1c770ffe1e753cfd2fac808f60c19d8a
/frameworks/compile/libbcc/include/bcc/Renderscript/RSTransforms.h
|
86a0b797c221d4c3373dc10c8229b75b6747f6e7 |
|
07-Nov-2012 |
Stephen Hines <srhines@google.com> |
Embed RS metadata info directly in emitted object code. Bug: 7419958 Change-Id: Ibd82e503c006532aa74013a46dd13ec3e9473daa
/frameworks/compile/libbcc/include/bcc/Renderscript/RSTransforms.h
|
2b04086acbef6520ae2c54a868b1271abf053122 |
|
28-Jul-2012 |
Stephen Hines <srhines@google.com> |
Use known strides instead of input args when possible. BUG=6892059 Change-Id: I15b3726624ff0eeca5e30aaa6de928f1c9912471
/frameworks/compile/libbcc/include/bcc/Renderscript/RSTransforms.h
|
e198abec6c5e3eab380ccf6897b0a0b9c2dd92dd |
|
28-Jul-2012 |
Stephen Hines <srhines@google.com> |
Rename RenderScript -> Renderscript. Change-Id: I187928033b47f3e3f4cb811a0b3562f479cfe417
/frameworks/compile/libbcc/include/bcc/Renderscript/RSTransforms.h
|