History log of /frameworks/compile/libbcc/include/bcc/Renderscript/RSCompilerDriver.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
656325bdb4751d5606f9e53d8f417bd727032c31 17-Jul-2015 Stephen McGroarty <stephen@codeplay.com> Stopped bcc from ignoring optimization level

Added in a constructor for RSScript which takes in the compiler
config and derives the optimization level from that rather than
defaulting it to opt level 3. Also added in a statement to catch
a null pointer for the case where the llvm-rs-cc produced bitcode
fails verification.

Change-Id: I6efdab6280a9c389268b5a40dc4a50eb9bc24370
Signed-off-by: Stephen McGroarty <stephen@codeplay.com>
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
186d2f34573eb20de197d8eb8e08bcadd031a9bd 07-Apr-2015 Yang Ni <yangni@google.com> Embed a real chesksum in script group .so

Change-Id: Icf2f37867692f94e344a292fa15f8b85e0fc30a5
552537979f312f62488eee9e45b2f78678eafbea 25-Mar-2015 Pirama Arumuga Nainar <pirama@google.com> Include missing header

Fix build breakage in win_sdk.

Change-Id: I21b80b6354e337ba933ef76e8a238c4edeae2123
a65fba6fd15b14d930809e64c84fb976a893d038 19-Feb-2015 Pirama Arumuga Nainar <pirama@google.com> Remove RSInfo

bug 19602994

RSInfo is no longer used. Script-specific information is now passed via
.rs.info variable in the object file. This patch removes RSInfo and the
old caching path which was closely tied to RSInfo.

Change-Id: Icb62ed848d1a262dd13d5c49652d034fcd0bb943
6da4e253a513feef3405759fef6d0760828808ca 11-Mar-2015 Yang Ni <yangni@google.com> Handle FP precision in kernel fusion


Added a bcc command-line option for the relaxed core lib path.
If the relaxed lib path is provided, it will be used if the merged
module has relaxed FP precision.

Change-Id: I2a641387f0990463887594729a935a5c3f0f856f
0ab50b835805c75ad164466767c2c212f48954cc 16-Feb-2015 Yang Ni <yangni@google.com> Create one single module for a script group

This changed the way we compile a script group. Instead of compiling
each batch into a seperate module, we now compile the whole script
group into one single module, with each batch as a function (of fused
kernels) in that module. This allows invoke to (fused) kernel
communication via globals variables.

Added commoand line options "-merge" and "-invoke". The former
accepts fused kernel names, input kernels, while the latter accepts
new invoke name, and the original invoke function.

Additional changes:

- Bail out on encountering any unexpected bits in the foreach
signature of any kernel to fuse
- Made kernel fusion handle kernels without inputs.
If a kernel only takes global allocations but no inputs, bcc
needs to use a different signature for the fused kernel.
- Included in rs info the exported variables for the fused kernel.
- Keep all metadata in merged module from the input modules. This
would help correctly handling FP precision. (b/19098612)
- Handles Z (b/19610223)

Change-Id: I5553f86b2e58325f85649078d48685a38f12d62f
51ee77bd31e7d8ca6c89e37b5806c8fc2afcf0dc 20-Feb-2015 Pirama Arumuga Nainar <pirama@google.com> Add a -build-checksum flag to bcc

bug 19216507

Add a flag to bcc to pass a build checksum. The checksum is passed to
RSEmbedInfo pass via LLVM metadata.

The old checksum path is tied to RSInfo. Removing this path can be done
along with RSInfo removal.

Change-Id: I3f21c96ddcfe42c16754fbb7749a72595f90964d
77c1d553e5799aef5add08667e71b62b6842ed2e 23-Jan-2015 Tim Murray <timmurray@google.com> Fix -emit-llvm with shared object compilation.

Change-Id: I696f3777a0981a875772d7340970a6cb49581cd7
a4ded1373d7ad3e503f186e65bccf94126a0f020 18-Nov-2014 Yang Ni <yangni@google.com> Compiler kernel fusion for RenderScript.

This was started by Tobias Grosser during his internship at Google in 2013.
This CL includes his original changes and generalization to make it work with
the new proposed ScriptGroup API and made the ImageProcessing processing work
with this.
An enabling CL is needed in the RenderScript runtime, which I will post

Change-Id: Ia73ea917a126a5055ec97f13d90a5feaafd6a2f5
107f50d54d9606e495187d0e89225d3d9fdc1fa9 20-Jan-2015 Stephen Hines <srhines@google.com> Remove linkloader from frameworks/compile/libbcc.

Bug: 18322681

Now that we have switched completely to the new shared library object
loading path, we can safely remove the legacy linkloader path.

In frameworks/compile/libbcc, this removes all of libbccExecutionEngine,
since the loader is now self-contained in libRScpu_ref (similar to the
support library's shared object loader). We also remove support for
all symbol resolvers and the gdb JIT interface (which was already

Change-Id: Ie5cc152d93f5e75383f7c21a4523579cfae8823f
b4447cd2b14f53efd9102d28da48000be7b2d4fd 20-Aug-2014 Chris Wailes <chriswailes@google.com> De-cruft the libbcc compiler infrastructure.

This patch removes the RSCompiler subclass of Compiler and moves most of its
functionality over to the original Compiler class. Methods and variables are
re-named to make the code clearer. In addition, unused functions have been

Change-Id: I121463df6309c377496cebea8cbb82bb49624ed1
900c6c1f08f7c572125d7d39abe0f0f9eafbfa14 14-Aug-2014 Chris Wailes <chriswailes@google.com> Replace NULL macros with nullptr literals.

Change-Id: Id2311cda59dd42c74b3ed54d3ff6cfd509012738
f2ac3176c351cd80bce77fe1488f3de2d0789c1b 26-Jun-2014 Jean-Luc Brouillet <jeanluc@google.com> Use build fingerprint and compile command for caching.

If either of those have changed, we need to invalidate the
compiled bit code.

Change-Id: I9b5cdc19e29237dc7fb2ec1627a167f3f8987702
c5e607adff80a66bc5420baffd299862abdf368d 19-Jun-2014 Jean-Luc Brouillet <jeanluc@google.com> Change cache dependency tracking.

Remove the fix dependencies and make it depend only on the source
hash. More changes coming soon to add dependencies on the Android
build fingerprint and the command line used to compile.

Change-Id: I8964044affccf52326ce286f879307eca79d0b24
b39557ea3f72e1854581aa1f859b2323499389b1 22-May-2014 Stephen Hines <srhines@google.com> Separate out the symbol resolver from RSCompilerDriver.

This change makes compilation distinct from loading. The symbol resolvers
now need to be instantiated directly by the RS driver.

Change-Id: I37ce409f1b2e538d9091c025895e639a250d6466
c3437f05c638f8befda59170ae788873db24dc1c 31-Jan-2014 Stephen Hines <srhines@google.com> Improve standalone bcc for on-device compilation.

Bug: 7342767

This adds functionality for driver-writers to dynamically load plugins.
If such a plugin is loaded, we then execute any function called
rsCompilerDriverInit() from it. This function can initialize any other
state the driver-writer wants.

Change-Id: I733a6a3fc59c429a542cfcaf59a57ad231a19d01
c06cd06078a8c866d5cecbf897326092b55a8955 12-Jul-2013 Stephen Hines <srhines@google.com> Only support EnableGlobalMerge on ARM architectures.

Change-Id: I5c4c236c306e120c5aa24fbc91815cc27d7aab0f
ad69476ec040ba9ee07176ccb758aabb5ff6d51c 30-Apr-2013 Stephen Hines <srhines@google.com> Provide a way to disable LLVM's global merge optimization.

Change-Id: I92dff2a208c821722f057dd8c26bd12a1cb5a794
7b980e1717f3cf418f7bc4e40597004bc1139b8b 20-Jun-2013 Tobias Grosser <grosser@google.com> bcc: Add option -emit-llvm

Change-Id: I98470c6573b216518f77d338f4659d5b9fbcc3d3
47f0d5a8d9ed629a6d58d3e69891f2c7fdee44d9 05-Jun-2013 Stephen Hines <srhines@google.com> Further separate build (compile) and load in libbcc.

Bug: 7342767

Change-Id: Ia6000d6c3557280126c6bb7f945c922528adeedc
01f05d4b45cbde1e07d4707152908c1d843f1328 01-Jun-2013 Stephen Hines <srhines@google.com> Load scripts from cached files every time.

Bug: 7342767

Having an separate in-memory (vs. file-based) loader makes little sense as
we refactor libbcc (to separate it into its own process space). This change
is a first step in cleanly separating the compile and link steps.

Change-Id: Iad67527329171f18475ced0f0b2652a0aa060259
1d4a9e4646e8786623daa6ac3917782be56a8fb2 18-Apr-2013 Stephen Hines <srhines@google.com> Improve caching for debug contexts.

Bug: 7343201

We now skip caching on debug contexts and destroy the cached script copy
when we are finished with it. This is a temporary fix until we can refactor
libbcc caching.

Change-Id: I356b67419dc246209c7b5e077264b0cf2e42578c
06731a6150ae8014d37258d5f32ef8bc14a3db63 13-Feb-2013 Stephen Hines <srhines@google.com> Add LinkRuntimeCallback() and supporting functions to RS compiler.

Change-Id: I7745406a94ba74896ee98752a3de106d2672159d
3ab9da1e1b3d7794994393af086d096397fb84db 02-Feb-2013 Stephen Hines <srhines@google.com> Fix bcc_compat symbol resolution with libcompiler_rt.so.

Change-Id: Id6177e53ec9647b560a73de566d2d8a95d860200
09ca95426a7ec66def02e47048bb25289759c6fb 26-Jan-2013 Shih-wei Liao <sliao@google.com> Switch to use libcompiler_rt for compiler runtimes.

Change-Id: I64b3d4ba80343bc592fa0df72242b33b2d2ae0ed
331310e1f3f86a795f78e42b3f03558a43829f09 27-Oct-2012 Stephen Hines <srhines@google.com> bcc_compat - convert bitcode to shared object files.

BUG: 7419958

Change-Id: Ie81203b460d60425780657b51ba3aba2b2b77e05
e198abec6c5e3eab380ccf6897b0a0b9c2dd92dd 28-Jul-2012 Stephen Hines <srhines@google.com> Rename RenderScript -> Renderscript.

Change-Id: I187928033b47f3e3f4cb811a0b3562f479cfe417