History log of /frameworks/compile/slang/slang_rs_check_ast.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
8ee018bdb53fc5abdc430878e2bec0c0c0aa560f 02-Jun-2016 David Gross <dgross@google.com> Delete simple reduction implementation.

Bug: 27298560
Change-Id: I775dd782d658c7c720f57aa31a584deee98cdd17
/frameworks/compile/slang/slang_rs_check_ast.cpp
5e306b944425a952fe744f59d828538137a59375 09-Feb-2016 David Gross <dgross@google.com> Change mechanism used to ensure #pragma rs reduce functions are not deleted.

Requires corresponding change in frameworks/compile/libbcc.

The functions referenced by "#pragma rs reduce" are static functions.
If the only references to such a function are from these pragmas, then
the function looks unreferenced, and hence without additional work
will be deleted by clang.

The old solution to this problem is to add all such functions to
the LLVM intrinsic variable @llvm.used. Unfortunately, this
doesn't just prevent clang from deleting these functions -- it
also prevents llvm from deleting these functions. This is
undesirable in the case of the combiner function (which is not
currently needed by the CPU reference driver) or the accumulator
function (because the CPU reference driver needs an "expanded"
form of the accumulator function, not the original accumulator
function).

The new solution is that for each such function "f" we generate a
dummy variable initialized with a pointer to that function:

void *.rs.reduce_fn.f = (void*)&f;

This prevents clang from deleting "f", but does not automatically
prevent llvm from deleting "f" (e.g., the backend could use some
other mechanism to retain "f" if necessary, while
deleting ".rs.reduce_fn.f").

Bug: 23535724
(cherry picked from commit 633f2980e148775887f0d416f8dd663a6d3b48df)

Change-Id: I272445d2bf706cde8d81ed65aa32df59c3ba0e47
/frameworks/compile/slang/slang_rs_check_ast.cpp
13fad85b3c99a37c17d8acfec72f46b8ee64e912 24-Nov-2015 Stephen Hines <srhines@google.com> Void pointers can't be exported.

Bug: http://b/25853842

Change-Id: I5b11fd14b6cd57a06522e921c62ed033488aa08e
/frameworks/compile/slang/slang_rs_check_ast.cpp
c0c5dd85f2d2df2bcf0cb284001f544d6c42eff9 24-Jul-2015 Matt Wala <wala@google.com> Add initial support for validating and exporting reduce kernels.

Bug: 22631253

This change adds support to slang to validate the reduce-style
kernels for errors, and also to create reduce metadata.

Change-Id: Ic9144402dff93a2a28687864637e67fca6808e2e
/frameworks/compile/slang/slang_rs_check_ast.cpp
f5b882cc561f656eb650d0fa6db7bac57989ab12 16-Jun-2015 Matt Wala <wala@google.com> Move kernel/static incompatibility check into AST validator.

The predicate RSExportForEach::isRSForEachFunc() was checking and
reporting an error if kernel attributes were paired with static
function declarations, which is an error in RenderScript. It makes
more sense to do the check in the AST validator. That way the work of
the predicate function doesn't involve validation.

Change-Id: I8a956f5e4ad72845ed759f9088cf8e3d543d2a0a
/frameworks/compile/slang/slang_rs_check_ast.cpp
ab94bccca64c9b126cbd1b732aa5e681d8639b99 12-Jun-2015 Stephen Hines <srhines@google.com> Move the error for pointers in structures earlier in the compile.

Bug: 21597073

This fixes an issue where a function argument is not checked for
compatibility until the reflected code generation (at which point the
message is far more cryptic). We do this by checking parameters for
externally-visible functions and externally-visible globals in our
ValidateType() routine.

Change-Id: I5ab9db1a11ed0e395c7623f1c9997632da057269
/frameworks/compile/slang/slang_rs_check_ast.cpp
8024ed54c23c08534434da14d3be99c3efcc5754 05-May-2015 Jean-Luc Brouillet <jeanluc@google.com> Merge Slang with SlangRS, Backend with RSBackend.

Change-Id: I4721f92c10ec14a886923778595289f96d3a8de5
/frameworks/compile/slang/slang_rs_check_ast.cpp
5abbe0e9ca2508260b627ffef2bf01e2554e8357 13-Aug-2014 Chris Wailes <chriswailes@google.com> Replace the NULL macro with nullptr literal.

Change-Id: I33609969cd0d7aa55eaa83fb2c65f5faa6d55fa0
/frameworks/compile/slang/slang_rs_check_ast.cpp
ee4016d1247d3fbe50822de279d3da273d8aef4c 11-Apr-2014 Tim Murray <timmurray@google.com> Update Slang for Clang/LLVM 3.5a.

Change-Id: Icd59efa1197098076555c505c31939866e504a83
/frameworks/compile/slang/slang_rs_check_ast.cpp
d3f7527b105d21f1c69d3473eb88a762f2c3ab5a 17-Jan-2014 Jean-Luc Brouillet <jeanluc@google.com> Add ReportErrror/Warning to RSContext.

Remove a lot of boilerplate code by adding error reporting methods to RSContext. There are still a few additional files that could be cleaned. That will be for another CL someday.

Change-Id: I6a261735720227ac87d94dbdea5ce4a7b8ef6cca
/frameworks/compile/slang/slang_rs_check_ast.cpp
48d893dc7794b3cfb74f35955ca763ee4170f9ad 07-Dec-2013 Stephen Hines <srhines@google.com> Support reflection of enums.

Prior versions would just crash when attempting to reflect an enum type.
This patch maps enums to integers for reflection in Java.

Change-Id: I5b278d670564ceb606a6b96804f76a798bedc89c
/frameworks/compile/slang/slang_rs_check_ast.cpp
616854341745b958e0c409cdb6e21abb6225aa21 31-Jul-2013 Tobias Grosser <grosser@google.com> Add performance warning for rsSetElementAt

This warning proposes the use of typed rsSetElementAt calls in
case typed versions of this method are available.

Change-Id: I8d3b9bbd50b085d4e04db0008d7bf39733e0c663
/frameworks/compile/slang/slang_rs_check_ast.cpp
44f10063c2c08dab103a44cded0c3a288d65d43b 13-Jun-2013 Stephen Hines <srhines@google.com> Update slang for LLVM merge to r183849.

s/getLinkage/getFormalLinkage
Path.h -> PathV1.h
Fix test output diagnostics related to pragma location

Change-Id: I7ab5372e848494ac40f1284eb6f9accc18092ad7
/frameworks/compile/slang/slang_rs_check_ast.cpp
dbb6dc37c377f8dd183f2069a6e27610d1202d98 08-May-2013 Stephen Hines <srhines@google.com> Disallow implicit and explicit casts of vector types in llvm-rs-cc.

Bug: 7342914

Vector types are aggregates (just like structs), and casting of any type
results in bitcasts being generated. This misbehaves when converting between
things like float and int. Even more troublesome than explicit casts are
implicit casts, which can arise from accidental arithmetic operations between
two different vector types.

Change-Id: If27a0f70d1da5f1773261a38e6b4572aeb976701
/frameworks/compile/slang/slang_rs_check_ast.cpp
089cde338148fbb75825aea4539ccdae8211ffef 08-Dec-2012 Stephen Hines <srhines@google.com> Forbid non-const static variables in kernels.

Bug: 7688011
Change-Id: If03084a9ece76478e0ed0847b75f09c41b89a500
/frameworks/compile/slang/slang_rs_check_ast.cpp
11274a7324b478ec13e1d10a1b81350b34a65ab1 27-Sep-2012 Stephen Hines <srhines@google.com> Validate FS (and RS) ASTs.

This change adds a new RSCheckAST class that is used to handle validation
of the final AST. The checks include existing RS checks (for accepted types)
and new checks for Filterscript (like disallowing pointers, unions and
> 32 bit types completely). The refactoring also fixes a subtle union bug
that existed in prior versions of llvm-rs-cc. We also add an implicit
pragma for "rs_fp_relaxed" by default on Filterscript.

Bug: 7166741

Change-Id: Ia077783b4caba0bbd89df2ab3827e9f4d1009eea
/frameworks/compile/slang/slang_rs_check_ast.cpp