path: root/lib/Renderscript
AgeCommit message (Collapse)AuthorFilesLines
2014-07-31Fixes AArch64 struct calling convention issue.Chris Wailes1-5/+49
Change-Id: I9a760c1238ff8b30e0a29a2cd11a030b17b283e2
2014-07-16Deprecate rs_fp_imprecise.Jean-Luc Brouillet1-17/+13
If rs_fp_imprecise is specified, issue a warning and use rs_fp_relaxed instead. Change-Id: I054fa32128bda60a6d22a0a6a590cd9f3575a2ca
2014-06-30Adds support for multi-input kernels to libbcc.Chris Wailes1-57/+126
This patch modifies libbcc in the following ways: * Adjusted the data-layout of the LLVM version of RsForEachStubParamStruct to accommodate a pointer to an array of input allocations and a pointer to an array of stride sizes for each of these allocations. * Changed how some LLVM values are stored in ExpandKernel. * Causes expanded multi-input kernels to extract input allocation base pointers from a field in the param strcut and load values from these allocations appropriately. * Causes expanded multi-input kernels to use the provided dynamic input stride sizes if no appropriate static type information is present. * Modified bitinfo to support a new development API target which is used to version gate support for multi-input kernels. Change-Id: I46d2834c37075b2a2407fd8b010546818a4540d1
2014-06-26Use build fingerprint and compile command for caching.Jean-Luc Brouillet4-88/+148
If either of those have changed, we need to invalidate the compiled bit code. Change-Id: I9b5cdc19e29237dc7fb2ec1627a167f3f8987702
2014-06-19Change cache dependency tracking.Jean-Luc Brouillet6-379/+70
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
2014-06-18Merge "Fix build break caused by missing ifdefs."Tim Murray2-3/+3
2014-06-18Fix build break caused by missing ifdefs.Tim Murray2-3/+3
Change-Id: I29e8e1c58b9702873a2a4b932794720ee279492e
2014-06-17Merge "Don't require libclcore_neon.bc on AArch64."Tim Murray1-6/+6
2014-06-16Simple cleanups in RSForEachExpand.cppChris Wailes1-161/+166
Re-named single character variable names. Re-named some variables for clarity. Factored out type construction code to only occur once every time the pass is run on a module. Removed unnecessary temporary vectors. Removed a check for an invariant guaranteed by another function. Added some assertions. Change-Id: I0debcc301ed28f4ecaf7dadcaada604e3eff9830
2014-06-16Don't require libclcore_neon.bc on AArch64.Tim Murray1-6/+6
Change-Id: Ieb4eea41f74917c201a07aa8b246816430fcac5c
2014-05-28Update libbcc for ARM64.Tim Murray1-5/+0
Properly sets NEON/VFP on ARM64. Begins to remove cache from libbcc. Change-Id: I66f50fa20d606c38d5e7af0a6fa8c6e73b2aff32
2014-05-27Fix foreach func vector resize issue.Tim Murray1-1/+5
Change-Id: Ie446319900558bbf5ecb30ee1b874c260197080b
2014-05-21Separate out the symbol resolver from RSCompilerDriver.Stephen Hines1-10/+4
This change makes compilation distinct from loading. The symbol resolvers now need to be instantiated directly by the RS driver. Change-Id: I37ce409f1b2e538d9091c025895e639a250d6466
2014-05-16Remove unnecessary inheritance for CompilerConfig, as we switch to offline bcc.Stephen Hines1-10/+10
Change-Id: Id4a5be7b2b4627bfa7ef6279eb3b5b8e75915a7d
2014-05-15Fix some minor issues picked up by valgrind.Stephen Hines1-0/+1
Standalone bcc was leaking memory due to misuse of OwningPtr. RSInfo was not clearing a buffer before using only part of it. The whole buffer was being written out in the resulting file, however. Change-Id: Icd455748f81a06d022f1e5ed83a2ab1cae3fef09
2014-05-14Switch RSForEachExpandPass to use MetadataExtractor.Stephen Hines2-58/+48
Change-Id: I442054e7aa2329b369f578052bd41c7a973cc822
2014-05-13Switch to MetadataExtractor path.Stephen Hines2-52/+38
Change-Id: Iabef9abb1c770ffe1e753cfd2fac808f60c19d8a
2014-05-13Refactor RSEmbedInfo pass.Stephen Hines1-16/+19
This change separates out the creation of the InfoString from the actual embedding within the object file. This is important because we want to reuse the InfoString for caching metadata. Change-Id: I2524d39dc25c48fc968108e82c6aa01c1920ff1d
2014-05-09ARCH_ARM_HAVE_NEON should be consistent for aarch64 targets.Stephen Hines1-7/+7
Change-Id: I54979e9215f2a2cbc98641a841a24e32beb417b4
2014-05-05Remove Makefile->Header code generation from libbcc.Stephen Hines1-2/+0
These variables/defines are not often used and they complicate the use of target information in other Android libraries. Change-Id: I93dc71e17ae8ece1be46a3a609639ec8380cdaf9
2014-04-30Improve standalone bcc for on-device compilation.Stephen Hines1-2/+5
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
2014-04-23Update libbcc for 64-bit support.Tim Murray2-10/+7
Change-Id: I369a82eb6730a33c46b6700408952fe34020ca51
2014-04-16Merge "Change 64bit library path from /system/lib/ to /system/lib64"Tim Murray2-10/+16
2014-04-09Change 64bit library path from /system/lib/ to /system/lib64WeiTang2-10/+16
Change-Id: Ie2ec537bb71ca6573588bcaf893d871ba9b5c051
2014-04-07Add DISABLE_LLVM_DEVICE_BUILDS to libbcc.Tim Murray1-2/+2
Change-Id: Iaad7b2ea8eea6c89c1c1a3d0e145bbb7bf60c6b9
2014-03-21libbcc: disable more modules for arm64Colin Cross1-0/+3
Disable building libbccSupport and libbccRenderscript for 64-bit Change-Id: Ied29b4eb129f42b1d3ad0a6d71a683d28b3e14be
2014-03-17Fix incorrect memcmp in RSInfoReader.Jean-Luc Brouillet1-1/+1
modified: RSInfoReader.cpp Change-Id: I669cfaeb0eb5354402410b3742f590cfc593d0ba
2014-02-20Fix TBAA: Set path tag metadata to instruction.Logan Chien1-4/+6
This commit replace the old createTBAANode() with the struct-path TBAA introduced after LLVM 3.3. This should fix the possible regression after merging LLVM 3.4. Change-Id: Ie21fe4616784bad467b0f20226fce48da3afb2bd
2014-02-19Provide a flag to disable TBAA for RS (and disable TBAA temporarily).Stephen Hines1-5/+15
Bug: 12977065 This is currently blocking the LLVM 3.4 rebase, since our TBAA pass is causing NULL pointers to be dereferenced. Change-Id: I51cd9d0efc331150970c3054a9cd26f55aa2eb0d
2014-02-18Fix disabling global merge option with standalone bcc.Stephen Hines1-3/+4
mConfig will be set before entering setConfig so EnableGlobalMerge needs to be refreshed every time. Change-Id: Ia51e706e717636ea7a87f625256d21bb050da6db
2013-10-03resolved conflicts for merge of 8d972a6f to klp-dev-plus-aospStephen Hines2-3/+3
Change-Id: I7d1f460a1b6de08b11b430f90c7bf2534e5cca31
2013-10-03resolved conflicts for merge of 4293770c to stage-aosp-masterStephen Hines8-30/+20
2013-10-03DO NOT MERGE: Refactor the libbcc runtime for x86 platformJun Tian11-936/+94
This patch refactors the libbcc runtime code to support x86 platform. It removed the redundant x86 code and added the missing functions in libclcore_x86.bc. It resolved the RenderScript failures on the x86 platform. Bug: 9961583 Change-Id: Ieed97e90c7c7691185a88dc425a2dd8c68aeb806 Signed-off-by: Yong Chen <>
2013-10-03Remove references/use of ARCH_X86_HAVE_*.Stephen Hines8-30/+20
Bug: 11048298 These SSE-related defines are unnecessary because all x86 Android devices have these features. We switch all the checks to __i386__ instead. This also fixes an issue where non-ARM bitcode files were being created with the ARM defines present. This is problematic when we then try to do things that would be arch-specific (i.e. the presence of SSE-enabled functions for clamp(), ...). This also cleans up the different target architecture specified in the x86 bitcode files so that they match the platform target (i686-unknown-linux). Change-Id: Ibbead4aecba2c90bdbe6ff362960079cb7a9e4dc
2013-09-26resolved conflicts for merge of b9a4701b to klp-devStephen Hines1-1/+2
Change-Id: I9f7924c489d36913e130fd5e7617e3a96e65f1a1
2013-09-26Fix windows line ending bug.Stephen Hines1-1/+1 Change-Id: I578bab2f41347ac2e43b7d4dc1f206c5f91aeae5
2013-08-26DO NOT MERGE - Only support EnableGlobalMerge on ARM architectures.Stephen Hines1-0/+5
Change-Id: I5c4c236c306e120c5aa24fbc91815cc27d7aab0f Conflicts: include/bcc/Renderscript/RSCompilerDriver.h
2013-08-26DO NOT MERGE - Provide a way to disable LLVM's global merge optimization.Stephen Hines1-2/+8
Change-Id: I92dff2a208c821722f057dd8c26bd12a1cb5a794 Conflicts: include/bcc/Renderscript/RSCompilerDriver.h lib/Renderscript/RSCompilerDriver.cpp
2013-08-20DO NOT MERGE: Refactor the libbcc runtime for x86 platformJun Tian11-936/+94
This patch refactors the libbcc runtime code to support x86 platform. It removed the redundant x86 code and added the missing functions in libclcore_x86.bc. It resolved the RenderScript failures on the x86 platform. Bug: 9961583 Change-Id: Ieed97e90c7c7691185a88dc425a2dd8c68aeb806 Signed-off-by: Yong Chen <>
2013-08-15resolved conflicts for merge of 8607272a to klp-devandroid-4.4_r0.7Stephen Hines1-0/+6
Change-Id: Ic9b996432bfcd228ae8a45f75bc9c564a3a66a31
2013-08-09Update libbcc for LLVM merge to r187914.Stephen Hines1-20/+8
Switch over to new llvm::sys::path implementation. Remove unused Source::CreateFromFd(). F_Binary is now in llvm::sys::fs. Change-Id: Ib0ebb8a1d8ea04e5cf36c8082cf31dab2e144554
2013-08-08Remove locking code on Windows builds.Stephen Hines1-0/+4
Change-Id: Ia5656cf4feec3206e73ecc3e3b504146b0c66707
2013-08-07Merge "Decode RenderScript kernel signatures using bcinfo::MetadataExtractor."Stephen Hines1-39/+19
2013-08-07am a08768d4: am 48cd7454: Fix Windows build issues for libbcc.Stephen Hines1-0/+2
* commit 'a08768d46fa5e3087d0fbd288366c53495ee2773': Fix Windows build issues for libbcc.
2013-08-02Decode RenderScript kernel signatures using bcinfo::MetadataExtractor.Stephen Hines1-39/+19
Change-Id: I9472d0c36e23a1e0d583fc823c986ee7a1bb05ed
2013-08-01Annotate allocations with Renderscript TBAA metadataTobias Grosser1-4/+103
We extend the RSForEachExpand pass to emit Renderscript TBAA metadata. This allows us to prove the absence of aliasing between accesses to to allocations and other data accesses. This is especially useful as it enables the compiler often to hoist loop invariant globals out of the compute loop. Change-Id: Ic993c85b56ecf79b9cd5241fe3d961ace2b23935
2013-07-31Use BUILD instead of HOST for bcc_strip_attr.Stephen Hines1-1/+1
Change-Id: Ifeea47994e36d29f690bd77af812500f7e023db1
2013-07-31Fix Windows build issues for libbcc.Stephen Hines1-0/+2
Add unimplemented versions of dlfcn.h functions. Remove OutputFile::CreateTemporary(), since it is unused. Remove unnecessary includes to prevent issues with missing libraries. Change-Id: I74bea72c8f174843e61faa8cac8bd6ae429a1bc0
2013-07-23Remove beforeExecuteLTOPasses callbackTobias Grosser1-13/+16
This callback had very unclear semantics and the current use was suprising. Specifically, it took a PassManager parameter, but adding anything to this pass manager would cause the passes to be executed after the other LTO passes The only way to execute passes before the LTO passes, was to create a new pass manager that executes a pass right before all LTO passes (that have already being queued in the pass manager passed in as a parameter) will be executed. The very same behavior can be achieved by just adding our passes to the normal pass manager using the "BeforeAddLTOPasses" callback. We used this callback to schedule the ForEachExpand pass. This pass is now moved to the beforeAddLTOPasses callback. Change-Id: I3916543a4ee282e403174b90dc7b7588baab9ea3
2013-07-12Only support EnableGlobalMerge on ARM architectures.Stephen Hines1-0/+5
Change-Id: I5c4c236c306e120c5aa24fbc91815cc27d7aab0f