• Home
  • History
  • Annotate
  • only in /frameworks/compile/libbcc/lib/Renderscript/
History log of /frameworks/compile/libbcc/lib/Renderscript/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a48ea364652efcf947dd33c8a6ba893e9c00dd6a 02-Jun-2016 David Gross <dgross@google.com> Delete simple reduction implementation.

Bug: 27298560
Change-Id: Id826426fc81458ad66118bf7b2059a7a6f02a047
SEmbedInfo.cpp
SKernelExpand.cpp
c6c9c1f04b480a395daa1bdd5d634060e505bd80 15-Apr-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes from topic 'struct-fix' into nyc-dev

* changes:
Translate GEP instructions on structs to GEP on int8*
X86: Fix kernel Input/Output GetElementPtr offset issue
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)
ndroid.mk
SCompilerDriver.cpp
SX86TranslateGEPPass.cpp
7d6cde16bde7c6c65d47b51bb992bdfb94077393 21-Oct-2015 Yong Chen <yong.a.chen@intel.com> X86: Fix kernel Input/Output GetElementPtr offset issue

http://b/24142721

The disagreement between module and x86 target datalayout causes
mismatched size calculation of structs with 64-bit scalar fields.

This patch solves the issue by treating input and output pointers as
byte* pointers, indexing them with explicit byte offsets computed using
a modified data layout for x86, with alignment for 64-bit scalars set to
8-bytes, and casting the indexed pointers back to the real type.

Change-Id: Id99ea0e37f5cc9ad93cc6a5979db79ff11b3998c
Signed-off-by: Yong Chen <yong.a.chen@intel.com>
(cherry picked from commit f039d98d346006442b61255a2889b8513a8cd56f)
SKernelExpand.cpp
57fd9f882f3359be4201c42b02aebf785d311df2 08-Apr-2016 David Gross <dgross@google.com> If a general reduction kernel lacks a combiner function, synthesize one.

The CPU reference driver can only go multithreaded for a reduction kernel
if that kernel has a combiner function.

Bug: 27299475

Change-Id: If7f3a9ba8ec5e15ed5f3ef96968d28d650b01c20
SEmbedInfo.cpp
SKernelExpand.cpp
741f72bde7704e49c096dd90effdff4ab099d2d9 04-Apr-2016 Pirama Arumuga Nainar <pirama@google.com> Update bcc's whitelist with rsDebug for half

http://b/27556050

Change-Id: Ic3f89c67e94c071c4da46554a293fe21b84a9ffc
SStubsWhiteList.cpp
791d57c5b387448cd672010ff970daed5ae41773 30-Mar-2016 David Gross <dgross@google.com> Merge "Preserve generalized reduction combiner function for use by driver." into nyc-dev
1ebe36a439886d7bf60978c2c5c25c973cc6bf3c 29-Mar-2016 Pirama Arumuga Nainar <pirama@google.com> Update bcc's whitelist with convert_halfN(halfN) variants

Bug: http://b/27529996
Change-Id: I7824eaccb9e0d4c7e4557510ded5ba0516872620
SStubsWhiteList.cpp
19eeecb82f25cd25032b8c9c35acb5b299ef0937 29-Mar-2016 Pirama Arumuga Nainar <pirama@google.com> Update bcc's whitelist with native_distance for half

Bug: http://b/27547875
Change-Id: Idf34df2d3ba9ebcfc1ff2c7d1d77550dac1c28d1
SStubsWhiteList.cpp
8ca13573dee07254c95067d05476a82980d8fd6f 21-Mar-2016 David Gross <dgross@google.com> Preserve generalized reduction combiner function for use by driver.

This is needed for multithreaded execution of a reduction kernel.

Bug: 27299475

Change-Id: Id94606f73eea3462232a7f7473fa7a3324f536c6
SKernelExpand.cpp
8e9089377848628813a697b972773e969b942c3b 07-Mar-2016 Pirama Arumuga Nainar <pirama@google.com> Update libbcc for LLVM rebase to r256229

http://b/26987366

(cherry picked from commit f229c40f0d2da19985e68955aef1a06ce4121e63)

Change-Id: I3d89bb15d0c3e7d64f74656365ed1d472e7de4c7
ndroid.mk
SAddDebugInfoPass.cpp
SCompilerDriver.cpp
SKernelExpand.cpp
SScriptGroupFusion.cpp
SX86CallConvPass.cpp
ea79b56be9bb01d85958c1b44078a76a00315b30 18-Feb-2016 Pirama Arumuga Nainar <pirama@google.com> Update RSStubsWhiteList with some vector f16 functions

http://b/23536224

Auto-generated from spec file udpate in
https://android-review.googlesource.com/#/c/203325/.

Change-Id: I41f4e488ac0b682f252761009488273dfdf43c97
(cherry picked from commit 88c2cbd86222d268f51e50d23e45611790aa506c)
SStubsWhiteList.cpp
6e66918a08f3c4819f3d266a718214525b883645 18-Feb-2016 Pirama Arumuga Nainar <pirama@google.com> Update copyright date in RSStubsWhiteList.cpp

http://b/23536224

Change-Id: Iae17f757efaea5321ce381eab8b0eb2e3ae1d033
(cherry picked from commit 0fe574d1ff0ea823911f5d5a19fcafb84e6d47c2)
SStubsWhiteList.cpp
2351f9290cb9de67e5afb79b2afc7408bf4eb926 25-Nov-2015 Dean De Leo <dean@codeplay.com> Improvements to the RSAddDebugInfo pass.

This change makes the RSAddDebugInfo pass generate much more complete
debug information than before.

Newly implemented features and changes:
* Debug info for each of the expanded kernel arguments is now generated.
This allows the debugger to inspect kernel invocation size,
current outer loop indices ('y' and 'z') and other useful information.
* Adds debug info for the expanded kernel loop index variable.
This allows the debugger to access the current thread index along the
'x' axis.
* Pass now uses MetadataExtractor to get the list of kernel functions
instead of relying on naming conventions.
* Various code improvements.

(cherry picked from commit 9d009b0a25bf7eea6f2da2521107dc37acea9acc)

Change-Id: I4d6ee8f1bd2844ed85ccd933ead0fb479d716aae
SAddDebugInfoPass.cpp
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
SKernelExpand.cpp
16516c6e73f0d89fcd05a0c6f9fc456888004c2a 18-Dec-2015 Verena Beckham <verena@codeplay.com> Add quaternion functions to the stubs white list.

Update the stubs white list, which is generated by
frameworks/rs/api/generate.sh, after changes in the
rs_quaternion.spec file in
https://android-review.googlesource.com/188730/.
This also relies on https://android-review.googlesource.com/178432/
to generate the right signatures.

Signed-off-by: Verena Beckham <verena@codeplay.com>

(cherry picked from commit 2a3e5deca5c064be6a339e99ed5dcca81d727edf)

Change-Id: Ia5d88f5398b1c90e6b7dfda3071598b1e384ef77
SStubsWhiteList.cpp
4d0aa47a4ebd8ee432ca3f3f88616d23cbb43a10 06-Feb-2016 Pirama Arumuga Nainar <pirama@google.com> Update bcc whitelist with a few more math functions for half

http://b/23536224

Auto-generated from API specification change
https://android-review.googlesource.com/#/c/201420/.

(cherry picked from commit 23b23462f46866c079362870c2cb9a720b732006)

Change-Id: I39fd3a82f4d88041c8f19c7b3521a907606e253c
SStubsWhiteList.cpp
3491f318da4557bffb8c98c22c794964fcf6b734 04-Feb-2016 Pirama Arumuga Nainar <pirama@google.com> Update bcc whitelist with a few math functions for half

http://b/23536224

Auto-generated from API specificat change
https://android-review.googlesource.com/#/c/200910/.

Change-Id: I1e453c86c322215614ed21dfb3336a6041c7ba20
SStubsWhiteList.cpp
0abb9a039922ee3043de7a276b947b961ee54a31 31-Jan-2016 Stephen Hines <srhines@google.com> Merge "Add matrix functions to the stubs white list."
69619e0a59ee5d571596dda0ffe560cb148c94fa 31-Jan-2016 Stephen Hines <srhines@google.com> Merge "Add fract(float) functions to the stubs white list."
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
ndroid.mk
SAddDebugInfoPass.cpp
e32af52d4be2bb80783404d99fa338b1143dbc9a 15-Jan-2016 David Gross <dgross@google.com> Support for general reduction kernels.

Bug: 23535724
Change-Id: I28b6b8fafab3fe9f5d09beb990791843875e1f26
SGlobalInfoPass.cpp
SKernelExpand.cpp
79e1a05f704ada1bb12749fe3f8b9b69309be9e5 11-Jan-2016 David Gross <dgross@google.com> Metadata support for general reduction.

Needs corresponding change in frameworks/rs: The driver and bcinfo
need to remain precisely in sync with regard to metadata format in
order for RenderScript to work at all.

Also fixed memory leak in MetadataExtractor.

Bug: 23535724
Change-Id: I6857f605c79139bdce362a7aeef73c91fc502ff6
SEmbedInfo.cpp
21d3858d67ac99fe38d58b29088aa5a6c60191c1 18-Dec-2015 Verena Beckham <verena@codeplay.com> Add matrix functions to the stubs white list.

Update the stubs white list, which is generated by
frameworks/rs/api/generate.sh, after changes in the
rs_matrix.spec file in
https://android-review.googlesource.com/188731/.

Change-Id: I0bc6c617569959aaa798e6b348e1cb98a93a8dd8
Signed-off-by: Verena Beckham <verena@codeplay.com>
SStubsWhiteList.cpp
80711a41336ada9628e09224a640dad08acc90b3 18-Dec-2015 Verena Beckham <verena@codeplay.com> Add fract(float) functions to the stubs white list.

Update the stubs white list, which is generated by
frameworks/rs/api/generate.sh, after changes in the
rs_math.spec file in
https://android-review.googlesource.com/188740/.

Change-Id: Ib87b98f0c5d4b76c07d87f785a1dbb797c60bd30
Signed-off-by: Verena Beckham <verena@codeplay.com>
SStubsWhiteList.cpp
9774f5028b0d2d22a903de03a810c9ea4a6071bc 10-Dec-2015 Pirama Arumuga Nainar <pirama@google.com> Update whitelist with f16 math functions.

Automatically generated from the spec file change in
https://android-review.googlesource.com/#/c/186324/

Bug: 23536224
Bug: 26099915

Change-Id: Ia5e849e2adb90655f965a59923a5e9210df897a7
SStubsWhiteList.cpp
02c61f6dbe389424a97b2ffd333bcfc6e1e952c1 19-Nov-2015 Yang Ni <yangni@google.com> Updated whitelist and a fix for target x86_64

Updated whitelist for new rsForEachInternal signature.

Correctly handles RS object parameters of rsForEachInternal for the
x86_64 target.

Change-Id: I1b53861083b87c51c5bdaeaec2be469dc7af7a0a
SStubsWhiteList.cpp
SX86CallConvPass.cpp
49321872ca618ae314f7b6985b9d11368b408692 12-Oct-2015 Pirama Arumuga Nainar <pirama@google.com> Whitelist allocation-creation functions in libbcc

Automatically generated from
https://android-review.googlesource.com/#/c/175582/

Change-Id: Ic68c3c425e1c7b0d3d73a56c5de46f11ea7495b8
SStubsWhiteList.cpp
71335657996062f03dd754b2cdde461f9d167a4c 29-Oct-2015 Yang Ni <yangni@google.com> Launch options & multi inputs for single-source RS

Bug: 23535985

Updated bcc whitelist with the new rsForEach mangled function name.

Change-Id: Ibc22bd5e9585a4471b15920ef60fe1fe2312de49
SStubsWhiteList.cpp
bb8b06af6d01c01958c35b0b1e9d8cc41c7f44be 18-Sep-2015 Yang Ni <yangni@google.com> Whitelisting rsForEachInternal calls

Bug: 23535985

Auto generated from frameworks/rs/api/rs_for_each.spec

Change-Id: I6e2cf3db868f426aa8e0b9a77732b66c1e6b9f03
SStubsWhiteList.cpp
c31e101bed9d58be0388fead9c7344624978f580 26-Aug-2015 Stephen Hines <srhines@google.com> Fix invalid read of literal (anonymous) structure names on assertion builds.

Bug: 22926131

This change adds support for using libbcc with an assertion-enabled
build of LLVM via the FORCE_BUILD_LLVM_DISABLE_NDEBUG define. It also
restricts the use of getName() on literal structures. Although a
separate patch to frameworks/rs that makes our RS object types not just
typedefs of anonymous structs can fix this safely going forward, our
release builds will need to be able to read legacy bitcode that uses
anonymous literal structure types. Thus, we need the ability to call
getName() on all structures for release builds. In the case of assertion
builds, we will enforce that we are using the updated compiler + headers
so that the structures are not anonymous. If an older compiler + headers
are used in the host compile, the bcc compilation will fail with an
appropriate error message.

Change-Id: Ic2910aed069235b40a31c22b006a4db5c1b9e06c
SCompilerDriver.cpp
6af50b75fc0132a9957f19a11357c446b4836b16 19-Aug-2015 Dan Willemsen <dwillemsen@google.com> Stop using HOST_OS, whitelist windows modules

Bug: 23566667
Change-Id: I7ef9d73b897788ed4c8a8d8ca9a582cc08af15f9
ndroid.mk
9436c894e7d71d0665023f609fe0b823d1c604b7 22-Aug-2015 Stephen Hines <srhines@google.com> Merge "RSKernelExpand: Remove loads of instep and outstep values in new-style forEach kernel expansion."
3bc475b206c3fa249a212b90fe989fdcda4d75f9 13-Aug-2015 Matt Wala <wala@google.com> RSKernelExpand: Remove loads of instep and outstep values in new-style
forEach kernel expansion.

InStep and OutStep are not used by expanded new-style forEach kernels.
Instead, the strides are inferred from the type information available
to the kernel expansion pass.

Change-Id: Ieb3dc46ac4fdcd19d7e26f6d84b7356479b9984e
SKernelExpand.cpp
005666078051a3f8e1e0ff59678635f3c501cde8 21-Aug-2015 Jean-Luc Brouillet <jeanluc@google.com> Restore missing min and max API.

min(float2/3/4, float) and max(float2/3/4, float) were defined in our
headers in K. In L, they were removed by mistake. This continued to
work however because a float would be auto converted by the compiler to
a float4.

In M, we started validating for unexpected external references, which
_Z3minDv4_ff is. This can prevent programs compiled with K from running
on M.

This CL fixes the whitelist.

Bug:23389429

Change-Id: I21f59521b3744d0c5b6fd75dbf1810493e9c1d84
SStubsWhiteList.cpp
dfde70a8ae9b77bbf0e8d9d22a55e1d1fda7d64d 19-Aug-2015 Stephen Hines <srhines@google.com> Remove ambiguous parse to fix mingw build breakage.

Change-Id: I5f30aaa1669dc9a1dfb019e94df261c5eafa5a1f
SKernelExpand.cpp
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
ndroid.mk
SEmbedInfo.cpp
SForEachExpand.cpp
SKernelExpand.cpp
fe0de789385f766e2dacbcfdb05fa57509db874e 13-Aug-2015 Elliott Hughes <enh@google.com> Lose HAVE_ANDROID_OS from frameworks/compile/libbcc.

Change-Id: I445c64c3a3e571380d2efff39829a8d6cf48b329
SCompilerDriver.cpp
9296edce10caec9c901f24b65e7d54c8ffe9131c 06-Aug-2015 Matt Wala <wala@google.com> Fix alias metadata issues.

Bug: 22804168

(1) Remove the used of alias.scope metadata. This was not being used
correctly and had no effect.

(2) Fix the use of TBAA. Ensure that the temporary alloca used for
passing pointers to the kernel (if the kernel takes a pointer
parameter) does not get annotated with the RenderScript TBAA, because
this can conflict with existing TBAA metadata in the kernel.

Change-Id: I27018f809a33f213c6d4cc720b18b844f28b2d6f
SForEachExpand.cpp
efb3af3ba00e8dc9a10130ec66727ebd8c11a2ed 29-Jul-2015 Stephen Hines <srhines@google.com> Fix missing call to setLinkRuntimeCallback() from compat path.

Bug: 22809453

This call was missing from the buildForCompatLib() path, leading to
potential problems with GPGPU drivers that depend on that callback.

Change-Id: I236cf9f6e067d243977fbcce154e79953c9e33aa
SCompilerDriver.cpp
083ef3c3d1991e9fa443ff76065ec6528dd4730c 23-Jul-2015 Matt Wala <wala@google.com> RSForEachExpand: Improve getelementptr instruction generation.

(1) The old pattern, when accessing fields of the driver info
structure, was:

%base = gep %DriverInfo *%info, 0, <base array index>
%addr = gep [N x i8*]* %base, 0, <index>

This change folds the above into:

%addr = gep %DriverInfo *%info, 0, <base array index>, <index>

which simplifies both way that we generate the GEP instructions as
well as the resulting bitcode.

(2) In addition, GEPs of input pointers and instep sizes can be
hoisted out of the loop body.

(3) Finally, mark all GEPs into the DriverInfo structure as inbounds,
because we know they are.

Change-Id: Icfabbdb464af8865c2a4623d967bbb63ef711680
SForEachExpand.cpp
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>
SCompilerDriver.cpp
SScript.cpp
767dd80cb44a9e973405672d0beb54d741382592 15-Jul-2015 Stephen Hines <srhines@google.com> Merge "Fix a bug where kernels could modify the input allocation."
28c17995669687cecc96eaba232eecd3b65f5bbf 08-Jul-2015 David Gross <dgross@google.com> Fix rs_kernel_context_t type mismatch in call to kernel.

The kernel function context argument (if any) is a pointer to an
opaque user-visible type (rs_kernel_context_t) that differs from
the RsExpandKernelDriverInfoPfx type used in the wrapper
function (although the two types represent the same thing).
Therefore, we must introduce a pointer cast when generating a
call to the kernel function.

Bug: 21812992
Change-Id: I7680676a159cf052e2761b4f670f67891c3d6c1b
SForEachExpand.cpp
d96c9fae6bcbaa7d8bee0dab2d75beb8400248ff 07-Jul-2015 Matt Wala <wala@google.com> Fix a bug where kernels could modify the input allocation.

Bug: 22236496

A large struct in an input Allocation, passed by reference in AArch64,
was not being properly copied into a temporary location as the calling
convention requires. As a result, the kernel could have modified the
input allocation if it made any modifications to the argument.

Fix by copying the struct to a stack location before passing it to the
kernel.

Change-Id: I5089f9e5e27cd0d4ff249cbdc21f0c6ae186f189
SForEachExpand.cpp
e2423780bf482d2eeefa9a958b4793f865cba845 30-Jun-2015 Matt Wala <wala@google.com> Fix static object construction.

allocPointersExposed() maintains a static vector to hold a table of
function names. Unintentionally, the size of the table could grow with
each function call because the entries were being added by appending to
the existing object.

This can be fixed by using an initialization list instead of a
sequence of appends. Also, mark the table as const to ensure the code
doesn't try to modify it.

Change-Id: I0da0f99928e1614c945befff550b039d4f21e171
SForEachExpand.cpp
f1eeeb14d117a67c5f35b72e866890bd8d1d694f 29-Jun-2015 Yang Ni <yangni@google.com> bcc kernel fusion: Fixed checks and added better error messages

b/21949580

Need to increment the slot iterator only after checking if the slot
is first in batch.

Succeeding kernel input data type has to strictly match the return
type of the preceding kernel.

Give error messages on all error exits, with better messages.

Change-Id: Icc50b85377e820333b13e57389e53363d4a7e89f
(cherry picked from commit 531d08c85971e47f58aedc093fbe83f1b909703e)
SScriptGroupFusion.cpp
0768d387bf665e6430d0ffa05f7f1228050047ad 20-Jun-2015 Yang Ni <yangni@google.com> Check kernels before fusing

b/21958851

Kernel fusion for a Script Group expects kernels to be chained up
via outputs (return values) and first arguments.
Check this condition during fusion. Otherwise, BCC may crash on
broken invariants.

Change-Id: I013558c77dc3f79d6e42986121927dd6c695f27e
(cherry picked from commit 8c12d615b4ed4b1d782722a125dd1d43bc44a71b)
SScriptGroupFusion.cpp
23c2bfe96698091f2886d1959435d8949f76c46b 22-Jun-2015 David Gross <dgross@google.com> Fix cases where RSInvariant pass might miss marking some loads as invariant.

llvm-rs-cc and bcc can add numeric suffixes to structure type names; we need
to tolerate this when looking for the context structure by name.

Bug: 21815112
Change-Id: If5ef169245f8d43affdc43abb2298c7015568dd0
SInvariant.cpp
d7fc8037f075e1fa797bdf49aee4e096643981ed 19-Jun-2015 Jean-Luc Brouillet <jeanluc@google.com> Merge "Update RSStubsWhiteList.cpp with a generated list"
bb066cb45575eabcdb5bad9d3f3bd48f3b9b6b94 19-Jun-2015 Jean-Luc Brouillet <jeanluc@google.com> Merge "Screen bitcode for non-RS functions before linking with runtime lib"
150eef4097c996e14b50b7f58184265385c44713 19-Jun-2015 Pirama Arumuga Nainar <pirama@google.com> Fix check for literal types

In my previous commit on "Get struct names only for non-literal structs"
I got the check for literal structs reversed. This commit fixes that.

Change-Id: I7b1b35d4ad85bdfde65a2d68fa39cf2cb8bde9cb
SInvariant.cpp
ebff2ead4ad622ff1bd3f3c108790cead62fe7c7 22-May-2015 Pirama Arumuga Nainar <pirama@google.com> Screen bitcode for non-RS functions before linking with runtime lib

Bug: 19425238
Bug: 20894432

Perform the screening of non-RenderScript functions in the script before
linking against the runtime lib. Previously, this used to be done after
linking with the runtime lib, LTO passes and just before code
generation.

This allows vendors to link against a different runtime library that may
not have all the functions as the CPU reference driver and add new
builtins specific to their driver.

Moreover, symbols introduced by LLVM optimizations no longer need any
special handling.

Change-Id: I5628aa15547a9d56ef7e6550fcb45e8ffa821ade
SCompilerDriver.cpp
1997f70e65091cfe8695324c12d2cefbfb784fd6 15-Jun-2015 Pirama Arumuga Nainar <pirama@google.com> Update RSStubsWhiteList.cpp with a generated list

Bug: 19425238
Bug: 20894432

Use the automated mangled-name generation added in
https://android-review.googlesource.com/#/c/154754 to update libbcc's
whitelist.

Change-Id: I06ad3e1a0e71497cbd4c097a2fabec81f94ab8e2
SStubsWhiteList.cpp
0ef3c2c1f34aa61541c0b67833821eb0adfdf198 12-Jun-2015 Pirama Arumuga Nainar <pirama@google.com> Merge "Get struct names only for non-literal structs"
e8b9f0607d59e991d984302d790b8b16e3623cc3 12-Jun-2015 Pirama Arumuga Nainar <pirama@google.com> Get struct names only for non-literal structs

Bug 19545955

While marking loads as invariant, test that a struct parameter is
not a literal struct before comparing/testing its name.

Change-Id: I92fb234b42306859ecad87c83321f9a8fe1a210b
SInvariant.cpp
721414ca0d1f1d6a1f98b5f16c5766cfa001d784 10-Jun-2015 Matt Wala <wala@google.com> RSGlobalInfoPass: Fix types in global info tables

Bug: 20306487

With LLVM asserts enabled, the code that builds .rs.global_names and
.rs.global_addresses triggered an assertion because the table entries
were not void pointers.

Fix by casting the inputs appropriately.

Change-Id: I21310d8da46150dcf7590faf398d11b3b72a692b
SGlobalInfoPass.cpp
c2ca742d7d0197c52e49467862844463fb42280f 29-May-2015 David Gross <dgross@google.com> Replace assert() with project-specific version.

Our convention is to use our own form of assertion (bccAssert,
rsAssert, slangAssert) rather than C standard assertion (assert)
because the latter is disabled for the Android build process.
However, a few instances of assert() somehow made it through.

Bug 21444723

Change-Id: I6702268d452317bf0d78304f112fbfafefe3d5b9
SCompilerDriver.cpp
SForEachExpand.cpp
abfa7852d33391671d972614bb21990c5f32ee2b 23-May-2015 Stephen Hines <srhines@google.com> Fix x86_64 issue with a missing "." in structure names.

Bug: 21375248

This patch refactors RSX86CallConvPass.cpp a little bit so that it uses
our latest utility functions for determining the Type of a given Value.
The prior implementation could miss structures that didn't have a
suffixed dot + number appended to them (i.e. struct.rs_allocation.17
worked fine, but struct.rs_allocation would go undetected). This
resulted in missing conversions for the parameter types on x86_64
compiles (and thus crashes in CTS for reference counting, etc.).

Change-Id: Ic437754399514d201d2fb69f6efb03badc5f535d
SX86CallConvPass.cpp
d6dba60912f3eb9b6257ebe97daf63d4600fbb51 23-May-2015 Stephen Hines <srhines@google.com> Merge "Provide additional information about global variables."
fb81ec1a875d13d9750006313b9123903336101d 19-May-2015 Stephen Hines <srhines@google.com> Provide additional information about global variables.

Bug: 20306487

This patch extends our global information pass to include details about the
type of a global variable, whether or not it is static, constant, or a
pointer. It also refactors code that deals with conversion between
RenderScript's internal data types and LLVM's type system. A subtle bug
has also been fixed with respect to the RSInvokeHelperPass. The previous
version could ignore an rs_* object that did not have a numeric suffix.
The new helper function properly addresses cases like this.

Change-Id: If9c933a885bf6a9063b7edec3f0873e1b144188d
SEmbedInfo.cpp
SGlobalInfoPass.cpp
SInvokeHelperPass.cpp
9503a5a087fc6021813d6b3ae5f22acffdd3d6b1 21-May-2015 Pirama Arumuga Nainar <pirama@google.com> Add missing functions to RenderScript whitelist

bug 20894432

Some functions can be present in our compiled module because they
are absent from vendor-specific RS runtime libraries. These functions
need to be added to our whitelist so bcc doesn't report them as errors.

Change-Id: I98e8bbac9f111f81fcf5cf99a859feebc708e309
SStubsWhiteList.cpp
e57fde54a4145a85439545f79bd8747682f86ded 15-May-2015 Pirama Arumuga Nainar <pirama@google.com> Merge "Update libbcc for rebase to LLVM r235153"
98137cca7eebca946b869b010fef2821c9bf4971 06-May-2015 Pirama Arumuga Nainar <pirama@google.com> Update libbcc for rebase to LLVM r235153

Some changes related to GEP may impact us in the future:
- GEP constructors take an additional argument - the pointee type of the
resulting pointer. Update bitcode readers accordingly. They take
nullptr for now. This behavior should be retained at least for 3.x.
- Likewise, CreateStructGEP and CreateConstInBoundsGEP2_32 need the
pointee type argument. Passing nullptr for the extra argument for
now. According to commit message in r233938, passing nullptr may not
work in the future. Unlike the BitcodeReaders, we can pass the right
pointee type here. b/20886457 is created to track this issue.

Change-Id: I2450da1c36470fb9defd387d74360480c3e4bd2f
SForEachExpand.cpp
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
ndroid.mk
SCompilerDriver.cpp
SGlobalInfoPass.cpp
SScript.cpp
e1c7d298e3e38ffff294ce57c37ab43827a67ee5 15-Apr-2015 Stephen Hines <srhines@google.com> Make better use of getStringOperand() for MetadataExtractor.

This change also cleans up some of the code from a prior rebase.
It also captures two additional broken metadata cases (from corrupt
object slot and/or pragma metadata).

Change-Id: I61e161d2b0e211349683e36160d564493d802a12
SEmbedInfo.cpp
SForEachExpand.cpp
SScriptGroupFusion.cpp
65fb05fec8ddb25b4e32dbb2e1fabda771749fb7 15-Apr-2015 Yang Ni <yangni@google.com> Merge "Embed a real chesksum in script group .so"
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
ndroid.mk
SX86CallConvPass.cpp
0a3df6528dfba4f417582d51b52f34946dee3f3f 10-Apr-2015 Jean-Luc Brouillet <jeanluc@google.com> Merge "Remove obsolete entry points."
a8adba16f2d9c91568598b0244840a2a1056b10a 09-Apr-2015 Jean-Luc Brouillet <jeanluc@google.com> Remove obsolete entry points.

Change-Id: I79c9f94dc4d5e8f498222b3d5a490f0ba4b63ba3
SStubsWhiteList.cpp
186d2f34573eb20de197d8eb8e08bcadd031a9bd 07-Apr-2015 Yang Ni <yangni@google.com> Embed a real chesksum in script group .so

Change-Id: Icf2f37867692f94e344a292fa15f8b85e0fc30a5
SCompilerDriver.cpp
6a91ad088cd8499ef52eb12ef47cf968c8035e59 08-Apr-2015 Jean-Luc Brouillet <jeanluc@google.com> Remove the rs_path APIs from the white list.

CL/141547 and CL/144668 removed rs_path but had not touched this file.

Change-Id: Ic5d6324fa4d1377728bad7e1f89fde2eb7962847
SStubsWhiteList.cpp
354d1c132ad7e1ff6fdb0da95443245848a0601f 04-Apr-2015 Stephen Hines <srhines@google.com> Fix TBAA by using an additional distinct node for swapping.

Bug: 20069947

We now create a distinct TBAA root node, so that we can easily swap the rest
of the RenderScript TBAA subtree into the simple C/C++ TBAA tree. This change
also reenables TBAA for RenderScript, which was disabled during the most recent
LLVM rebase. RAUW is only applicable to ReplaceableMetadata, which general
MDNodes (like those constructed for TBAA) are not. Fortunately,
replaceOperandWith() can be used for MDNodes with existing operands, which is
why we need to add an additional layer to the hierarchy.

Change-Id: I9f0def0eb109099f12e5292bc1f3a6deafd4aad9
SForEachExpand.cpp
1bd9f627fa0affb457507e86b0b6684c695fe726 18-Mar-2015 Stephen Hines <srhines@google.com> Update libbcc for LLVM rebase to r230699.

Change-Id: If6717d2df5cc74e7daa493a4be7ac891f8e4928f
SForEachExpand.cpp
be42b8a2ef3e5bb7603b974f32dc25caba1bc716 30-Mar-2015 Tim Murray <timmurray@google.com> Merge "Add bitcast to invoke helper pass."
4100e8e25a51279b7586f5678a141fd85e33413f 30-Mar-2015 Tim Murray <timmurray@google.com> Add bitcast to invoke helper pass.

Change-Id: I53ddd68d62f09f83832d844d64e7d3da196863f5
SInvokeHelperPass.cpp
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
ndroid.mk
SForEachExpand.cpp
SInvariant.cpp
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
ndroid.mk
SCompilerDriver.cpp
SInfo.cpp
SInfoExtractor.cpp
SInfoReader.cpp
SInfoWriter.cpp
SScript.cpp
e44a3525b9703739534c3b62d7d1af4c95649a38 13-Mar-2015 David Gross <dgross@google.com> Expect RsExpandKernelDriverInfo not RsExpandKernelParams.

Which is to say: Retire RsExpandKernelParams and expect RsExpandKernelDriverInfo
to be passed to kernel wrapper functions instead.

Requires related change in frameworks/rs.

Also add kernel input count assertion.

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

b/19098612

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
SCompilerDriver.cpp
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
ndroid.mk
SCompilerDriver.cpp
SMetadata.cpp
SScriptGroupFusion.cpp
3b43c366c17620e35c6a4395a13b41ca3e977596 10-Mar-2015 David Gross <dgross@google.com> Merge "Backend support for new special kernel params ctxt and z."
33cda5cf335afc6aa2dbe02062bc9e6649e1f87c 30-Jan-2015 David Gross <dgross@google.com> Backend support for new special kernel params ctxt and z.

Also:
- Modify bcinfo dump to show signature metadata in hex instead of dec.
- Teach LLVM pass manager about (existing) "foreachexp" pass.
- Create MetadataSignatureBitval symbolic names for use by libbcc and slang.

Bug: 18964628

Change-Id: I1737ee0476b2005ec87f30473bbfa35aed5ded38
SForEachExpand.cpp
SScriptGroupFusion.cpp
b9cf06e4bc592ce8bffd1376f97e358e6a671f6a 04-Mar-2015 Pirama Arumuga Nainar <pirama@google.com> Merge "Add a -build-checksum flag to bcc"
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
SCompilerDriver.cpp
SEmbedInfo.cpp
f27f126fd25b9be38753f911e732e668384d969c 23-Feb-2015 Narayan Kamath <narayan@google.com> Track removal of refcounts from FileMap.

Use delete instead of release.

Change-Id: Id8c514a6f0196fdb19fe2bcececcc26519a18c9d
SInfoReader.cpp
e7ba6d07e58252590a00ce929941a1699de59e59 18-Feb-2015 Pirama Arumuga Nainar <pirama@google.com> Add exp2f, sqrtf, fabsf to whitelist

bug 19425238

LLVM constant folding introduces call to unmangled math functions. For
example, pow(2, x) becomes exp2(x). These functions must be added to
our whitelist.

Change-Id: I5dcadafbc821faf3e98d4a7d2106c082c8c09f63
SStubsWhiteList.cpp
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
ndroid.mk
SEmbedInfo.cpp
SIsThreadablePass.cpp
0b104d630427c15f4001a4e6e1a333734c3c2126 26-Jan-2015 Pirama Arumuga Nainar <pirama@google.com> Merge "Embed pragmas into object files"
a99ef646b808e99cf870a8663170a1162851a42f 23-Jan-2015 Pirama Arumuga Nainar <pirama@google.com> Embed pragmas into object files

bug 18322681

RSEmbedInfo pass didn't embed pragmas since it was only used in the
compatibility path where (most) pragmas don't apply. We need to embed
pragmas into .rs.info for the shared library path.

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

Change-Id: I696f3777a0981a875772d7340970a6cb49581cd7
SCompilerDriver.cpp
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
seperately.

Change-Id: Ia73ea917a126a5055ec97f13d90a5feaafd6a2f5
ndroid.mk
SCompilerDriver.cpp
SMetadata.cpp
SScriptGroupFusion.cpp
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
unmaintained).

Change-Id: Ie5cc152d93f5e75383f7c21a4523579cfae8823f
ndroid.mk
SCompilerDriver.cpp
SExecutable.cpp
c754d49ee856be620e041348a9f2b3d5610a5a26 09-Jan-2015 Stephen Hines <srhines@google.com> Add proper getAnalysisUsage() implementations to each Pass.

Change-Id: I2db9201dbfe5e8d705a873212f1f69f1fb7b5c20
SEmbedInfo.cpp
SForEachExpand.cpp
SInvokeHelperPass.cpp
SScreenFunctionsPass.cpp
50f5eb4b27ce6dd2a02cf389ac2acfa95c6939f1 10-Dec-2014 Tim Murray <timmurray@google.com> Enable autovectorization.

Change-Id: Ic35548c3875e5a078e46b594aae7accee79e47b6
SForEachExpand.cpp
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
SScreenFunctionsPass.cpp
SStubsWhiteList.cpp
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
ndroid.mk
SScreenFunctionsPass.cpp
SStubsWhiteList.cpp
SStubsWhiteList.h
enerate-whitelist.sh
579361346abc6696c805e3904a18178ebce4e4a3 26-Nov-2014 Stephen Hines <srhines@google.com> Update libbcc for LLVM rebase to r222494.

Change-Id: Idebd60a98bbe62007086386e5497d1df7d901e3d
SInvokeHelperPass.cpp
SScript.cpp
bb73b74a9f6ad26c2ab30557bfe6916a44ed75f6 04-Nov-2014 Tim Murray <timmurray@google.com> Modify RSForEachExpand to move casting of pointer types outside the inner loop.

This makes autovectorization work in some limited cases.

bug 18071147

Change-Id: If9f08760310b90f62e88dfce257575205b3cb5b2
SForEachExpand.cpp
b7bce7436876884dfd78ec41d147ddbe47e37cbd 04-Nov-2014 Tim Murray <timmurray@google.com> generate calls to rsSetObject inside .helper invoke functions

bug 18071147

Change-Id: I0ff00b3a86cd799cdb1eebcd1000b74070ee0cdf
ndroid.mk
SInvokeHelperPass.cpp
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
removed.

Change-Id: I121463df6309c377496cebea8cbb82bb49624ed1
ndroid.mk
SCompiler.cpp
429d94acbc64480d4f75233b66b4824cdc8b19c0 30-Oct-2014 Tim Murray <timmurray@google.com> Disable step opt for 12-byte structs on 64-bit.

bug 17663411

Change-Id: I21c67f95704e8aeb63f72bd371b1b5a5cc6e569d
(cherry picked from commit 4839c9acf4e935dab0b3de3fac0e315d00c3a369)
SForEachExpand.cpp
f1568f8f926cf8b194bf4c3197b28429b9905550 20-Jul-2014 Dan Albert <danalbert@google.com> Fix some broken debug statements and asserts.

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

Change-Id: Id2311cda59dd42c74b3ed54d3ff6cfd509012738
SCompiler.cpp
SCompilerDriver.cpp
SEmbedInfo.cpp
SExecutable.cpp
SForEachExpand.cpp
SInfo.cpp
SInfoExtractor.cpp
SInfoReader.cpp
SScript.cpp
35978e7a7e87b7147789ff3ca9c3a6bf7dd165b0 11-Aug-2014 Chris Wailes <chriswailes@google.com> Replace android::String8 with std::string in libbcc

Change-Id: Ic384d60f3e2af0ba02990c904212f77cb1493e90
SCompilerDriver.cpp
SExecutable.cpp
SInfo.cpp
5e7d876f8bae477a97606afee93066849a798844 26-Jul-2014 Chris Wailes <chriswailes@google.com> Replaced android::Vector with std::vector.

Change-Id: I9bcf36d088d423246312d97e2a87a05e90f6617d
SExecutable.cpp
SInfoExtractor.cpp
SInfoReader.cpp
5010f641d1df6bc3447646ca7ef837410fb9b3dc 26-Jul-2014 Chris Wailes <chriswailes@google.com> Remove the instep parameter from expanded kernels.

Change-Id: I059db548a57702c576963f6b17a002b2ee393cdb
SForEachExpand.cpp
e10b8641813c701159c6615faaa58dd1a9b31ce5 15-Jul-2014 Chris Wailes <chriswailes@google.com> Collapse the code paths for single- and multi-input kernels.

This patch removes the distinction between single- and multi-input kernels in
libbcc. The same code is now gerenated regardless of the number of inputs for
both old- and new-style kernels.

Change-Id: Id70a223ea5e3aa2b0b935b2b7f9af933339ae8a4
SForEachExpand.cpp
326d02a9f3cfe30caa21e5c2aecbd4c85112b363 01-Aug-2014 Chris Wailes <chriswailes@google.com> Fixes AArch64 struct calling convention issue.

Cherry-pick of c43e1ba9cf40277dd496fe503e777906d2755251

Change-Id: I9a760c1238ff8b30e0a29a2cd11a030b17b283e2
SForEachExpand.cpp
efcede6546a85d4b93088c99f330c8871ddd39a3 13-Aug-2014 Stephen Hines <srhines@google.com> Revert "Collapse the code paths for single- and multi-input kernels."

This reverts commit 4ca0fbf10c1b36f821dafd3dcf0c91d6329582dc.

Change-Id: Ib21cc25657ee738dc39ddda52d5ead9524cb4da9
SForEachExpand.cpp
4ca0fbf10c1b36f821dafd3dcf0c91d6329582dc 15-Jul-2014 Chris Wailes <chriswailes@google.com> Collapse the code paths for single- and multi-input kernels.

This patch removes the distinction between single- and multi-input kernels in
libbcc. The same code is now gerenated regardless of the number of inputs for
both old- and new-style kernels.

Change-Id: I77e4b155cc7ca1581b05bf901c70ae53a9ff0b12
SForEachExpand.cpp
3fc91521640692f844aece8b1743c4df702d1c66 25-Jul-2014 Stephen Hines <srhines@google.com> Merge "Re-do the layout of the RsForEachKernelStruct."
097ca14d8b6908d0e5b7f8f38011cad4fb94bc26 09-Jul-2014 Chris Wailes <chriswailes@google.com> Re-do the layout of the RsForEachKernelStruct.

This patch changes libbcc to reflect the new layout of RsForEachKernelStruct
as defined in frameworks/rs/cpu_ref/rsCpuCore.h. It also introduces some
macros to eliminate the use of magic numbers.

Change-Id: I7788ef754add44463b17a6b571c7cde6e73b9712
SForEachExpand.cpp
5f2e6b9bc70956fc30a9a6d1679f587e4a729884 08-Jul-2014 Jean-Luc Brouillet <jeanluc@google.com> Deprecate rs_fp_imprecise.

If rs_fp_imprecise is specified, issue a warning and
use rs_fp_relaxed instead.

Change-Id: I054fa32128bda60a6d22a0a6a590cd9f3575a2ca
SInfo.cpp
881cda4f5b793a1e7f7d33cf4a31efc3fdbba4fd 23-Jun-2014 Chris Wailes <chriswailes@google.com> Adds support for multi-input kernels to libbcc.

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
SForEachExpand.cpp
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
SCompilerDriver.cpp
SInfo.cpp
SInfoExtractor.cpp
SInfoReader.cpp
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
SCompilerDriver.cpp
SInfo.cpp
SInfoExtractor.cpp
SInfoReader.cpp
SInfoWriter.cpp
SScript.cpp
ca5135eb0f6aa12c28433f66249e218479e5d6dc 19-Jun-2014 Tim Murray <timmurray@google.com> Merge "Fix build break caused by missing ifdefs."
37dc23b9917dcb997ee144936b2b27d3881942eb 19-Jun-2014 Tim Murray <timmurray@google.com> Fix build break caused by missing ifdefs.

Change-Id: I29e8e1c58b9702873a2a4b932794720ee279492e
SInfoExtractor.cpp
SScript.cpp
fd3f8c64f5ff70660f9760dbc61064849905f1de 18-Jun-2014 Tim Murray <timmurray@google.com> Merge "Don't require libclcore_neon.bc on AArch64."
bdbff6e600b0d834e4770f65c7d2df93d7ef305c 13-Jun-2014 Chris Wailes <chriswailes@google.com> Simple cleanups in RSForEachExpand.cpp

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
SForEachExpand.cpp
a5b1343e0db3eaf41ced3d9978cd72b8cf4cda1f 14-Jun-2014 Tim Murray <timmurray@google.com> Don't require libclcore_neon.bc on AArch64.

Change-Id: Ieb4eea41f74917c201a07aa8b246816430fcac5c
SInfo.cpp
4f7fdd47da5135a508bdfca445347fae5e8898ba 28-May-2014 Tim Murray <timmurray@google.com> Update libbcc for ARM64.

Properly sets NEON/VFP on ARM64. Begins to remove cache from libbcc.

Change-Id: I66f50fa20d606c38d5e7af0a6fa8c6e73b2aff32
SInfoReader.cpp
373f5e7baf1567fa32f6a3033788641ab445a28c 28-May-2014 Tim Murray <timmurray@google.com> Fix foreach func vector resize issue.

Change-Id: Ie446319900558bbf5ecb30ee1b874c260197080b
SCompiler.cpp
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
SCompilerDriver.cpp
bde1a2599780d6eaebbc284976ceb690492f6abd 16-May-2014 Stephen Hines <srhines@google.com> Remove unnecessary inheritance for CompilerConfig, as we switch to offline bcc.

Change-Id: Id4a5be7b2b4627bfa7ef6279eb3b5b8e75915a7d
SCompilerDriver.cpp
1ae3fd6e2290fe1635bafe91a65e0e88e641b6fc 15-May-2014 Stephen Hines <srhines@google.com> Fix some minor issues picked up by valgrind.

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
SInfo.cpp
25eb586bb055ae07c7e82a2b1bdbd6936641580c 09-May-2014 Stephen Hines <srhines@google.com> Switch RSForEachExpandPass to use MetadataExtractor.

Change-Id: I442054e7aa2329b369f578052bd41c7a973cc822
SCompiler.cpp
SForEachExpand.cpp
1253c195dd7911ad91bd66790f03e4c2f8888ad2 09-May-2014 Stephen Hines <srhines@google.com> Switch to MetadataExtractor path.

Change-Id: Iabef9abb1c770ffe1e753cfd2fac808f60c19d8a
SCompiler.cpp
SEmbedInfo.cpp
2d201e547f1d32140ff8ead1818c169f441cf5fb 09-May-2014 Stephen Hines <srhines@google.com> Refactor RSEmbedInfo pass.

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
SEmbedInfo.cpp
1c4d30c707afbc2068b966d2ae6caefbb101f8ff 10-May-2014 Stephen Hines <srhines@google.com> ARCH_ARM_HAVE_NEON should be consistent for aarch64 targets.

Change-Id: I54979e9215f2a2cbc98641a841a24e32beb417b4
SInfo.cpp
ce73d6f365394883dd23b1da97135e4002e784e0 06-May-2014 Stephen Hines <srhines@google.com> Remove Makefile->Header code generation from libbcc.

These variables/defines are not often used and they complicate the use of
target information in other Android libraries.

Change-Id: I93dc71e17ae8ece1be46a3a609639ec8380cdaf9
ndroid.mk
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
SCompilerDriver.cpp
c2074caf075818abb6d3689ad924ca09f4a5ba1f 09-Apr-2014 Tim Murray <timmurray@google.com> Update libbcc for 64-bit support.

Change-Id: I369a82eb6730a33c46b6700408952fe34020ca51
ndroid.mk
SInfo.cpp
70a7671e4e107ad52aba0629f9b29ff01941c496 17-Apr-2014 Tim Murray <timmurray@google.com> Merge "Change 64bit library path from /system/lib/ to /system/lib64"
36e642c0a89cc6f3a95dadfe1fc2b890c0758b15 04-Apr-2014 WeiTang <wei.a.tang@intel.com> Change 64bit library path from /system/lib/ to /system/lib64

Change-Id: Ie2ec537bb71ca6573588bcaf893d871ba9b5c051
SInfo.cpp
SScript.cpp
c6e6ee4392390c0888f808220adf33334e1f64a4 07-Apr-2014 Tim Murray <timmurray@google.com> Add DISABLE_LLVM_DEVICE_BUILDS to libbcc.

Change-Id: Iaad7b2ea8eea6c89c1c1a3d0e145bbb7bf60c6b9
ndroid.mk
8f7345d68d2595ddf3d7c2aae01a29d0530afb92 22-Mar-2014 Colin Cross <ccross@android.com> libbcc: disable more modules for arm64

Disable building libbccSupport and libbccRenderscript for 64-bit

Change-Id: Ied29b4eb129f42b1d3ad0a6d71a683d28b3e14be
ndroid.mk
3cd3ec8f9d30d219cecd30ce8b221241a79a74d9 18-Mar-2014 Jean-Luc Brouillet <jeanluc@google.com> Fix incorrect memcmp in RSInfoReader.

modified: RSInfoReader.cpp

Change-Id: I669cfaeb0eb5354402410b3742f590cfc593d0ba
SInfoReader.cpp
14588cf0babf4596f1bcf4ea05ddd2ceb458a916 19-Feb-2014 Logan Chien <logan.chien@mediatek.com> Fix TBAA: Set path tag metadata to instruction.

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
SForEachExpand.cpp
9c5263e00d89dfdd25d3a1706eb319e8529ec604 12-Feb-2014 Stephen Hines <srhines@google.com> Provide a flag to disable TBAA for RS (and disable TBAA temporarily).

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
SForEachExpand.cpp
045558bd401d0af58a0b57594d75d45ff3035dc9 18-Feb-2014 Stephen Hines <srhines@google.com> Fix disabling global merge option with standalone bcc.

mConfig will be set before entering setConfig so
EnableGlobalMerge needs to be refreshed every time.

Change-Id: Ia51e706e717636ea7a87f625256d21bb050da6db
SCompilerDriver.cpp
4face7bf943d93ee91ca94f05df2034550f318fd 03-Oct-2013 Stephen Hines <srhines@google.com> resolved conflicts for merge of 8d972a6f to klp-dev-plus-aosp

Change-Id: I7d1f460a1b6de08b11b430f90c7bf2534e5cca31
8d972a6f7975f3b43a1551eb5619f008561a5029 03-Oct-2013 Stephen Hines <srhines@google.com> resolved conflicts for merge of 4293770c to stage-aosp-master
77e2f0f3756897029811726095c0be16e2a4f397 15-Aug-2013 Jun Tian <jun.j.tian@intel.com> DO NOT MERGE: Refactor the libbcc runtime for x86 platform

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 <yong.a.chen@intel.com>
untime/Android.mk
untime/arch/dot_length.c
untime/arch/generic.c
untime/arch/sqrt.c
untime/arch/x86_clamp.ll
untime/arch/x86_dot_length.ll
untime/arch/x86_generic.c
untime/arch/x86_math.ll
untime/arch/x86_sse2.ll
untime/arch/x86_sse3.ll
untime/build_bc_lib.mk
untime/rs_cl.c
untime/rs_sample.c
5aa70e1912813e173171b7d8540eb4a896f86b42 03-Oct-2013 Stephen Hines <srhines@google.com> Remove references/use of ARCH_X86_HAVE_*.

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
SInfo.cpp
SScript.cpp
untime/Android.mk
untime/arch/generic.c
untime/arch/x86_sse2.ll
untime/arch/x86_sse3.ll
untime/build_bc_lib.mk
untime/rs_cl.c
acf9c9eeb5a07535dbed5b272c7f22cc1b050a40 27-Sep-2013 Stephen Hines <srhines@google.com> resolved conflicts for merge of b9a4701b to klp-dev

Change-Id: I9f7924c489d36913e130fd5e7617e3a96e65f1a1
c9cdca6e9d7c0e4973c7c5f4fcbf1483b06c674d 26-Sep-2013 Stephen Hines <srhines@google.com> Fix windows line ending bug.

http://code.google.com/p/android/issues/detail?id=60327

Change-Id: I578bab2f41347ac2e43b7d4dc1f206c5f91aeae5
SCompilerDriver.cpp
3d740780dfc4c446d89b9d130d739b4aa90c8298 12-Jul-2013 Stephen Hines <srhines@google.com> DO NOT MERGE - Only support EnableGlobalMerge on ARM architectures.

Change-Id: I5c4c236c306e120c5aa24fbc91815cc27d7aab0f

Conflicts:
include/bcc/Renderscript/RSCompilerDriver.h
SCompilerDriver.cpp
957c9bcff7f9811cd9cb62211c888338228f8a15 30-Apr-2013 Stephen Hines <srhines@google.com> DO NOT MERGE - Provide a way to disable LLVM's global merge optimization.

Change-Id: I92dff2a208c821722f057dd8c26bd12a1cb5a794

Conflicts:
include/bcc/Renderscript/RSCompilerDriver.h
lib/Renderscript/RSCompilerDriver.cpp
SCompilerDriver.cpp
b441caf2915b86a93a0e195290980416da9e8307 15-Aug-2013 Jun Tian <jun.j.tian@intel.com> DO NOT MERGE: Refactor the libbcc runtime for x86 platform

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 <yong.a.chen@intel.com>
untime/Android.mk
untime/arch/dot_length.c
untime/arch/generic.c
untime/arch/sqrt.c
untime/arch/x86_clamp.ll
untime/arch/x86_dot_length.ll
untime/arch/x86_generic.c
untime/arch/x86_math.ll
untime/arch/x86_sse2.ll
untime/arch/x86_sse3.ll
untime/build_bc_lib.mk
untime/rs_cl.c
untime/rs_sample.c
0784365a38fd5a9c08dd484f9ba549328d4dff97 16-Aug-2013 Stephen Hines <srhines@google.com> resolved conflicts for merge of 8607272a to klp-dev

Change-Id: Ic9b996432bfcd228ae8a45f75bc9c564a3a66a31
b10c3a7d91556ef31ce91ef018fee4722b783960 08-Aug-2013 Stephen Hines <srhines@google.com> Update libbcc for LLVM merge to r187914.

Switch over to new llvm::sys::path implementation.
Remove unused Source::CreateFromFd().
F_Binary is now in llvm::sys::fs.

Change-Id: Ib0ebb8a1d8ea04e5cf36c8082cf31dab2e144554
SCompilerDriver.cpp
d7a95265621a788a6de8c0c3a27a588d7c466f79 09-Aug-2013 Stephen Hines <srhines@google.com> Remove locking code on Windows builds.

Change-Id: Ia5656cf4feec3206e73ecc3e3b504146b0c66707
SCompilerDriver.cpp
c1567c07c7ffd7371b295964177743488bde008a 07-Aug-2013 Stephen Hines <srhines@google.com> Merge "Decode RenderScript kernel signatures using bcinfo::MetadataExtractor."
1a36fcaac9255684fec371868c80ecab0b68c8c2 07-Aug-2013 Stephen Hines <srhines@google.com> am a08768d4: am 48cd7454: Fix Windows build issues for libbcc.

* commit 'a08768d46fa5e3087d0fbd288366c53495ee2773':
Fix Windows build issues for libbcc.
d88177580db4ddedf680854c51db333c97eabc59 03-Aug-2013 Stephen Hines <srhines@google.com> Decode RenderScript kernel signatures using bcinfo::MetadataExtractor.

Change-Id: I9472d0c36e23a1e0d583fc823c986ee7a1bb05ed
SForEachExpand.cpp
18a38a3fc6fad8355891b771dd3c6537fa8699ec 27-Jul-2013 Tobias Grosser <grosser@google.com> Annotate allocations with Renderscript TBAA metadata

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
SForEachExpand.cpp
d06574b6d2114b0c00fdf9e3fd292211031571b1 01-Aug-2013 Stephen Hines <srhines@google.com> Use BUILD instead of HOST for bcc_strip_attr.

Change-Id: Ifeea47994e36d29f690bd77af812500f7e023db1
untime/build_bc_lib.mk
48cd745480738c026312931877ecb8ebecb1c64e 31-Jul-2013 Stephen Hines <srhines@google.com> Fix Windows build issues for libbcc.

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
SInfo.cpp
6a5fa14074200a18824defa0bffc64e5f2487152 24-Jul-2013 Tobias Grosser <grosser@google.com> Remove beforeExecuteLTOPasses callback

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
SCompiler.cpp
c06cd06078a8c866d5cecbf897326092b55a8955 12-Jul-2013 Stephen Hines <srhines@google.com> Only support EnableGlobalMerge on ARM architectures.

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

Change-Id: I92dff2a208c821722f057dd8c26bd12a1cb5a794
SCompilerDriver.cpp
acde6013e9c448547e59eed04afd2adbd9681a3a 02-Jul-2013 Tobias Grosser <grosser@google.com> ForEach: Not all kernels are expanded

Bug: 9674197

There may be some graphics root functions that are not expanded
and can consequently not be marked as internal linkage.

Change-Id: I643a2c82b91ba94fbd30598402698173ca2307ab
SForEachExpand.cpp
cd5b657c39a348bd7652a19c5be5035e9df44a42 02-Jul-2013 Tobias Grosser <grosser@google.com> ForEach: Set internal linkage for kernel functions

The expanded function is the external visible interface. Setting internal
linkage will influence the cost function of the inliner. Specifically, the
inliner knowns that no external users will use the unexpanded kernel function,
which means it will inline it and remove the original function.

This gives a 22% speedup on the colorcube 3D, 19% on convolve3x3
as well as minor speedups on fisheye.

Change-Id: I9770c92d24dfc7978145e694d1a35829c5432264
SForEachExpand.cpp
4102bec56151fb5d9c962fb298412f34a6eacaa8 27-Jun-2013 Tobias Grosser <grosser@google.com> ForEach: No IntToPtr casts for ptr kernel inputs

Instead we replace the calculation of the pointer offsets with an explicit
getElementPointer instruction.

Change-Id: I95bedfa1b17b839a122548f4d855d6ec40c7467b
SForEachExpand.cpp
ae937ec9658c219a38d9d631d2569f19e21b50c0 27-Jun-2013 Tobias Grosser <grosser@google.com> ForEach: No IntToPtr casts for byvalue kernel inputs

Instead we replace the calculation of the pointer offsets with an explicit
getElementPointer instruction.

Change-Id: I4e31fe42382cd0f37ed582d62795555482186d96
SForEachExpand.cpp
02f3cd69a4103f91a51a2f988f2179c885d734b5 27-Jun-2013 Tobias Grosser <grosser@google.com> ForEach: No IntToPtr casts for ptr outputs

Instead we replace the calculation of the pointer offsets with an explicit
getElementPointer instruction.

Change-Id: I350cacd132d97dc620fe3c1c3ca89d1028677965
SForEachExpand.cpp
7b6629024395bf085ca64fcd5c69d2ded95e8d18 22-Jun-2013 Tobias Grosser <grosser@google.com> ForEach: No IntToPtr casts for byvalue outputs

Instead we replace the calculation of the pointer offsets with
an explicit getElementPointer instruction.

Change-Id: I814a18d4d48e3e0bd13ca93697ad049fa0ed8c4c
SForEachExpand.cpp
27fb7edfd3f53f52fba6ee81267c02f7896198a3 22-Jun-2013 Tobias Grosser <grosser@google.com> Dump LLVM-IR before generating target code

Dumping the IR earlier prevents target specific passes to modify
the IR before it is dumped.

Change-Id: I8a61efb7140b0c2025381ea1ad1f4cf3522ec870
SCompilerDriver.cpp
e87a0518647d1f9c5249d6990c67737e0fb579e9 26-Jun-2013 Tobias Grosser <grosser@google.com> ForEachExpand: Use consistently unsigned integers in loop

Previously we used an signed compare in the loop exit condition, but claimed
the absence of unsigned integer wrapping. We now use an unsigned comparison
reflecting that our integers are interpreted as unsigned values.

Change-Id: I3d77402e93dac625b3688078d5a1a826a32a9dac
SForEachExpand.cpp
e4a73f68e1b338881adf682c458e0b4b92ecd91e 22-Jun-2013 Tobias Grosser <grosser@google.com> ForEachExpand: Construct loop in a separate function

When expanding the loading/unloading of parameter values as well as the
creation of the implicit loop where mangled together. We now separate
them. This reduces code duplication and makes the difference between
the two ways of expanding a kernel more clear.

We also add some documentation and a FIXME that highlights the
surprising use of NUW during code generation.

The only functional change included here is that we switch to using PHI-nodes
instead of loading/storing the loop iterator to memory.

Change-Id: I8c28f3054eb00a73b8b754057625e52140c04405
SForEachExpand.cpp
806075b3a54af826fea78490fb213d8a0784138e 21-Jun-2013 Tobias Grosser <grosser@google.com> ForEachExpand: Create a complete function

In createEmptyExpandedFunction() we now create a complete function containing a
single basic block that directly returns. The advantage of creating a complete
function is that it allows us to maintain valid LLVM-IR throughout the whole
expansion process. This makes testing easier as commenting out later code does
not yield invalid LLVM-IR.

No functional change intended.

Change-Id: I0af12ec491f879be127461ff2a5a2c38543c8532
SForEachExpand.cpp
802f65931852d925bbe2e478bafe422b4002e7c4 20-Jun-2013 Tobias Grosser <grosser@google.com> ForEachExpand: Name arguments at the time the ForEachStub is created

This also removes code duplication.

No functional change intended.

Change-Id: Ie01d0578a70219909cac3c77e3b184589c371845
SForEachExpand.cpp
357b58691936bef425bd315c13a2d8019d7e9c7e 20-Jun-2013 Tobias Grosser <grosser@google.com> ForEachExpand: Factor out creation of ForEachStub function

This also removes code duplication.

No functional change intended.

Change-Id: I60f2d1d7017db33303ae1bffaa54f578a2276585
SForEachExpand.cpp
8ae4607d2dc5bc655d0c9225565d36ce2ebfc798 20-Jun-2013 Tobias Grosser <grosser@google.com> ForEachExpand: Create ForEachStub type in separate function

This also removes code duplication.

No functional change intended.

Change-Id: If00fced7db10c37306879fa633aa4453e84d98f0
SForEachExpand.cpp
d0304d59215f8b065332facf6db11d2aec0eb97c 20-Jun-2013 Stephen Hines <srhines@google.com> Merge "Switch to using full pathnames for cached information."
7b980e1717f3cf418f7bc4e40597004bc1139b8b 20-Jun-2013 Tobias Grosser <grosser@google.com> bcc: Add option -emit-llvm

Change-Id: I98470c6573b216518f77d338f4659d5b9fbcc3d3
SCompilerDriver.cpp
5eea973c91f1d202c6ecc4f753aa65893a5773a6 20-Jun-2013 Stephen Hines <srhines@google.com> Switch to using full pathnames for cached information.

Bug: 7342767
Change-Id: I8997f4d2834fd607bcfc3bb7db81d8e90b4e4f37
SCompilerDriver.cpp
88f8c52abea50f411c3774c935a6a1e04d17c182 13-Jun-2013 Stephen Hines <srhines@google.com> Update libbcc for LLVM merge to r183849.

Remove unused param to readBytes().
Path.h -> PathV1.h
Remove ability to load/run files from bcc tool.

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

Bug: 7342767

Change-Id: Ia6000d6c3557280126c6bb7f945c922528adeedc
SCompilerDriver.cpp
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
SCompilerDriver.cpp
SExecutable.cpp
SInfo.cpp
bc7576df5896d4c97034ca1427c240af19d12481 30-May-2013 Stephen Hines <srhines@google.com> Move RS runtime to frameworks/rs.

Bug: 7342767
Change-Id: I2c5e75a7324d9b7c1a89c81f377bf0718e96b463
ndroid.mk
untime/Android.mk
untime/arch/clamp.c
untime/arch/dot_length.c
untime/arch/generic.c
untime/arch/neon.ll
untime/arch/sqrt.c
untime/arch/x86_clamp.ll
untime/arch/x86_dot_length.ll
untime/arch/x86_generic.c
untime/arch/x86_math.ll
untime/build_bc_lib.mk
untime/build_clcore.sh
untime/convert.ll
untime/math.ll
untime/matrix.ll
untime/rsClamp.ll
untime/rs_allocation.c
untime/rs_cl.c
untime/rs_core.c
untime/rs_element.c
untime/rs_matrix.c
untime/rs_mesh.c
untime/rs_program.c
untime/rs_sample.c
untime/rs_sampler.c
untime/rs_structs.h
1435ae32704fd7e9cfbabca07c274e636e872210 29-May-2013 Jason Sams <jsams@google.com> Implement vector clamp for all types.

Change-Id: I4a1612d691a3f393a3d0e171aec9d8efb8c5ab8e
untime/Android.mk
untime/arch/clamp.c
untime/arch/generic.c
untime/arch/neon.ll
untime/build_bc_lib.mk
b81d697ec617be24494b622a3532f1c465264415 22-May-2013 Nick Kralevich <nnk@google.com> Renderscript: Don't call property_get on host

Accessing system properties only makes sense on the target, not
on the host.

This change is needed to remove host support for properties.

Change-Id: I41a34bdeae6a1e9a1481f2ecc80e69ead3bd0556
SCompilerDriver.cpp
SInfo.cpp
1d96bc8f1612656f1abe9a48feba4a9f819de419 17-May-2013 Stephen Hines <srhines@google.com> Take absolute value of value for fast_length().

Bug: 9018865
Change-Id: I46b23e0df4ae0b1e5c238f353d0b6de539887e9b
untime/rs_cl.c
fb6e5cb2606552ace0da9f0a47c8bfbf2707d53a 11-May-2013 Tim Murray <timmurray@google.com> am 3128f6cd: am c89f78b4: Remove extraneous logging.

* commit '3128f6cdffb4205de7897aa8fb8b6a768aaac376':
Remove extraneous logging.
c89f78b40e7823eb2d08e7129794c9f6f1992c08 09-May-2013 Tim Murray <timmurray@google.com> Remove extraneous logging.

bug 8888887

Change-Id: Ief798e6e139fd4971ce53f090004478f4e036a03
SCompilerDriver.cpp
SExecutable.cpp
cba9daefa053c8231971613d250832c298fbaaed 02-May-2013 Stephen Hines <srhines@google.com> am cb64b9aa: am b837262a: Disable NEON on cortex-a15 temporarily.

* commit 'cb64b9aa5a72fe1041ec0da6fff2a7a15ca67331':
Disable NEON on cortex-a15 temporarily.
b837262a9648128ed708d50c27b0d501baf90cfd 02-May-2013 Stephen Hines <srhines@google.com> Disable NEON on cortex-a15 temporarily.

Bug: 8530053
Change-Id: I4a13638fbdbefe5bb8063981a7bc3b08c972edbc
untime/Android.mk
39cbda33297e33ae172b3cad28596c2ee497412a 30-Apr-2013 Jason Sams <jsams@google.com> cleanup rsSample

Change-Id: I8147696b993dd90b6ab07c6c12dd421870092c51
untime/rs_sample.c
2a8abe7dc51c247f8abda8bd818c14d4d570d1ac 23-Apr-2013 Stephen Hines <srhines@google.com> Fix issues with 3D rs(Set|Get)ElementAt function.

Bug: 8680826
Change-Id: Ica91b4c9727f2424a29ea5b1f91dbc08d25f4873
untime/rs_allocation.c
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
SCompilerDriver.cpp
8ee82d4c1dded958f27f0dc51ddeceda0c895d99 17-Apr-2013 Stephen Hines <srhines@google.com> Build debug version version of runtime (libclcore_debug.bc).

Bug: 7343201
Change-Id: I9ca9acd7b0e23762d28de3af0aa60d4a6d75e5dd
SInfo.cpp
SInfoExtractor.cpp
untime/Android.mk
untime/build_bc_lib.mk
untime/rs_allocation.c
8be0c88be431c96fca1fa8488067fd7c458b124e 06-Apr-2013 Jason Sams <jsams@google.com> Implement YUV functions

Provide special functions for retrieving U and V components


Change-Id: Ifa891f598079071c223d6ef54885721d931c5f46
untime/rs_allocation.c
bd447fb85869020951ee5724898be5c6b1c8cf54 03-Apr-2013 Jason Sams <jsams@google.com> Merge "Add support for debug get/set element" into jb-mr2-dev
43a5b59bc8b5bf677c4f2cbc174e48b8a33dc9af 03-Apr-2013 Jason Sams <jsams@google.com> Add support for debug get/set element

This fixes the per ABI issues of the previous
debug work.

Fix debug for vector types.

Change-Id: I884bff978a1000f2e93dbfa8bc7d3d99afd24df4
untime/rs_allocation.c
untime/rs_core.c
1d48ddc4f61fc80da96582c6a259a3ee024fecf4 03-Apr-2013 Stephen Hines <srhines@google.com> Update field offsets due to DebugHelper.

Change-Id: I90d804cc59b64cbb630011e012f42aa49cc4a2cd
untime/rs_structs.h
4b88f340840ad4e10f78ef51bef8ef69408ac73d 02-Apr-2013 Jason Sams <jsams@google.com> Merge "overhaul rs_sampler" into jb-mr2-dev
61c5f57b97d7306e36ec9f580f8d72562a791763 28-Mar-2013 Jason Sams <jsams@google.com> overhaul rs_sampler

Change-Id: I8c446e8266fb4200d6afe3f9765d58496bfa2162
untime/rs_sample.c
1531487e04ef5f61949bea7a3e2977279b38b0c2 27-Mar-2013 Tim Murray <timmurray@google.com> Revert "rsSampler work"

This reverts commit ee883164d3fec165134b17e52c75cc90f3980269.
untime/rs_sample.c
untime/rs_structs.h
ee883164d3fec165134b17e52c75cc90f3980269 22-Mar-2013 Jason Sams <jsams@google.com> rsSampler work

Change-Id: Idc16805320ea5af631cb5fa60e7ad9f10ef05e1a
untime/rs_sample.c
untime/rs_structs.h
826be465ebb0c786d83c61ddeec012fca88a49a7 20-Mar-2013 Jason Sams <jsams@google.com> Merge "Fix copy and paste error in matrix function names." into jb-mr2-dev
e47a15d07705d60ee14eb2cf116945c9b78dca3e 20-Mar-2013 Jason Sams <jsams@google.com> Fix copy and paste error in matrix function names.

bug 8426471

Change-Id: I20062263ae999fb660fa6e742d47d05724afb996
untime/rs_matrix.c
f424bce72e64899fe74cf73f10f0f4e105547549 19-Mar-2013 Stephen Hines <srhines@google.com> Move abs/clz into proper shared code space.

Previously these were only available to our generic implementation.
Machine-specific implementations would be missing these functions (which
can result in missing link-time dependencies).

Change-Id: I606848427d55a50d0ec6022007fa4ce2c88adc31
untime/arch/generic.c
untime/rs_cl.c
6231e390c0e174f7797b6bf09159e1a8d3cd864d 18-Mar-2013 Stephen Hines <srhines@google.com> Fix missing BCC_STRIP_ATTR dependency.

Change-Id: I602c2eb2df3d0b1013ae31c427ef35d0c6c25c6b
untime/build_bc_lib.mk
2187acafbd83fbf29f5b1d436a5a633dd35a628f 18-Mar-2013 Stephen Hines <srhines@google.com> Simpler build rules for running bcc_strip_attr.

Bug: 8383531
Change-Id: I0ae6415e9a2ba16155916df95a2bb07bf4067081
untime/build_bc_lib.mk
5c3e8c021224e5000c20988f668059dcb7539e74 18-Mar-2013 Stephen Hines <srhines@google.com> Merge "Revert "Build rules for running bcc_strip_attr."" into jb-mr2-dev
1a361253d8f2fa4cd271d8ccd5dfe5a11c7edbbe 18-Mar-2013 Stephen Hines <srhines@google.com> Revert "Build rules for running bcc_strip_attr."

This reverts commit 2c2a59e44baf98ba15ff7f85a67ab1747ae957f7

Change-Id: I4f9f96a58327c46d38bf6a956560555e9a38a5ce
untime/build_bc_lib.mk
2cb9d2c8f43c61ecfacc3f85a56cd558dde7514c 18-Mar-2013 Stephen Hines <srhines@google.com> Merge "Build rules for running bcc_strip_attr." into jb-mr2-dev
6ac532e01b532653ee2c89142109406b08ca2b39 18-Mar-2013 Tim Murray <timmurray@google.com> Remove __attribute((overloadable)) from rsUnpackColor8888.

Change-Id: I12e8af774a0a61bd8571c31406894779a443c300
untime/rs_core.c
2c2a59e44baf98ba15ff7f85a67ab1747ae957f7 15-Mar-2013 Stephen Hines <srhines@google.com> Build rules for running bcc_strip_attr.

Bug: 8383531
Change-Id: I15ffbb17e800efeadaac2047c182632c48ca194a
untime/build_bc_lib.mk
4d93e8dec63500a62ea72ea1d1c47a7c7ea5f358 15-Mar-2013 Jason Sams <jsams@google.com> Migrate atomics to .bc

Change-Id: I7792c2dad9d308b8fc5333d272a784277db8cb09
untime/rs_core.c
21f837b6d745abb375909b26020719bafd522c8c 12-Mar-2013 Jason Sams <jsams@google.com> Math lib opts

Change-Id: I77cfc17633a2a69a4445aa073d16dfd3b7c38876
untime/rs_cl.c
untime/rs_matrix.c
d9bf9445c59d57d6da66ef6f50bce667c10522d8 12-Mar-2013 Stephen Hines <srhines@google.com> Merge "Move generic function calls to rs_matrix.c." into jb-mr2-dev
450a8849b5675194b79719ef05cab92fb6ae38d2 12-Mar-2013 Stephen Hines <srhines@google.com> Move generic function calls to rs_matrix.c.

Change-Id: I9aa7c347f9d2c59a22e575ce04e1ea9e59067f2b
untime/arch/generic.c
untime/arch/neon.ll
untime/rs_matrix.c
3469783d5fc3a5594da8d10c42540dd5f4455143 12-Mar-2013 Jason Sams <jsams@google.com> Clamp rsPackPixel

Change-Id: Ideaf339c51677780e6267e4ac1b8de902fc1d353

Conflicts:
lib/Renderscript/runtime/arch/neon.ll
untime/Android.mk
untime/arch/generic.c
untime/arch/neon.ll
untime/pixel_packing.ll
9112850375c24d3ffb8ced3835f878b08c1297ab 12-Mar-2013 Jason Sams <jsams@google.com> Move simple matrix ops to the on device lib.

Change-Id: I2cd23cc2dab32c54f341e8e0cfbfbcaf1585c401
untime/Android.mk
untime/arch/generic.c
untime/arch/neon.ll
untime/rs_core.c
untime/rs_matrix.c
56cfa8160b5c855bf908ecb92491f953c9816963 05-Mar-2013 Jason Sams <jsams@google.com> am 25b7205e: Merge "Add more X86/SSE2+ optimized functions"

* commit '25b7205e16e422469da74f88e74ad79e7c284ac7':
Add more X86/SSE2+ optimized functions
3d0be775a298c8345a038e4f1e060176659ec9db 05-Mar-2013 Jason Sams <jsams@google.com> am e323991d: Merge "Start to add X86/SSE2+ optimized clcore library"

* commit 'e323991d04284925ff7aea8387bc55c1ed57a061':
Start to add X86/SSE2+ optimized clcore library
d805eacc8086e387ab25d3d502db8113281b3d9d 26-Feb-2013 Jason Sams <jsams@google.com> Apply eSize optimization to getElementAt

Implement 3D versions of the typed get/set functions

Performance improves 2-4% in most benchmarks that use these.

Change-Id: I6c752b3381d9b3c866b50039c33767fef46b2d20
untime/rs_allocation.c
bb05edd21dc3d886c154b0677b6bc87ae75019ee 19-Feb-2013 Stephen Hines <srhines@google.com> Merge "Add LinkRuntimeCallback() and supporting functions to RS compiler."
fac184e6598ec9eca40c13aa546498db7137c857 15-Feb-2013 Tim Murray <timmurray@google.com> Add MIRRORED_REPEAT.

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

Change-Id: I7745406a94ba74896ee98752a3de106d2672159d
SCompilerDriver.cpp
SScript.cpp
untime/rs_structs.h
3ab9da1e1b3d7794994393af086d096397fb84db 02-Feb-2013 Stephen Hines <srhines@google.com> Fix bcc_compat symbol resolution with libcompiler_rt.so.

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

Change-Id: I64b3d4ba80343bc592fa0df72242b33b2d2ae0ed
SCompilerDriver.cpp
f7401ab4b42dcbd782f20ba5c279694edbd28516 26-Jan-2013 Shih-wei Liao <sliao@google.com> Add libcompiler_rt.so as built-in dependencies for RS.

Change-Id: I376616ffbe26813a8341e87c965a27666d35b9a6
SInfo.cpp
SInfoExtractor.cpp
f0e8fdad566043d8ead4d2211c1060d2d5b4c355 25-Jan-2013 Jason Sams <jsams@google.com> Implement fast log and pow

Change-Id: I5f8f697378c6b72d67eeabe0ebd098a2daf3771f
untime/rs_cl.c
b730e239619a546d93e5926ea92d698ab77ec7f6 10-Jan-2013 Stephen Hines <srhines@google.com> Updates for LLVM merge to r171906 on 20130108.

Change-Id: I096cb90103b19e3110ea562d60e5eb8ad48d9b67
SCompiler.cpp
SEmbedInfo.cpp
SForEachExpand.cpp
SInfoExtractor.cpp
untime/build_bc_lib.mk
untime/build_clcore.sh
8c03b80ea520d971321100d4a5f7f301a7510fc9 19-Jan-2013 Tim Murray <timmurray@google.com> Merge "remove fabs LLVM intrinsic"
38fce22487e1a816a1e703f20e5400c634060f56 19-Jan-2013 Stephen Hines <srhines@google.com> Merge "Remove the fract(float) implementation."
54f9bf50c643a163d5dc48959e3cd64fe3532d21 18-Jan-2013 Jason Sams <jsams@google.com> Merge "Implement fast native_exp*"
28e2dd65d5781d5bbb98bde8a3dd54f85969158f 18-Jan-2013 Jason Sams <jsams@google.com> Implement fast native_exp*

Change-Id: I0989527a7993023131f991ba260c7bf9d9eae51c
untime/rs_cl.c
db64973c80058c0a6e685d1ca8e7a96cc48a405c 17-Jan-2013 Stephen Hines <srhines@google.com> Remove the fract(float) implementation.

Change-Id: I09df57618748eb33c7a233f6f6c59e21d0072107
untime/rs_cl.c
385a61565c8b30fea0bc0f8bccff1848aa94936e 16-Jan-2013 Stephen Hines <srhines@google.com> Merge "rs_matrix types are not 16-byte aligned, so we have to load them as align 4."
65cd36f9052a317bab961fd86415e4faa55d00d0 16-Jan-2013 Stephen Hines <srhines@google.com> rs_matrix types are not 16-byte aligned, so we have to load them as align 4.

Change-Id: I30742a23fe87db7cb68d2c97bc022f7ee418ef82
untime/matrix.ll
ee1571e8ad198c01af7817dd068f552ccf822093 15-Jan-2013 Tim Murray <timmurray@google.com> remove fabs LLVM intrinsic

Change-Id: Ifc1dd2ac25ad0682cc5b1f682b0f524f74ebb26a
untime/math.ll
untime/rs_cl.c
fb32f0d150ae43e6c6c4c92fe13a92ead3f5e065 09-Jan-2013 Jason Sams <jsams@google.com> Update allocation headers for yuv.

Change-Id: I341ce90c06cbd358d8da4b62d5947b07b3f7c6c2
untime/rs_allocation.c
untime/rs_structs.h
f887657c2f07b86fab4b190e599e7d004e204d13 20-Oct-2012 Michael Liao <michael.liao@intel.com> Add more X86/SSE2+ optimized functions

- SSSE3 optimized length() is added by using HADDPS
- SSSE3 optimized dot() is added by using HADDPS
- scalar exp() and pow() is translated into LLVM intrinsics to allow
backend to schedule insn around them to reduce register pressure or
improve code scheduling. They eventually will be lowered into standard
C math library call.

Change-Id: Ife462352e15d1762ba46829165a3d02b3b1be858
Author: Michael Liao <michael.liao@intel.com>
Signed-off-by: Yong Chen <yong.a.chen@intel.com>
Signed-off-by: Xiaokang Qin <xiaokang.qin@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-tracking-BZ: 66242
untime/Android.mk
untime/arch/dot_length.c
untime/arch/x86_dot_length.ll
untime/arch/x86_math.ll
untime/rs_cl.c
cdcce323a2acddb4234e6906c691e20bb3d714f9 26-Sep-2012 Michael Liao <michael.liao@intel.com> Start to add X86/SSE2+ optimized clcore library

'sqrt' and 'clamp' are optimized on x86/sse2 target.

Change-Id: Ia8f1b12c666828de88c49699006e44b17431a9ac
Author: Michael Liao <michael.liao@intel.com>
Signed-off-by: Yong Chen <yong.a.chen@intel.com>
Signed-off-by: Xiaokang Qin <xiaokang.qin@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-tracking-BZ: 61893
SInfo.cpp
SScript.cpp
untime/Android.mk
untime/arch/sqrt.c
untime/arch/x86_clamp.ll
untime/arch/x86_generic.c
untime/arch/x86_math.ll
untime/rs_cl.c
426db95e17cdbaa9b1ff26eb32d20374681a96c2 03-Jan-2013 Tim Murray <timmurray@google.com> Fix potential bad pointer dereference with fract().

Bug: 7938590

Change-Id: I11c5abc589fa188c0e6790b08c3a6629c4243199
untime/rs_cl.c
56c9751e346dbdf98be57f789e6d70203a465cbe 17-Dec-2012 Tim Murray <timmurray@google.com> Merge "add rsSetElementAt_<type>."
0116d8b4247829adfb64b9cb7992eb783a54abd5 13-Dec-2012 Stephen Hines <srhines@google.com> Fix bug in object slot implementation.

The implementation of object slots in RSInfo is different from that in bcinfo.
In particular, this variant uses a bitmask where order does matter, rather
than a list of slot id numbers that are actually objects. I have adjusted
the walk pattern for RSEmbedInfo to take this into account.

Change-Id: I0d587546452411a79e0f20f908b53aeca731ea7c
SEmbedInfo.cpp
688e4c0dd73c273551f517fa85a08b40dd63eacc 13-Dec-2012 Stephen Hines <srhines@google.com> Fix long-standing bug with multiple pragmas.

There is a subtle bug here in that the rs_fp_imprecise setting will always be
clobbered with rs_fp_full due to the "fast return" path. This change also
replaces ::strcmp() with the original implementation's std::string::compare().

Change-Id: I5b309583fed84d09ded091e25f1971fa9e1ec430
SInfo.cpp
d4d0bf5a4ae2aafd1646035fed8b57cdfb617817 12-Dec-2012 Tim Murray <timmurray@google.com> add rsSetElementAt_<type>.

Change-Id: I14390d8186f4fe0d31bdbd9f653671f9eb2fc4f6
untime/rs_allocation.c
5543d490870e2b74c4d674d212ed974abe31d533 12-Dec-2012 Jason Sams <jsams@google.com> Use llvm fabs intrinsic.

Change-Id: I7e593ec2306305bc510c0a18ebc697b18c5992dc
untime/math.ll
untime/rs_cl.c
2965f541bc4fe593b832b8949ccec7ab0d026de0 27-Nov-2012 Jason Sams <jsams@google.com> Merge "Update libbcc for cpu separation."
8b1532ef9c3b60565cadcf3a5fb3816d889bf616 17-Nov-2012 Jason Sams <jsams@google.com> Update libbcc for cpu separation.

Change-Id: I14cdf14cc8a8df42efe960a4aafd9e2b282f509d
untime/rs_allocation.c
untime/rs_sample.c
untime/rs_structs.h
86a0b797c221d4c3373dc10c8229b75b6747f6e7 07-Nov-2012 Stephen Hines <srhines@google.com> Embed RS metadata info directly in emitted object code.

Bug: 7419958
Change-Id: Ibd82e503c006532aa74013a46dd13ec3e9473daa
ndroid.mk
SCompiler.cpp
SCompilerDriver.cpp
SEmbedInfo.cpp
SExecutable.cpp
331310e1f3f86a795f78e42b3f03558a43829f09 27-Oct-2012 Stephen Hines <srhines@google.com> bcc_compat - convert bitcode to shared object files.

BUG: 7419958

Change-Id: Ie81203b460d60425780657b51ba3aba2b2b77e05
SCompilerDriver.cpp
SInfo.cpp
SInfoExtractor.cpp
SScript.cpp
d82c527a2a3b8d5ee165dea3ffeaf643ef6c606e 19-Oct-2012 Stephen Hines <srhines@google.com> am 6f3138bb: Fix missing data for mObjectSlots.

* commit '6f3138bbc93b7105ddb49a803c15c3f98077f533':
Fix missing data for mObjectSlots.
6f3138bbc93b7105ddb49a803c15c3f98077f533 19-Oct-2012 Stephen Hines <srhines@google.com> Fix missing data for mObjectSlots.

The refactored version for metadata extraction skipped actually populating
the mObjectSlots list. This can result in memory leaks in libRS, as well
as having the potential for corruption (since we are now returning an
empty list to a driver that expects legitimate boolean values).

Bug: 7377851
Change-Id: Id67d46232eeb6b1f59904037b0504a5c590874ee
SInfoExtractor.cpp
af0d05f17010986121d6199f247b772a97250227 17-Oct-2012 Tim Murray <timmurray@google.com> Add 1D and 2D rsSetElementAt.

Change-Id: Ied1ffbeaf311541990ecc935915c5c52a1a8b0e6
untime/rs_allocation.c
0d6d592c5c0d28331151e6c4b7fb7d0789b99974 01-Oct-2012 Stephen Hines <srhines@google.com> Fix improper cast for pown on CPU/GPU.

Bug: 7256001
Change-Id: I5231c418e19dab6682a2afd806f5068a3eceb3f7
untime/rs_cl.c
ceb4c0f5fc5f63c6e494fc2fda25e4461d27abb5 25-Sep-2012 Stephen Hines <srhines@google.com> Switch to TargetData::getTypeAllocSize().

We were accidentally using 12 for float3 instead of 16, so our pointer
updates would get out of sync.

Bug: 7224526
Change-Id: I0e3f7f52ef3a862d7f60a46755bb22e533ff289d
SForEachExpand.cpp
74a4b08235990916911b8fe758d656c1171faf26 22-Sep-2012 Stephen Hines <srhines@google.com> Fix pass-by-value when the return type uses pass-by-reference.

Since we are using a baseline ARM ABI for Renderscript's portable bitcode,
we need to handle the case where a large return value gets passed as a
pointer (it becomes the first argument). This also fixes a small issue
where the first argument could be the return value (i.e. passed by
reference). I also have verified that coerced struct pass-by-value is
now working with this change.

Bug: 7166741

Change-Id: I7c00ff437ad862f9b8b244d87ccbca19e46c5775
SForEachExpand.cpp
4fdec9b00e2643b764c4f9786def10d643818aba 21-Sep-2012 Jason Sams <jsams@google.com> Cleanup naming of aprox & half functions.
bug 7205089

Change-Id: I73261ae024507b21cfe85dcf2a7ba68de76f0bcf
untime/arch/generic.c
untime/arch/neon.ll
untime/rs_cl.c
7ae3a828fade4e30f7940415949f33ac1f15dc77 15-Sep-2012 Stephen Hines <srhines@google.com> Implement expandKernel() for pass-by-value.

This change implements the libbcc portion of pass-by-value in RS kernels.
The expandKernel() function creates the appropriate loop construct around
the kernel call (thus foo() -> foo.expand()).

Bug: 7166741

Change-Id: I2e4c85b8ac70372dc6d02671e8768381070e9721
SForEachExpand.cpp
1b84ea3be223d95e55965c0d5721d7c91a5a66b9 11-Sep-2012 Stephen Hines <srhines@google.com> am 2e00e3b8: am 89fb60df: Merge "Fix length(float v) issue"

* commit '2e00e3b8648dbc2fc865f14545bff532b75250ee':
Fix length(float v) issue
2ac4cb14fd34fff9ed1fede229aea9c84edb6556 29-Aug-2012 Jason Sams <jsams@google.com> Merge "Cache element type in allocation." into jb-mr1-dev
561df916775aa38f9b915889ded8824da02bc03f 29-Aug-2012 Jason Sams <jsams@google.com> Cache element type in allocation.

Change-Id: Ia99e56106fc9bd58282248e803cbf6610eb2cf0c
untime/rs_structs.h
de0d6bf95e1cd4c87bfbcaa122a99e038b773b8b 16-Aug-2012 Rajeev Sharma <rdsharma@google.com> Add approx_atan function

Change-Id: I3a4770ed1634dc5ec541d21acdd181be4d513deb
untime/rs_cl.c
f3a719289eba0d2b47830b9e40858ed4a413d25b 03-Jul-2012 Rajeev Sharma <rdsharma@google.com> LL version of rsClamp. Fix non-vector clamp.

Change-Id: I7107425fa0c535b47ca4233ced05845b872b199f
untime/Android.mk
untime/arch/neon.ll
untime/rsClamp.ll
untime/rs_core.c
539ea206fe36a54de0cb2763244d61c1a8e1ff84 04-Aug-2012 Rajeev Sharma <rdsharma@google.com> Initial version of approx recip, sqrt, and rsqrt

Contains NEON implementations of approximate reciprocal, sqrt, and rsqrt, as
well as generic C implementations of generic sqrt and rsqrt.

Change-Id: I5a0a847c9b80e9aebee7f402ba1cb79b6663ad65
untime/arch/generic.c
untime/arch/neon.ll
untime/rs_cl.c
8b5be8604307d0dd342235803dd45775830b84c6 03-Aug-2012 Shih-wei Liao <sliao@google.com> Apply changes to migrate to LLVM-160668-20120724.

Change-Id: I515f90ff6b7222f9e69481c21a10173e1b0b40d2
SForEachExpand.cpp
2b04086acbef6520ae2c54a868b1271abf053122 28-Jul-2012 Stephen Hines <srhines@google.com> Use known strides instead of input args when possible.

BUG=6892059

Change-Id: I15b3726624ff0eeca5e30aaa6de928f1c9912471
SCompiler.cpp
SForEachExpand.cpp
6e9e89d1ed049ec931bb1000948c12698e6c5484 28-Jul-2012 Stephen Hines <srhines@google.com> Add back support for bccAssert.

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

Change-Id: I187928033b47f3e3f4cb811a0b3562f479cfe417
ndroid.mk
SCompiler.cpp
SCompilerDriver.cpp
SExecutable.cpp
SForEachExpand.cpp
SInfo.cpp
SInfoExtractor.cpp
SInfoReader.cpp
SInfoWriter.cpp
SScript.cpp
untime/Android.mk
untime/arch/generic.c
untime/arch/neon.ll
untime/build_bc_lib.mk
untime/build_clcore.sh
untime/convert.ll
untime/math.ll
untime/matrix.ll
untime/pixel_packing.ll
untime/rs_allocation.c
untime/rs_cl.c
untime/rs_core.c
untime/rs_element.c
untime/rs_mesh.c
untime/rs_program.c
untime/rs_sample.c
untime/rs_sampler.c
untime/rs_structs.h