History log of /frameworks/compile/libbcc/lib/Renderscript/RSKernelExpand.cpp
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
/frameworks/compile/libbcc/lib/Renderscript/RSKernelExpand.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
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)
/frameworks/compile/libbcc/lib/Renderscript/RSKernelExpand.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
/frameworks/compile/libbcc/lib/Renderscript/RSKernelExpand.cpp
791d57c5b387448cd672010ff970daed5ae41773 30-Mar-2016 David Gross <dgross@google.com> Merge "Preserve generalized reduction combiner function for use by driver." into nyc-dev
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
/frameworks/compile/libbcc/lib/Renderscript/RSKernelExpand.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
/frameworks/compile/libbcc/lib/Renderscript/RSKernelExpand.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
/frameworks/compile/libbcc/lib/Renderscript/RSKernelExpand.cpp
e32af52d4be2bb80783404d99fa338b1143dbc9a 15-Jan-2016 David Gross <dgross@google.com> Support for general reduction kernels.

Bug: 23535724
Change-Id: I28b6b8fafab3fe9f5d09beb990791843875e1f26
/frameworks/compile/libbcc/lib/Renderscript/RSKernelExpand.cpp
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
/frameworks/compile/libbcc/lib/Renderscript/RSKernelExpand.cpp
dfde70a8ae9b77bbf0e8d9d22a55e1d1fda7d64d 19-Aug-2015 Stephen Hines <srhines@google.com> Remove ambiguous parse to fix mingw build breakage.

Change-Id: I5f30aaa1669dc9a1dfb019e94df261c5eafa5a1f
/frameworks/compile/libbcc/lib/Renderscript/RSKernelExpand.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
/frameworks/compile/libbcc/lib/Renderscript/RSKernelExpand.cpp