3a6750f246eed4168351786074691e8eeee5b175 |
|
29-Mar-2017 |
David Gross <dgross@google.com> |
Fix for crashes and failures due to 32-bit x86 struct layout. Add explicit padding to structure types, including invokable function parameter structure types. The padding does not change field offset or structure size -- it makes explicit any padding that was implicit due to the ABI. This ensures that if the frontend compiles for an ABI with stricter alignment requirements than the backend compiles for, the frontend and backend will still agree on structure layout (field offset and structure size). This is important for 32-bit x86: The frontend compiles for 32-bit ARM ABI, in which 64-bit scalars are 64-bit aligned; but the 32-bit x86 ABI says that 64-bit scalars are only 32-bit aligned. (Ideally, we would pad only exported structure types; but the most convenient time to insert the padding is as soon as a structure type definition is complete, so that we don't have to modify the AST to update references to the structure's fields. Unfortunately, this is long before we can tell whether or not a structure type is exported.) We had partial fixes for the 32-bit x86 problem in the backend (bcc), but they were incomplete. They compute field offsets according to the ARM layout (thereby compatible with the frontend, including reflected code and Allocation cell size) rather than the x86 layout; but: - A stack-based local variable was allocated according to the (potentially smaller) x86 size rather than the ARM size, whereas field accesses occurred at ARM offsets, potentially spilling off the end of the local variable. - Despite the old fixes, certain analyses/transformations (for example, certain loop optimizations) look at structure sizes and field offsets according to x86 rules rather than ARM rules Also, for the benefit of libbcc change https://android-review.googlesource.com/#/c/358954/ make slang header files available as a module "slang_headers". Bug: http://b/29154200 Bug: http://b/28070272 Test: (aosp_x86_64-eng emulator, full_fugu-eng, aosp_angler-eng) x (RsTest 32-bit, RsTest 64-bit, cts -m RenderscriptTest) tests/slang_test.py lit-tests/run-lit-tests.sh RsTest includes forthcoming additional regression tests: https://android-review.googlesource.com/#/c/299370/ Tried (unmodified slang, modified bcc) and ( modified slang, unmodified bcc) and ( modified slang, modified bcc) By instrumenting modified bcc, confimed that: - Special x8632 layout transformations only run with unmodified slang, and only when test is compiled for x8632. "Modified bcc" is a forthcoming bcc change to turn off the "partial fixes" (x8632 layout transformations) mentioned above, and to verify that front end (Module) and back end (TargetMachine) agree on the layout of every exported struct type: https://android-review.googlesource.com/#/c/299531/ Change-Id: I25aac8e88812b5d3198e99f1929d4908ce663c46 (cherry picked from commit 37dbf5c324322fe2458e63e3fa869fbf903ec6fd)
/frameworks/compile/slang/slang_rs_export_type.h
|
ef1707027a18ed0d91a3854476db71024ae0e6da |
|
15-Sep-2016 |
I-Jui (Ray) Sung <ijsung@google.com> |
Revised ODR validation flow; added more ODR tests Changed ODR validation logic to report errors on the tightest enclosing type; fixed inconsistent diagnostic messages for F_odr_nested_records_2 and F_odr_nested_records_3. Also changed expected diagnostic message for F_one_definition_rule8 for the same. Removed unused RSExportable::equals(), as it is not used outside RSExportType and subtypes, and is only for ODR matching. Renamed most equals() to matchODR() for clarifying the intent and simplified the logic in checkODR(). More ODR validation test cases: on fields and their type names including record-typed fields and fields of built-in types, and struct-of-array-of-structs. Test: RsTest, CTS and slang test.py for angler_aosp-eng Change-Id: I1703ecc0ab2995e0bfdfa1de33ea02cd63d99a7d
/frameworks/compile/slang/slang_rs_export_type.h
|
277fd5e6545c8ba1272027ee6e6bc55a96316dc0 |
|
14-Jan-2016 |
David Gross <dgross@google.com> |
Add Java reflection for "#pragma rs reduce". Also: - test.py now recognizes "Script*.java.expect" files as masters for comparing reflected code the same way "stderr.txt.expect" and "stdout.txt.expect" are masters for comparing compiler stderr and stdout. - gReflectionTypes[] now has a '"common name" in script (C99)' column (e.g., "short" is the common name by which a type appears in script code, in contrast with "int16_t" which is the name by which a type is reflected in NDK code). Bug: 23535724 Change-Id: I7960968bb98a17e33fe23415f7927cac537b72a3
/frameworks/compile/slang/slang_rs_export_type.h
|
2907b2a2768bc32f75867513528c8d7419e44780 |
|
22-Dec-2015 |
David Gross <dgross@google.com> |
Minor miscellaneous cleanup to type export facility. (This is needed by general reduction.) DETAILS: Make certain functions const-clean. TypeExportable() needs to recognize that it cannot export function types, rather than asserting if it sees them. Add comments to gReflectionTypes[] for readability. When attempting RSExportType::Create(), allow a variable "containing" the type (not "of" the type) to be specified. This is important because certain error message reporting absolutely requires the variable to be known -- such as when ConstantArrayTypeExportableHelper() wants to report something like "multidimensional arrays cannot be exported". Change-Id: Iff49effdf7cb71184af5846217fde5a493ce61e9
/frameworks/compile/slang/slang_rs_export_type.h
|
048eb8a363270f088ee8e6879bc6620cfe97392d |
|
17-Dec-2015 |
David Gross <dgross@google.com> |
Merge "Cleanup: RSExportType::getSize() has inconsistent semantics."
|
657d20afa621219c1eed72178d1325fd4409f458 |
|
17-Dec-2015 |
David Gross <dgross@google.com> |
Cleanup: RSExportType::getSize() has inconsistent semantics. This is a virtual method with different semantics for different classes in the type hierarchy: RSExportPrimitiveType: Returns number of bytes occupied by type RSExportPointerType: Returns 1 RSExportVectorType: Returns number of bytes occupied by one element (i.e., of the component type) RSExportMatrixType: Returns 1 RSExportConstantArrayType: Returns the number of array elements RSExportRecordType: Returns 1 The fix is to replace this method with methods whose names indicate their actual semantics. Bug: 26235282 Change-Id: Ic7c5cfd1b73a0b6e7e6fd4ed0495de3877adf0e8
/frameworks/compile/slang/slang_rs_export_type.h
|
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_type.h
|
7682b663581dd8f67b422f6f2f31692ab2f870e3 |
|
31-Jul-2015 |
Matt Wala <wala@google.com> |
Add Java reflection for reduce-style kernels in slang. Bug: 22631253 Change-Id: I43de647a45c02d51cb256d206b64e159daf13864
/frameworks/compile/slang/slang_rs_export_type.h
|
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_type.h
|
fe41c8da501e5a742f1aa6fade2592b4b80bca3b |
|
06-Sep-2014 |
Stephen Hines <srhines@google.com> |
am 340b5550: Fix dangling reference to a local std::string. * commit '340b5550cf63b6beae3b12c2e91377bce7704c34': Fix dangling reference to a local std::string.
|
340b5550cf63b6beae3b12c2e91377bce7704c34 |
|
05-Sep-2014 |
Stephen Hines <srhines@google.com> |
Fix dangling reference to a local std::string. Bug: 16031597 llvm::StringRefs are just lightweight wrappers around strings, and don't retain/own any of the storage for the actual underlying string. This causes lifetime issues if any local std::string objects that are then wrapped by llvm::StringRef ever escape. When the local object goes out of scope, we are left with a dangling reference. Valgrind helped us to catch this happening for constant array exports, which only ever use a statically named "<ConstantArray>" reference, so we can simply replace it with static C string (wrapped by llvm::StringRef). Change-Id: I0a9fae2687bc9f53d091d56cf15f99bb75ca46e4
/frameworks/compile/slang/slang_rs_export_type.h
|
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_type.h
|
a6bce2db689b1ad086860ed3f5845a00489e3a49 |
|
05-Aug-2014 |
Tim Murray <timmurray@google.com> |
Fix two bugs for 64-bit slang. The first is to handle structs in invoke parameter lists by assuming struct and not struct*. The second is to not cache LLVM types for RS object types because it breaks on 64-bit compilation. Cherry-pick of d56a92fc2b1d417ce53d9550548fe1661fa37d40 Change-Id: I26d7dd7395ef0146eb84d43cbec5cf8d49d09697
/frameworks/compile/slang/slang_rs_export_type.h
|
d56a92fc2b1d417ce53d9550548fe1661fa37d40 |
|
05-Aug-2014 |
Tim Murray <timmurray@google.com> |
Fix two bugs for 64-bit slang. The first is to handle structs in invoke parameter lists by assuming struct and not struct*. The second is to not cache LLVM types for RS object types because it breaks on 64-bit compilation. Change-Id: I26d7dd7395ef0146eb84d43cbec5cf8d49d09697
/frameworks/compile/slang/slang_rs_export_type.h
|
796e7b1400d3f3f7c07496d88bb48129ea925bb9 |
|
27-May-2014 |
Jean-Luc Brouillet <jeanluc@google.com> |
Remove useless "return;" statements. More cleanups to follow... Change-Id: Ib8348255273771c1e9ff07e79bd7fbc8f2795a5b
/frameworks/compile/slang/slang_rs_export_type.h
|
b095e05fef8f0230ab42eaed7a06c3b2d698189a |
|
17-May-2014 |
Jean-Luc Brouillet <jeanluc@google.com> |
Replace macros with equivalent inline functions. Change-Id: Ibb9db8ffe20513ca1ec56403c632e10e82a4fe86
/frameworks/compile/slang/slang_rs_export_type.h
|
01321838204e213b314f7d6fa5bfc1f94dbf347e |
|
23-May-2014 |
Jean-Luc Brouillet <jeanluc@google.com> |
Remove obsolete comments Change-Id: I30ca59ef860fbc976b8fe6bc21cbd50146b19a6a
/frameworks/compile/slang/slang_rs_export_type.h
|
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_type.h
|
c95381a2c3b6e9117901eef0687e861e4d533bfe |
|
15-May-2014 |
Jean-Luc Brouillet <jeanluc@google.com> |
Make virtual getTypeStoreSize and getTypeAllocSize Change-Id: I898d7b21d7856559e75d80c6147fc4b4229c75dd
/frameworks/compile/slang/slang_rs_export_type.h
|
cec9b65aa890dea58e39951900ae13efb8d11703 |
|
15-May-2014 |
Jean-Luc Brouillet <jeanluc@google.com> |
Move DataType enum out of RSExportPrimitiveDataType. It applies to more than just Primitives and should not have been in there. Change-Id: If2b6a9d2a87a05176a74bcf7212f65cf1cdf67fe
/frameworks/compile/slang/slang_rs_export_type.h
|
2354442e34a47e27dad019df96062c7f620e853a |
|
15-May-2014 |
Jean-Luc Brouillet <jeanluc@google.com> |
Remove obsolete unused code Change-Id: Iead651dc9e0321d36bb653bc178ac1a9af6d34f9
/frameworks/compile/slang/slang_rs_export_type.h
|
474655a402e70cb329e1bcd4ebbe00bdc5be4206 |
|
29-Apr-2014 |
Jean-Luc Brouillet <jeanluc@google.com> |
Remove rs_spec_gen and associated macros. Also, enable new data types to be defined, out of order. More CLs are coming to continue refactoring the code and removing duplication. modified: Android.mk deleted: RSSpec.mk modified: slang_rs_export_element.cpp modified: slang_rs_export_type.cpp modified: slang_rs_export_type.h modified: slang_rs_metadata_spec_encoder.cpp modified: slang_rs_object_ref_count.cpp modified: slang_rs_object_ref_count.h deleted: slang_rs_spec_table.cpp modified: slang_rs_type_spec.h Change-Id: I3eb3e4357bbe9af26011df714795de8e495fec68
/frameworks/compile/slang/slang_rs_export_type.h
|
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_type.h
|
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_type.h
|
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_export_type.h
|
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_export_type.h
|
1f6c331d622ac645ab68a016aa4c577998547373 |
|
04-Jul-2012 |
Stephen Hines <srhines@google.com> |
Fix reflection of setters for unsigned primitive types. BUG=6764163 We now generate set_*() functions for unsigned types by creating a single element FieldPacker and stuffing it with the larger Dalvik type. Reusing FieldPacker in this way allows us to validate that the input is non-negative and within the appropriate range (i.e. not really using more bits than the unsigned C type should). This change also fixes a subtle race where the Dalvik and script side can disagree about a variable's value. All set_*() methods need to be synchronized, and we must do the Dalvik update after validating the input data. Change-Id: I7b2371206848ebbf0b0752779cb6c98cec1ab5f6
/frameworks/compile/slang/slang_rs_export_type.h
|
0d26cef64debfaa6862a27587c1fd0d30baa3b1d |
|
02-May-2012 |
Stephen Hines <srhines@google.com> |
Refactor using genSetExportVariable(). BUG=6009244 Change-Id: I3c830b84c6f863faed8e36da625447bdf416579e
/frameworks/compile/slang/slang_rs_export_type.h
|
a6b54146b93eec68f6daa4b1877639cdc34801dc |
|
10-Apr-2012 |
Stephen Hines <srhines@google.com> |
Reflect element/dim information for FieldPacker. BUG=6009244 Change-Id: Ie24b3ce17817b98e8b651f7ec1304dcd18c8c062
/frameworks/compile/slang/slang_rs_export_type.h
|
d5a84f6d49d64738e4bb7c9dea7242e48acad959 |
|
05-Apr-2012 |
Stephen Hines <srhines@google.com> |
Generate an error when exporting RS objects in structs/arrays. BUG=6009244 Note that this error triggers when the following conditions are met: 1) We are running with a pre-JB target API. 2) We detect an RS object type inside another composite (struct/array) type. 3) The variable is going to be exported (i.e. non-static). 4) The variable must also be of a non-pointer type, since pointers only reflect a bind() routine that does not use FieldPacker. Change-Id: Id7ca47a4affed2a8774d1c9644e11d4ab02ff27f
/frameworks/compile/slang/slang_rs_export_type.h
|
5bfec8dd08b3bde9ba3b331e2115210b0e910eae |
|
04-Apr-2012 |
Stephen Hines <srhines@google.com> |
Revert "Generate an error for exporting rs_objects in structs/arrays." This reverts commit f5abb503e67587ad89bcec99ed925d4a75448dcd
/frameworks/compile/slang/slang_rs_export_type.h
|
f5abb503e67587ad89bcec99ed925d4a75448dcd |
|
04-Apr-2012 |
Stephen Hines <srhines@google.com> |
Generate an error for exporting rs_objects in structs/arrays. BUG=6009244 This is only an error in pre-JB builds that can't support proper ref-counting within a FieldPacker. Change-Id: Ib96b5ec2befa48ec44890391e518ad557e9a9117
/frameworks/compile/slang/slang_rs_export_type.h
|
1b6a0883cd6984e11e59b0c847fb334df1f41afc |
|
12-Mar-2012 |
Jason Sams <jsams@google.com> |
start cpp reflection BUG=5972398 Change-Id: Iede58fde457d16293345e741f80109f89e653ad5
/frameworks/compile/slang/slang_rs_export_type.h
|
2b8fb64be3047df940a219872b331eb11de2758d |
|
09-Mar-2012 |
Stephen Hines <srhines@google.com> |
Removing DataKind completely from llvm-rs-cc. BUG=5972398 Change-Id: I76fdb98fa60bd70468d088f9034acf00e443d6c8
/frameworks/compile/slang/slang_rs_export_type.h
|
fdd1ba13a69501a1b91fdc9be31413215d467497 |
|
09-Mar-2012 |
Stephen Hines <srhines@google.com> |
Add getRSReflectionType to facilitate new C++ code. BUG=5972398 Change-Id: I5d1efdbde6eb0b7bb139bdf672a056a4aa5f26e1
/frameworks/compile/slang/slang_rs_export_type.h
|
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_type.h
|
ecddee364d731c09c77b4c3fa647fa4f50e26756 |
|
21-Jul-2011 |
Stephen Hines <srhines@google.com> |
Fix style issues. Change-Id: I646b5232cfac772c5a310b62f435a2cc79b2c831
/frameworks/compile/slang/slang_rs_export_type.h
|
7c67e578c760408dba0c2f64da6e074dd8b56fd9 |
|
19-Jul-2011 |
Shih-wei Liao <sliao@google.com> |
Apply changes to migrate to upstream API. Change-Id: Ibe6060a0d1c42b9725524de7f4cb95551b711717
/frameworks/compile/slang/slang_rs_export_type.h
|
78e69cb06b9b0683b2ac9dcafde87b867690ef2f |
|
23-Apr-2011 |
Stephen Hines <srhines@google.com> |
Forbid RS objects from being contained in unions. This change also refactors variable validation in general for RS. BUG=4283858 Change-Id: I4527986a07c9cf2babdc5b855cdb1f00e3535d5b
/frameworks/compile/slang/slang_rs_export_type.h
|
f2174cfd6a556b51aadf2b8765e50df080e8f18e |
|
10-Feb-2011 |
Stephen Hines <srhines@google.com> |
Handle struct reference counting. Bug: 3092382 Change-Id: I215bd8245324ec2b7752a7c40817e3e5cd1c0e00
/frameworks/compile/slang/slang_rs_export_type.h
|
feaca06fcb0772e9e972a0d61b17259fc5124d50 |
|
04-Feb-2011 |
Stephen Hines <srhines@google.com> |
Zero-initialize structs containing RS objects. Bug: 3092382 Change-Id: I2fd80777db7ed52d8c0a1a598567399e08ce06a2
/frameworks/compile/slang/slang_rs_export_type.h
|
b3a12fe7c18a06f99201dc491a932a90ab7d975c |
|
27-Jan-2011 |
Stephen Hines <srhines@google.com> |
Add Slang support for rs_object_slots metadata. This is added to support proper cleanup of RS resources. We were leaking some global resources because there was no way to tell which slots to clear. Change-Id: Ib452facb1b83d1f2aecd9686f46ef726e427161d b: 3381615
/frameworks/compile/slang/slang_rs_export_type.h
|
2ef9bc0cfbca2152d972c0975005f8c897c2a42c |
|
14-Dec-2010 |
Stephen Hines <srhines@google.com> |
Convert fprintf -> diagnostic messages. Proper support/test for multi-level pointer types. Proper diagnostics for bit fields, which are currently not supported. Bug: 2954471 Change-Id: I347f14f02fcf7fbef9f6e5dde5b4e948391a0691
/frameworks/compile/slang/slang_rs_export_type.h
|
dd6206bb61bf8df2ed6b643abe8a29c48a315685 |
|
10-Dec-2010 |
Stephen Hines <srhines@google.com> |
Arrays of width 3 vector types cannot be exported. Bug: 3171195 Change-Id: I7deab4ab9c7f8650bce7c597fae2a0dc013f6f71
/frameworks/compile/slang/slang_rs_export_type.h
|
e5e64432476a44b59c61ded233b1149109c7a7c3 |
|
03-Dec-2010 |
Stephen Hines <srhines@google.com> |
Improved error messages for structs. This change also adds two new tests for anonymous structures (both with and without an associated typedef). I have also updated test.py to support a more verbose output for dumping the actual test commands that are executed. Change-Id: Ic1edc8d4e98c2017611430eb581c335146ccc927
/frameworks/compile/slang/slang_rs_export_type.h
|
c808a99831115928b4648f4c8b86dc682594217a |
|
30-Nov-2010 |
Stephen Hines <srhines@google.com> |
Add prelim error check for pointers in structs. Bug: 2954471 Change-Id: Icacf67dd3eeb3dda67e1eae3d54e11f7efa6c680
/frameworks/compile/slang/slang_rs_export_type.h
|
e639eb5caa2c386b4a60659a4929e8a6141a2cbe |
|
09-Nov-2010 |
Stephen Hines <srhines@google.com> |
Improve code style. Change-Id: I26e043849bce2a4b41ae132fbe0c882f4a6f112f
/frameworks/compile/slang/slang_rs_export_type.h
|
b1771ef128b10c4d4575634828006bfba20b1d9c |
|
22-Oct-2010 |
Zonr Chang <zonr@google.com> |
Exclude rs_matrixNxN from being RS object type. rs_matrix{2x2, 3x3, 4x4} (RS matrix type) is very different than RS object type like rs_allocation. This commit teaches llvm-rs-cc to learn it. NOTE: Currenrly RS matrix type + RS object type = RS specific type.
/frameworks/compile/slang/slang_rs_export_type.h
|
a7a828d1ff95c5a8f2327f56a137a2bcb3a9a8fa |
|
21-Oct-2010 |
Zonr Chang <zonr@google.com> |
Add convertToSpecType() for every RSExportType derivative. convertToSpecType() can convert a RSExportType (used by llvm-rs-cc internally for reflection engine) into union RSType (used by external source such as libbcc) defined in the slang_rs_type_spec.h.
/frameworks/compile/slang/slang_rs_export_type.h
|
3cd3dd327445fcfa49f0e96cb2de2055bce541e9 |
|
21-Oct-2010 |
Zonr Chang <zonr@google.com> |
Bug fix: support self-referential struct type.
/frameworks/compile/slang/slang_rs_export_type.h
|
7363d8430db732c42d392fcab47cf0e3f8eb4515 |
|
21-Oct-2010 |
Zonr Chang <zonr@google.com> |
Revert "Bug fix: support self-referential struct type." This reverts commit af5cef07b48a678a416d554b037e0d6dbe958eb4.
/frameworks/compile/slang/slang_rs_export_type.h
|
d6f9fedf1b32c27c0bcaddd13d7b741ab5ad74b8 |
|
21-Oct-2010 |
Zonr Chang <zonr@google.com> |
Bug fix: support self-referential struct type.
/frameworks/compile/slang/slang_rs_export_type.h
|
a65ec168e41e3ee9c6e8ac04cde694bbbfc2590a |
|
16-Oct-2010 |
Zonr Chang <zonr@google.com> |
Unify type spec by creating rs-spec-gen. rs-spec-gen (slang_rs_spec_table.cpp) will help llvm-rs-cc to share the RS spec it used across the other projects. This will makes code cleaner and therefore easier to add new spec/synchronize the spec between other project (e.g., libbcc and libRS). This CL is the first part. It eliminated the needs of slang_rs_export_element_support.inc and slang_rs_export_type_support.inc.
/frameworks/compile/slang/slang_rs_export_type.h
|
641558f02fe6ce0ee3ae5076eb366c25e2ad5903 |
|
12-Oct-2010 |
Zonr Chang <zonr@google.com> |
Implement one-definition-rule (ODR) feature. When compiling multiple RS files, we say two RS files A and B break ODR iff: 1. They have at least one common struct named [S] and [S] will be reflected to ScriptField_[S].java, and 2. [S] defined in A is not *exactly the same* (number of fields, field type and field name) as the one defined in B. This CL detects such error.
/frameworks/compile/slang/slang_rs_export_type.h
|
c383a500aa59423264811be3874461bf8adbfea0 |
|
11-Oct-2010 |
Zonr Chang <zonr@google.com> |
Prepend legal announcement in all files. Release libslang/llvm-rs-cc/llvm-rs-link under Apache 2.0 license.
/frameworks/compile/slang/slang_rs_export_type.h
|
a5d2c232d56b04292cb51c8fb343aef990f7970f |
|
12-Oct-2010 |
Stephen Hines <srhines@google.com> |
Support for unsigned long and unsigned long long. Change-Id: I8e3b6a90fa9119f3d98c5f276df2590b7690d22b
/frameworks/compile/slang/slang_rs_export_type.h
|
a41ce1d98094da84643995d40d71c529905123fc |
|
05-Oct-2010 |
Zonr Chang <zonr@google.com> |
Fix memory leak of RSExport* object create in processExport(). Now, they will properly be freed after their associated RSContext was destroyed.
/frameworks/compile/slang/slang_rs_export_type.h
|
6b6320ad5faee29e0f75fe937e40156746ef9e80 |
|
05-Oct-2010 |
Zonr Chang <zonr@google.com> |
De-virtualize the RSExportType::getClass().
/frameworks/compile/slang/slang_rs_export_type.h
|
2e1dba6c779a0ae55c76d36a3c03553e16725ab7 |
|
05-Oct-2010 |
Zonr Chang <zonr@google.com> |
Rewrite the RSExportConstantArrayType to better support reflecting constant-sized array variable.
/frameworks/compile/slang/slang_rs_export_type.h
|
0da0a7dc51c25943fe31d0bfccbdfee326a3199c |
|
05-Oct-2010 |
Zonr Chang <zonr@google.com> |
1. Rewrite reflection of parameter packet in RSExportFunc. In order to generate the correct call (i.e., all parameters in the call instruction must match the target function signature) regardless of ABI, we construct type of parameter packet directly from target function prototype (which may not be the same as the one declared in the source since Clang may modified it to the type which is better supported by the target ABI.) 2. Rewrite reflection of RSExportRecordType to use clang::ASTRecordLayout. This corrects the reflection of struct type when tail padding and field alignment involve. This improves stability of RSExportRecordType reflection.
/frameworks/compile/slang/slang_rs_export_type.h
|
92b344a51c6c4934e96882bd401e4b13d6d03db8 |
|
05-Oct-2010 |
Zonr Chang <zonr@google.com> |
Create RSExportMatrixType which is a subclass of RSExportType to support rs_matrix{2x2,3x3,4x4} explicitly.
/frameworks/compile/slang/slang_rs_export_type.h
|
6315f76e3cc6ff2d012d1183a0b030d4ff0dc808 |
|
05-Oct-2010 |
zonr <zonr@google.com> |
More coding style fixing to improve the readability. No actual semantics changed. This also makes cpplint happy.
/frameworks/compile/slang/slang_rs_export_type.h
|