b6a143562bda2117824a0515c208504e9a2830f1 |
|
26-Jul-2016 |
Pirama Arumuga Nainar <pirama@google.com> |
Fix slang to compile with LLVM r275480 Bug: http://b/31320715 In addition to fixing compilation with the new LLVM sources, this change also switches to using LLVM's RenderScript triples. Clang also uses this triple to set the size and alignment of 'long' data type to 64-bits. We no longer need/have the '+long64' CPU feature. Test: Run RenderScript tests (host tests for slang and libbcc, RsTest, CTS) Change-Id: I3d2795bc0253a10d6fb36bfb0c28eb0c2e9a2922
/frameworks/compile/slang/slang_rs_export_foreach.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_export_foreach.cpp
|
f075ffc10278e1c127bcf041fce7ce89d428f94c |
|
03-Dec-2015 |
Stephen Hines <srhines@google.com> |
Fix a set of inverted conditionals for kernel validation. Bug: http://b/25853842 A previous refactoring accidentally inverted the conditions here, using |= instead of &= for a boolean that started as true. Whenever we would get an invalid call, the |= meant that we would still retain our initial true value (claiming that the incorrect code was valid). Luckily, other subsequent checks would then cause the compilation to fail elsewhere (usually by noticing that we had already queued up diagnostics). With the increased checking for void * in Bug 25853842, a new test case triggered a latent assertion that exposed this bug. Change-Id: I85f4e6db64f5fc8eb0027c30c23dcee2dfaf9826
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
46e146e0cef555379699f06edb3b2d9673978703 |
|
12-Nov-2015 |
David Gross <dgross@google.com> |
Restructure handling of special kernel parameters. This enables special kernel parameter processing to be shared by foreach kernels and general reduction kernels. Bug: 23535724 Change-Id: I4234aec2d82f4b39bb2a27f675c061c05ab6db91
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
1946749cebf4a64341d8210890688fef7d958c22 |
|
27-Oct-2015 |
Yang Ni <yangni@google.com> |
Launch options & multi inputs for single-source RS Bug: 23535985 Also renamed rsParallelFor to rsForEach. Added checks for number of allocations to rsForEach matching kernel function expectation. Added slang tests. Removed code from RSContext for remembering the rs_allocation AST subtree. Change-Id: Ibc22bd5e9585a4471b15920ef60fe1fe2312de49
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
fb40ee2a90f37967bf4a40a18dec7f60e5c580d8 |
|
13-Oct-2015 |
Yang Ni <yangni@google.com> |
Revert "Revert "Handle kernel launch calls"" Bug: 23535985 This reverts commit 5d9263d3a3a7457b9e5fe6e518c0d822dcdfcda6. This also fixes issues in change list 172074, which caused some slang tests to fail due to changed hehavior in error handling. The fix was based on changes originally posted by srhines@. To keep single-source functionality working, I separated kernel name logging from the final export processing code. We would build a map from kernel funciton names to slot numbers as we parse the script. The map is used when translating a rsParallelFor call to a call to the internal rsForEachInternal API, so that we can find the proper slot numbers. Here is Steve's original commit message. Only call processExports() after a successful C99 compilation. This refactoring fixes a bug in the previous single-source patch, where exported functions/variables/kernels were being processed during the regular compilation steps. This wastes compile time, since we don't need to actually prepare for outputting reflected Java/C++ code if the compile is going to fail for regular C99 reasons. Change-Id: I81d88731188f4258f12f4c90ae8dd8abc8c2d641
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
9741cd951d05b468bb15e7b1554f939393ddf582 |
|
11-Aug-2015 |
Jean-Luc Brouillet <jeanluc@google.com> |
am 9764eb3b: Change the name for the new rs_context parameter. * commit '9764eb3be0f2dcaaefa62fddc9fbedf14784ae38': Change the name for the new rs_context parameter.
|
9764eb3be0f2dcaaefa62fddc9fbedf14784ae38 |
|
08-Aug-2015 |
Jean-Luc Brouillet <jeanluc@google.com> |
Change the name for the new rs_context parameter. Change the reserved name for the new rs_context parameter to be "context". Since there can be only one rs_context parameter, report an error if the name is incorrect. Also use "special parameter" consistently in the error messages to help our developers distinguish between regular and special parameters. Finally, some refactoring to make the code more understandable. b/21647353 Change-Id: I6f23dc5a8ba3659714ad1f7ba41836ff8b92d9ec
/frameworks/compile/slang/slang_rs_export_foreach.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_export_foreach.cpp
|
b3e022a62c7017f7853a6149a63bd00b13091a6c |
|
21-May-2015 |
Stephen Hines <srhines@google.com> |
Update llvm-rs-cc version to 23 for M. Bug: 22179874 This change updates the compiler version, as well as marks the new APIs usable by Android M. Change-Id: I2a943274a701e6301b6c41ac3bb4302e0a66b9d0 (cherry picked from commit bd0a7ddceac6c135ea975cefbac73877a1f9dae7)
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
bd0a7ddceac6c135ea975cefbac73877a1f9dae7 |
|
02-Jul-2015 |
Stephen Hines <srhines@google.com> |
Update llvm-rs-cc version to 23 for M. Bug: 22179874 This change updates the compiler version, as well as marks the new APIs usable by Android M. Change-Id: I2a943274a701e6301b6c41ac3bb4302e0a66b9d0
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
a088faa4140ce179c38e56773f638b84c7120769 |
|
23-Jun-2015 |
Stephen Hines <srhines@google.com> |
Restore "Fix an assertion triggered when using anonymous structs in kernel" This reverts commit d463956aa4e3e1a26eeb32dc9d705b4b59865041. Legacy kernels can/will use void pointers for some kernels, which can't be exported, but are still legal. Change-Id: Iba405356fe09385ddd424805787ce1c596c37dac
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
d463956aa4e3e1a26eeb32dc9d705b4b59865041 |
|
23-Jun-2015 |
Stephen Hines <srhines@google.com> |
Revert "Fix an assertion triggered when using anonymous structs in kernel" This reverts commit 3f9d0db0d0c841327dbcefe3f2c032ea449d6973.
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
798e6ab621314f6cd890a14251d4d12e849a17bb |
|
23-Jun-2015 |
Stephen Hines <srhines@google.com> |
Merge "Extract special function handling functions into their own namespace."
|
eae0b7ad0195360b0afc37d51553f2917f1aa365 |
|
16-Jun-2015 |
Matt Wala <wala@google.com> |
Extract special function handling functions into their own namespace. This moves a bunch of static functions out of RSExportForEach. Change-Id: Ibe022105cc03239990af8df3dd13d86a1d4836ec
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
3f9d0db0d0c841327dbcefe3f2c032ea449d6973 |
|
19-Jun-2015 |
Matt Wala <wala@google.com> |
Fix an assertion triggered when using anonymous structs in kernel signatures. With asserts enabled, using an anonymous structure in the signature of a kernel would cause an assertion to be triggered, which caused slang to exit prematurely instead of printing an error diagnostic. The problem is in the code in RSExportForEach::Create that exports the types in the kernel signature. I changed this code not to throw asserts when it sees a type that cannot be exported. However, since we expect an error in this circumstance, I added an assert to ensure that the diagnostic has been issued. Change-Id: I727695b07d1310c8317b973499faa8088e2b0b4e
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
e23d82b457517d0302ebabefad32118ac7b78023 |
|
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 (cherry picked from commit ab94bccca64c9b126cbd1b732aa5e681d8639b99)
/frameworks/compile/slang/slang_rs_export_foreach.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_export_foreach.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_export_foreach.cpp
|
fb78d4c6604bd243578ce8071e31f68c023d82cf |
|
31-Mar-2015 |
David Gross <dgross@google.com> |
Support new-style kernels with no output and no input. Such kernels get the definition of their iteration space solely through LaunchOptions. No runtime testing of no-allocation kernels yet. Bug 19950069 Change-Id: I452f948967d52e0ce8998628d554ab188cae9116
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
cd7d3128f41a59692e5c59a2b81969616579aae4 |
|
13-Mar-2015 |
David Gross <dgross@google.com> |
A kernel may have at most 8 inputs. Change-Id: I09bbd52d9f4d4cd4f6772ae75b1eeb9096017472
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
7cc6876212646f91cd718a72a1845a0563838fe9 |
|
11-Mar-2015 |
David Gross <dgross@google.com> |
Remove extraneous semicolon from namespace-closing curly brace; was breaking some builds. Change-Id: I6d9c24615e741e271584a10f301325bc54675461
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
18c50ebf6e87a6f51de8f21dce6282d1096e50c2 |
|
30-Jan-2015 |
David Gross <dgross@google.com> |
Frontend support for new special kernel params ctxt and z. Includes new test cases to ensure we can check for proper usage. This change will not compile without related platform/frameworks/compile/libbcc changes. Bug: 18964628 Change-Id: I6e5cd6f221469426a84cff11be6a101a5855456d
/frameworks/compile/slang/slang_rs_export_foreach.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_export_foreach.cpp
|
c9454afec1649846512993d0ef65a9f868976bb4 |
|
14-Jun-2014 |
Chris Wailes <chriswailes@google.com> |
Adds support for multi-input kernels to Slang. This patch modifies slang in the folowing ways: * Updates some of the development target API logic. * Adds logic for validating kernels with multiple inputs. * Added support for multi-input kernels to the Java reflection code. * Adds tests for these new features. * Updated existing tests with the new error messages. Change-Id: I46d2834c37075b2a2407fd8b010546818a4540d1
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
eca0534a31b6185d6ab758f5e97acd7a4cb21e8e |
|
15-May-2014 |
Jean-Luc Brouillet <jeanluc@google.com> |
Add details to the TODO, simplify dummy names Change-Id: I37451d8217c3d61ea76db377785045edb2d5c4b0
/frameworks/compile/slang/slang_rs_export_foreach.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_export_foreach.cpp
|
482caac59574f980cc78b2ac63e01a926da86a96 |
|
18-Jan-2014 |
Jean-Luc Brouillet <jeanluc@google.com> |
Allow 'x' and 'y' to be of type signed int. Validates they are of the same type. Change-Id: I408a009df25a179c7e2256a02c6e5dd16c3c74fa
|
42f81b2b44205f421c6bd4727ce8c25b0effcb55 |
|
17-Jan-2014 |
Jean-Luc Brouillet <jeanluc@google.com> |
Require 'x' and 'y' as the parameter names of the iterators. By requiring the iterators to be named exactly 'x' and 'y', we can simplify processing. We can also improve the error messages. Note that the error messages are not printed in strict increasing order. If that's important, it's trivial to separate the search for IndexOfFirstIterator into its own function. Change-Id: I71ebf4118154924d67af31c44dbdb07ed0f54a77
/frameworks/compile/slang/slang_rs_export_foreach.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_export_foreach.cpp
|
0f2a2397df53a1bb74609abe3c27719bc7e3c328 |
|
14-Jan-2014 |
Jean-Luc Brouillet <jeanluc@google.com> |
Code refactoring, no behavior change. Changed a couple of member variables to be more descriptive. Unified setting of signature metadata into one function. Change-Id: I4b4730d8159b8a67a4d9d39713dc2bec8eb8d01a
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
23c4358f12bd9d0ba7166eceebd683db95a41b3f |
|
10-Jan-2013 |
Stephen Hines <srhines@google.com> |
Updates for LLVM merge to r171906 on 20130108. Change-Id: I4cf3718041d8876d4a23a412b6b4fa4226ec3b50
/frameworks/compile/slang/slang_rs_export_foreach.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_export_foreach.cpp
|
9ca96e70657cf5437a294213f56ba4768dc08ad2 |
|
14-Sep-2012 |
Stephen Hines <srhines@google.com> |
Support for pass-by-value kernels. This change allows the JB-mr1+ target API to declare compute kernels using "__attribute__((kernel))". This disables the use of pointers in the function signature and forces any output to be explicitly returned and input to be passed only by value. We still allow the user to add x, y coordinates if they want them. Bug: 7166741 Change-Id: I1407fceefb11c7d6c17221ca156cfce443c2b218
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
43730fe3c839af391efe6bdf56b0479860121924 |
|
03-Aug-2012 |
Shih-wei Liao <sliao@google.com> |
Apply changes to migrate to CLANG-160673-20120724. Change-Id: I666df2ff91532318883dd48ea1249178b2ebda81
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
c17e198ffcd37bfc57e3add1f6eee952ae2a2eab |
|
22-Feb-2012 |
Stephen Hines <srhines@google.com> |
Support dummy root() and re-ordering in presence of non-root kernels. BUG=6000538 Change-Id: Ib3ed249916d36acf68ab32e9216804ae1da5e991
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
7b51b55e4467605a599e868a0dde7cb95c5ab76e |
|
16-Feb-2012 |
Stephen Hines <srhines@google.com> |
Export ForEach on non-root functions. BUG=6000538 This change also updates expected diagnostics for our existing tests. Change-Id: I98e12625d121ae20fcb6dcaacf0852c0f239c604
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
9999ec3aa0c4d7a6befd3a300dc07f0cea91cb6c |
|
11-Feb-2012 |
Stephen Hines <srhines@google.com> |
Clean up graphics/compute root() distinction. BUG=6000538 Change-Id: I29096556dff2072a8757e0dfd3321006cd60bb27
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
f8c8600eb5eebee41fd88611e5c770a42f3330b5 |
|
09-Nov-2011 |
Conley Owens <cco3@android.com> |
Remove unused variable This unused variable breaks the build in an Ubuntu 11.10 environment. Change-Id: Ieeb206d1a3689217070cfb8e8dee8a2c9c467b44
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
fbfd7f5fd97458b6b23437556025ac1d55e98fd4 |
|
28-Oct-2011 |
Stephen Hines <srhines@google.com> |
resolved conflicts for merge of f736d5a1 to ics-mr1 Change-Id: If31e6d49af2571458500f42f8cc2310758dfaa26
|
f736d5a12269e7e74740b130cdca98d9839b31e6 |
|
27-Oct-2011 |
Stephen Hines <srhines@google.com> |
Add back pre-ICS support for "int root(int);". BUG=5521638 Change-Id: Ic1f3c071562c687a98125c2151e306313c5405b8
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
9207a2e495c8363606861e4f034504ec5c153dab |
|
21-Oct-2011 |
Logan Chien <loganchien@google.com> |
Apply changes to migrate to LLVM upstream Oct 20th 2011. - StructType::isAnonymous is renamed to StructType::isLiteral. - PassManagerBuilder has been moved from llvm/Support/PassManagerBuilder.h to llvm/Transforms/IPO/PassManagerBuilder.h - Include llvm/Transforms/IPO.h for llvm::createInternalizePass. - clang::DiagClient has be renamed to clang::DiagnosticConsumer. Besides, we have to implement one additional pure virtual method 'clone' for create a clone of slang::DiagnosticBuffer. - llvm::Linker::LinkModules comes with one additional parameter. Passing llvm::Linker::DestroySource should be equivalent to the old code we were using. - slang::Slang is now derived from clang::ModuleLoader and implemented loadModule pure virtual method (though we will always return NULL.) - clang::Preprocessor is taking one additional parameter for clang::ModuleLoader. - clang::Diagnostic has been changed. A lot of the method has been moved to clang::DiagnosticsEngine, and we can no longer 'Report' a diagnostic from clang::Diagnostic. We have to use clang::DiagnosticEngine instead. - llvm::setCodeModel has been removed. Change-Id: I1f2a4cbeaf61a8ed1d0d635a5a0e1baa90d99d07
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
12580dcd125d958bff87385ab13599ad01bd8aea |
|
11-Oct-2011 |
Stephen Hines <srhines@google.com> |
Generate an error for skipped root() params in HC. BUG=5439760 Change-Id: Ie41ef5feac1637c8fe146f065416f3d33527b0bb
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
688e64b2d56e4218c680b9d6523c5de672f55757 |
|
24-Aug-2011 |
Stephen Hines <srhines@google.com> |
Generate .rs.dtor() to clean up globals. BUG=5186750 Change-Id: I9d1996153fe774a5ce95646a8a2e07aa6e7fa85f
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
4ccf75e55fe460a8daa49247d7e5a797329c71a6 |
|
17-Aug-2011 |
Stephen Hines <srhines@google.com> |
Fix up parsing of root() function arguments. BUG=5076887 Change-Id: I6ef41ebd237c864e46beee26f5952879d3712819
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
b69aa6557572c9ca91c46add3016962af0c993e7 |
|
22-Jul-2011 |
Stephen Hines <srhines@google.com> |
Fix double delete (from RSExportable during teardown). I should not have attempted to delete the storage in this case. At this point in compilation, we have already appended it to a list of objects to be cleaned up. This results in a mistaken double deletion of the same object, which in turn causes the compiler to seg fault (instead of terminating nicely). Change-Id: I479153e146ef3ed3a5c728494c35d7d2b75fc292
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
1688a3c56851f235866d6870c89ddb20650cc030 |
|
22-Jun-2011 |
Shih-wei Liao <sliao@google.com> |
In syncing to 133163, now clang::FieldDecl::Create has 1 more parameter. Namely, HasInit at the end of parameter list. Change-Id: I9eaf1dc4a539011a9e4a3ded8870e7d450450703
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
b5a89fbfcba6d8817c1c3700ed78bd6482cf1a5d |
|
17-May-2011 |
Stephen Hines <srhines@google.com> |
Clean up forEach reflection code. BUG=4203264 Change-Id: I8196608408fe333bd8e875d9517b8e875bdce17d
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|
593a894650e81be54173106ec266f0311cebebd3 |
|
11-May-2011 |
Stephen Hines <srhines@google.com> |
Simple support for reflecting rsForEach(). BUG=4203264 Change-Id: Idf722ee3fb07c8e46ac0c4628e753ff2fa6840cf
/frameworks/compile/slang/slang_rs_export_foreach.cpp
|