d80e58b259c2febc4907aed4aca9d88d43bdd1a1 |
|
24-Jul-2017 |
David Gross <dgross@google.com> |
Improve Java reflection for 32-bit versus 64-bit differences. Bug: 32780232 Bug: 20260865 Bug: 21597073 By default, when targeting API L or above, we support both 32-bit and 64-bit targets. We do so by running two compilation passes -- a 32-bit compilation pass followed by a 64-bit compilation pass. We generate reflected Java code as part of the 64-bit compilation pass. This can cause problems if there are "significant" differences between the user's script (.rs file) as seen during 32-bit compilation compared to 64-bit compilation -- for example, rs object handles (such as rs_allocation and rs_element) are different sizes, the type size_t is a different size, and a user can create arbitrary differences by using the __LP64__ macro. If any of those differences affect reflected code (for example, by changing exported types), then we may get incorrect runtime behavior on 32-bit targets. At present we do have some special processing for rs object handles. However, we don't properly address all cases -- for example, when an rs object handle is a field of a struct or an argument to an invokable function, reflected code does not get the layout of the struct or argument list correct on 32-bit targets. We also make no attempt to address any other differences (such as size_t or __LP64__). This CL is intended to fully address 32-bit versus 64-bit reflection issues: 1) Fully handle rs object handle size differences when laying out data (such as structs and invokable function argument lists). 2) Emit errors for any other differences between 32-bit and 64-bit compilation that would require changes to reflected code (for example, no exported global may be of type size_t). We solve these problems as follows: a) As part of the 32-bit compilation pass, execute (most of) the same code paths we would use to generate reflected code, but instead of actually generating reflected code, collect information for later. b) When we generate reflected code as part of the 64-bit compilation pass, we consult the information collected during the 32-bit compilation pass in order to do target sensitive data layout and to emit errors for intolerable 32-bit versus 64-bit differences. This CL requires changes to the compatibility library (in frameworks/rs). Test: many - slang/lit-tests - slang/test - RsTest aosp_x86_64-eng (aosp, emulator) 32-bit and 64-bit - cts aosp_x86_64-eng (aosp, emulator) RenderScript and CtsRsCppTestCases - RSTestBackward - aosp_arm-eng - n9 LMP MR1 Release (LM) - angler MNC DR Release (MD) - aosp_arm64-eng - n9 LMP MR1 Release (LM) - angler MNC DR Release (MD) - RSTest_Backward19 - aosp_arm-eng - n5 KLP MR2 Release (KT) - n9 LMP MR1 Release (LM) - angler MNC DR Release (MD) - RSTest_CompatLib - aosp_arm-eng - n9 LMP MR1 Release (LM) - angler MNC DR Release (MD) - aosp_arm64-eng - n9 LMP MR1 Release (LM) - angler MNC DR Release (MD) - aosp_x86-eng - emulator aosp - aosp_x86_64-eng - emulator aosp - RSTest_Compat19 - aosp_arm-eng - n5 KLP MR2 Release (KT) - n9 LMP MR1 Release (LM) - angler MNC DR Release (MD) - aosp_x86 - emulator aosp Change-Id: I5d1fc51e35693588dff05afa48e1a4902859036e
/frameworks/compile/slang/slang_rs_export_type.cpp
|
63e610873b9538797bbe26234aa50d5d0869d938 |
|
13-Jul-2017 |
David Gross <dgross@google.com> |
Record SourceLocation in exportables. This will be used by some upcoming work to verify consistency between 32-bit and 64-bit compilation during the reflection processs. Having the SourceLocation available will allow diagnostics to be more useful. Bug: 32780232 Bug: 20260865 Bug: 21597073 Test: aosp_x86_64-eng slang/tests, slang/lit-tests, RsTest (32-bit, 64-bit) Change-Id: I1dfee385f5b5a85df8eae9bcb5589c487838c7d7
/frameworks/compile/slang/slang_rs_export_type.cpp
|
fb5cb9d4dd9108606f15ef5e2785bc19574b3a0d |
|
10-May-2017 |
Luis A. Lozano <llozano@google.com> |
Fixed rest of null pointer warnings. Fixed "warning: Called C++ object pointer is null" remaining instances. Add slangAsserts in the appropriate places and remove redundant checks. Bug: b/27101951 Test: slang/tests/slang_test.py and verified warnings are gone. Change-Id: I973fc6c62403b5a27f1bf08edb8857309189cc8a
/frameworks/compile/slang/slang_rs_export_type.cpp
|
e1ee54e9548271704f50b9b1fc34bb9a5816f3e0 |
|
19-Apr-2017 |
Luis A. Lozano <llozano@google.com> |
Fixed some null pointer warnings. Fixed "warning: Called C++ object pointer is null" instance. The pointer is not supposed to be null at entrance to the routine or after the call to getArrayElementTypeNoTypeQual(). Bug: b/27101951 Test: slang/tests/slang_test.py and verified warning is gone. Change-Id: Id17c958339aad175781cac97493d5cd87ba96cc7
/frameworks/compile/slang/slang_rs_export_type.cpp
|
37dbf5c324322fe2458e63e3fa869fbf903ec6fd |
|
29-Mar-2017 |
David Gross <dgross@google.com> |
Fix for crashes and failures due to 32-bit x86 struct layout. (Revert "Revert "Fix for crashes and failures due to 32-bit x86 struct layout."" This reverts commit 871eb011c1b5e9474ea021a4096824669b765b32.) 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
/frameworks/compile/slang/slang_rs_export_type.cpp
|
17e3baa8b9504eece8ead022cf51e7a8e3fe25d0 |
|
22-Feb-2017 |
Luis A. Lozano <llozano@google.com> |
Disable "Potential leak of memory" warning. Clang static analizer complains there is a potential memory leak for the memory pointe by ERT. However, the pointer to this memory is saved away in the constructor for RSExportRecordType (by calling RSContext::newExportable()). Bug: 27101951 Test: Verified warning is not generated anymore. Change-Id: If227e80d770532cb3e32e5aca6bcc8e7da523b85
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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_type.cpp
|
d028326114b1cd80d5c38d4f5c850b46f7e7d483 |
|
27-Sep-2016 |
I-Jui (Ray) Sung <ijsung@google.com> |
Merge "Revised ODR validation flow; added more ODR tests"
|
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.cpp
|
281b83d4404ed63f7f3c82647d926e8aaf3380c8 |
|
15-Sep-2016 |
David Gross <dgross@google.com> |
Issue error for exported pointer-to-function or pointer-to-array. We do not support exporting a pointer-to-function or a pointer-to-array. We correctly issued an error when attempting to export pointer-to-function if the function has a prototype, but not if the function lacks a prototype. We do a recursive export check on the pointee type, which had a case for clang::Type::FunctionProto, but not for clang::Type::FunctionNoProto. This eventually caused an assertion slangAssert failed at frameworks/compile/slang/slang_rs_export_type.cpp:416 - 'false && "Unknown type cannot be validated"' In the case of attempting to export pointer-to-array, we detected it and exited some of the exporting logic early, but we never issued a diagnostic, and we eventually got a compile time segmentation violation. Test: aosp_flounder-eng: slang/tests, RsTest 32bit/64bit, cts -m RenderscriptTest Bug: 29124608 Change-Id: I8a5f83829f965de0ece4929662c288594543009f
/frameworks/compile/slang/slang_rs_export_type.cpp
|
2d7f3f95947889e1ea48b0e925c5929af4fbf6b4 |
|
10-Mar-2016 |
David Gross <dgross@google.com> |
Flesh out reduction support for half data types. Also extended test cases for more thorough data type coverage (including non-half data types). Details: - Bug fixes. - Result type can be vector of half or array of vector of half. - Full reflection support for [array of] [vector of] half input or result. Bug: 27299169 Change-Id: Id674ae2ea2cce6215f152fd62bb5b124c44cfcd3
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.cpp
|
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.cpp
|
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.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_type.cpp
|
5f3da4bf52b327dbf5b6a33f340196f43d542159 |
|
21-Oct-2015 |
Nicolas Collin <nicolas.collin@imgtec.com> |
Extend C++ reflection layer constant arrays and fix matrix types. Correct the naming of the matrix types to use the correct case and extend support for constant array types. Add two related tests P_array_cpp and P_matrix_cpp. Change-Id: Ibceca26b01201fd4d1c85a3921ed2918fc458d59
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.cpp
|
33ea573b6df7b7fe48d2b68d4c479f33082e3c0d |
|
17-Jun-2015 |
Stephen Hines <srhines@google.com> |
Fix potential nullptr dereference. Bug: 21597073 We must use dyn_cast_or_null<> instead of dyn_cast<>, because we aren't guaranteed to always be passed a NamedDecl. Change-Id: I7b00eacc639a688f8e2fdbeea80b87a01372e232
/frameworks/compile/slang/slang_rs_export_type.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_type.cpp
|
e4dd17d7b2a292a600756da7680beecd78f74033 |
|
07-Apr-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Add Half support in slang Bug: 7342860 - Enable NativeHalfType and HalfArgsAndReturns for Langopts for API >= 23 - Add half and its vector variants to the list of reflected types - Use addF16 as the FieldPacker method for setting Float16 values. - Add tests that HalfArgumentsAndReturns is not enabled on API < 23. This should serve as an indirect test that NativeHalfType is also disabled. Change-Id: I164ff6f8a3ed206326b904afa5430230b97d41c8
/frameworks/compile/slang/slang_rs_export_type.cpp
|
3eb819ad8beec566a73b288204f9b75c2bb1d4e6 |
|
25-Nov-2014 |
Stephen Hines <srhines@google.com> |
Update slang for LLVM rebase to r222494. Change-Id: I19e441e193637ddb39b3afb3bc95579755ac0a90
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.cpp
|
a2324a90a6ea0522988f0753b6372249fa5f43db |
|
22-Aug-2014 |
Stephen Hines <srhines@google.com> |
am 03ec6ed2: am 10dc6f31: Merge "Replace the NULL macro with nullptr literal." * commit '03ec6ed2ecb9adf0cf125b0fa6c96844f093d4d0': Replace the NULL macro with nullptr literal.
|
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.cpp
|
e46265d27df092fbd911075403ec04d9c7ef8de1 |
|
18-Aug-2014 |
Tim Murray <timmurray@google.com> |
Fix unsigned long reflection with slang. bug 16846318 Change-Id: If6c207b757a716029aae58a6b12601e16c296438
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.cpp
|
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.cpp
|
9ae18b2bbee0b08afd400542e863dd665ff76059 |
|
11-Jun-2014 |
Stephen Hines <srhines@google.com> |
Add an option to emit 32-bit and 64-bit bitcode. Bug: 16031597 Change-Id: Ifb3c4eca5e7ae16106260c2b5f5da6854c021a3a
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.cpp
|
01321838204e213b314f7d6fa5bfc1f94dbf347e |
|
23-May-2014 |
Jean-Luc Brouillet <jeanluc@google.com> |
Remove obsolete comments Change-Id: I30ca59ef860fbc976b8fe6bc21cbd50146b19a6a
/frameworks/compile/slang/slang_rs_export_type.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_type.cpp
|
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.cpp
|
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.cpp
|
2354442e34a47e27dad019df96062c7f620e853a |
|
15-May-2014 |
Jean-Luc Brouillet <jeanluc@google.com> |
Remove obsolete unused code Change-Id: Iead651dc9e0321d36bb653bc178ac1a9af6d34f9
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.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_type.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_type.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_export_type.cpp
|
8de1922e037612f2521acac2f4c4289a9f71450d |
|
24-Aug-2013 |
Stephen Hines <srhines@google.com> |
Handle implicit array dimensions properly. Bug: 10461673 Change-Id: I681f918d89983522dd162d7f4606ed5811ab2560
/frameworks/compile/slang/slang_rs_export_type.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_export_type.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_type.cpp
|
b0fabe574945bfa85e688e77e9dcb5341fe08840 |
|
08-Jan-2013 |
Stephen Hines <srhines@google.com> |
Fix rs_matrix destructor issue. Bug: 7949301 This change fixes the destructor issue for rs_matrix types. We need to skip creating a destructor if there are no reference-counted RS object types in the struct. We still need to zero-init all RS object types (ref-counted or not, as is the case for rs_matrix*). I also fix another issue where a missing struct definition could cause an early parser crash (i.e. before the standard clang errors kick in and notice that you are using an undefined struct). Change-Id: If2009d96f35a8cb693431aaeae3cb4b5642695fa
/frameworks/compile/slang/slang_rs_export_type.cpp
|
fdae63e8142f56521813f59e0c506ed3a1636021 |
|
28-Nov-2012 |
Stephen Hines <srhines@google.com> |
Fix overly strict check for float3 in structures. We were accidentally being too strict and generating an error for float3 in structures, even when they were not exported. This change restores the original functionality. Change-Id: I8f0b5881d670c37a23ca2efc575440a083befcbe
/frameworks/compile/slang/slang_rs_export_type.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_export_type.cpp
|
b13b85e31ac978254cb1ed7653f149f8a3eef460 |
|
01-Sep-2012 |
Stephen Hines <srhines@google.com> |
Structs containing vectors of dimension 3 cannot be exported before ICS. BUG=5609007 BUG=34600 (http://code.google.com/p/android/issues/detail?id=34600) We forbid the use of things like float3 in exported structures for older target APIs, because it results in a runtime exception every time. This is due to not padding the elements appropriately on the driver-side, while the LLVM representation is padded. Change-Id: I297af3418e733f0ab3996999be4a8f746f24da40
/frameworks/compile/slang/slang_rs_export_type.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_type.cpp
|
aa82e74b08fcdc2e4e6c1f6796699566b331b656 |
|
11-Apr-2012 |
Stephen Hines <srhines@google.com> |
Multiple levels of pointers cannot be exported. Change-Id: I533d26827fa650a481df65b2e20ac6dbc3559244
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.cpp
|
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.cpp
|
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.cpp
|
1b6a0883cd6984e11e59b0c847fb334df1f41afc |
|
12-Mar-2012 |
Jason Sams <jsams@google.com> |
start cpp reflection BUG=5972398 Change-Id: Iede58fde457d16293345e741f80109f89e653ad5
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.cpp
|
47aca4e016665d333fdcd01a9cef16c13d7836a8 |
|
09-Mar-2012 |
Stephen Hines <srhines@google.com> |
More cleanup for reflection code. BUG=5972398 1) Remove non-USER export kinds. 2) Removing some DataKind references. 3) More name refactoring to use getRSReflectionType(). Change-Id: I008aeb37820df37acea0db9300ff9594a40cb086
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.cpp
|
e67239de8d94975e7e2216ee6860ae2e6cb8b15a |
|
25-Feb-2012 |
Stephen Hines <srhines@google.com> |
Style violation cleanup. Change-Id: Idb127f2fd6e637039454f47299360aec5a4edfe8
/frameworks/compile/slang/slang_rs_export_type.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_type.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_type.cpp
|
a67e4451d0d03b4ab7866b64807d95a8399c73a0 |
|
20-Jul-2011 |
Stephen Hines <srhines@google.com> |
Remove ArrayRefs! Change-Id: Ie49fde338437a600384f10c5c7a730691bd0b9a4
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.cpp
|
18c8829f2bd3cbe0d02471588c6643c0a8c6ca3c |
|
15-Jul-2011 |
Stephen Hines <srhines@google.com> |
Remove all explicit ArrayRef constructors. Related BUG=5028838 Change-Id: I5867f8e5d7097ef349a6d1eda1681b0014ac66c9
/frameworks/compile/slang/slang_rs_export_type.cpp
|
83f0c6261efc8f397fc2509e3862bc6d0eb1e1c4 |
|
21-Jun-2011 |
Shih-wei Liao <sliao@google.com> |
Apply API changes to migrate to CLANG upstream. Change-Id: I376a8a24c238c4e27d37c4f846b93e2f6e38d79c
/frameworks/compile/slang/slang_rs_export_type.cpp
|
5baf6324a97430016026419deaef246ad75430fc |
|
26-Apr-2011 |
Stephen Hines <srhines@google.com> |
Check RS functions (esp. init/root) for validity. Change-Id: Ice65c8b691550e2d11caf621e0f88c822316601b
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.cpp
|
7207645766b118ef18081363bb58e39d3e715c2f |
|
20-Apr-2011 |
Shih-wei Liao <sliao@google.com> |
Apply changes to migrate to upstream as of April 8th, 2011 from logan. - Use llvm::StructType::get(LLVMContext &, ArrayRef<const Type *>, bool) to create struct type instead of the ellipsis version. Otherwise, an error about ambigious overload function will occur. Change-Id: I8012d8d9fa10a89f28e858533d427807df7214d5
/frameworks/compile/slang/slang_rs_export_type.cpp
|
68318a14fe6d2debc1b9dce3fe71c42f5916eef5 |
|
11-Mar-2011 |
Shih-wei Liao <sliao@google.com> |
Fix struct size bug. clang/AST/RecordLayout.h now uses CharUnits, which will return the size of a struct using number of bytes as the unit. So we no longer need the division which converts number of bits to number of bytes. RL->getSize().getQuantity() is equivalent to something like sizeof operator. Change-Id: Ib3a4ec67349a275dfb8a73c4eac860395b101a05
/frameworks/compile/slang/slang_rs_export_type.cpp
|
be27482cdeaf08576bc39b72a15d35d13014a636 |
|
16-Feb-2011 |
Logan <tzuhsiang.chien@gmail.com> |
Apply changes to migrate to LLVM Mar 6th 2011. - API for name mangling. (Changing from non-public APIs to the public one) - API changes for clang::Diagnostic::getNumErrors -> clang::Diagnostic::hasErrorOccurred - API changes for clang::CharUnits and Quantity type. - API changes libLLVMSystem -> libLLVMSupport. - Change clang::Token::eom -> clang::Token::eod. - Remove SourceRange parameter for DeclRefExpr::Create and MemberExpr::Create. - Add const qualifier for several unsafe type cast.
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.cpp
|
6e6578a360497f78a181e63d7783422a9c9bfb15 |
|
08-Feb-2011 |
Stephen Hines <srhines@google.com> |
Add support for assertions in llvm-rs-cc. Bug: 3430674 Change-Id: I3400238652449cde84275cc2a770f405332d9544
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.cpp
|
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.cpp
|
24e79f69125cf87fcaa78c04510a831037203eeb |
|
13-Dec-2010 |
Stephen Hines <srhines@google.com> |
Refactor diagnostics for constant array exports. Bug: 3171195 Change-Id: I9062b583b6d5fe7bf6590000b8c745de4e70e7a1
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.cpp
|
a7b7518aa3725d5cff1c1a6319ec7a6b8b244e0e |
|
08-Dec-2010 |
Stephen Hines <srhines@google.com> |
Check exported array elements for proper equality. Bug: 3263454 Change-Id: I84f070bb9bf75fe16aae7195c39c921589bd7350
/frameworks/compile/slang/slang_rs_export_type.cpp
|
cd440ee9b3bdb7985a20b2cd4b0f8229de34f0a9 |
|
06-Dec-2010 |
Stephen Hines <srhines@google.com> |
Forbid unions from being exported by llvm-rs-cc. This also adds a directed F_union test. Bug: 2954471 Change-Id: I094e2a64df1deabb014ce09a42e5f1ef91b563d0
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.cpp
|
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.cpp
|
e639eb5caa2c386b4a60659a4929e8a6141a2cbe |
|
09-Nov-2010 |
Stephen Hines <srhines@google.com> |
Improve code style. Change-Id: I26e043849bce2a4b41ae132fbe0c882f4a6f112f
/frameworks/compile/slang/slang_rs_export_type.cpp
|
9e5b503349719144f63ccb7c62ee9c291a7d83b8 |
|
03-Nov-2010 |
Stephen Hines <srhines@google.com> |
Use Clang object references instead of pointers. Change-Id: Ief0e78859572761d880eaad9ae854f14e65da2c4
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.cpp
|
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.cpp
|
3cd3dd327445fcfa49f0e96cb2de2055bce541e9 |
|
21-Oct-2010 |
Zonr Chang <zonr@google.com> |
Bug fix: support self-referential struct type.
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.cpp
|
d6f9fedf1b32c27c0bcaddd13d7b741ab5ad74b8 |
|
21-Oct-2010 |
Zonr Chang <zonr@google.com> |
Bug fix: support self-referential struct type.
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.cpp
|
41ebf534161bb67f6207a070c1f6a895dc853408 |
|
13-Oct-2010 |
Zonr Chang <zonr@google.com> |
Remove Slang::TargetDescription. Clang and LLVM never read outside target description to configure the target-dependent information needed during compilation and codegen. They always use their own data layout string for specific, known target.
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.cpp
|
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.cpp
|
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.cpp
|
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.cpp
|
6b6320ad5faee29e0f75fe937e40156746ef9e80 |
|
05-Oct-2010 |
Zonr Chang <zonr@google.com> |
De-virtualize the RSExportType::getClass().
/frameworks/compile/slang/slang_rs_export_type.cpp
|
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.cpp
|
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.cpp
|
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.cpp
|
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.cpp
|
91a3783ce1f4eb9ad6e9c1ecdbd27f3d6dc58634 |
|
04-Oct-2010 |
Shih-wei Liao <sliao@google.com> |
1. Reorder DataTypeBoolean, DataTypeRSMatrix2x2, DataTypeRSMatrix3x3, and DataTypeRSMatrix4x4 in RSExportPrimitiveType::DataType. 2. Refine the RSExportPrimitiveType::DataKind. Change-Id: Ida0849e68b00571e0f055089ccc5a46d26760390
/frameworks/compile/slang/slang_rs_export_type.cpp
|
9ef2f785e0cc490af678dfd685995dec787321ff |
|
01-Oct-2010 |
Shih-wei Liao <sliao@google.com> |
The Mother-of-All code review: 1. Fix AllowRSPrefix bug 2. Remove member mRS*Pragma in class RSContext 3. No longer only support 2x2, 3x3, 4x4 arrays 4. Fix Export All code for victorhsieh 5. Improve readability and maintainability 6. size_t -> int in calculating padding Change-Id: I772aebd1440af66a89e2d2e688b193e500f38d69
/frameworks/compile/slang/slang_rs_export_type.cpp
|
8d75dc46a30e8617bd29dfe00492c5aab02dacf5 |
|
02-Oct-2010 |
Stephen Hines <srhines@google.com> |
Support for signed 64-bit integer type. b/3050131 exported renderscript structures don't appear to support int64_t Change-Id: I834f11394fa8060a56201b9709fa058d5ccecb5b
/frameworks/compile/slang/slang_rs_export_type.cpp
|
70842c7439bd523611f3ed232ecc6de844932145 |
|
21-Sep-2010 |
Stephen Hines <srhines@google.com> |
Add support for Float64 (double) to slang. Change-Id: Ia1be4eda28f3bcf2bd75a556c4329324f7aa76a5
/frameworks/compile/slang/slang_rs_export_type.cpp
|
cecd11d2af5d45d8ba322bed61fb48a99c305528 |
|
21-Sep-2010 |
Shih-wei Liao <sliao@google.com> |
Fix warnings. Bug fix. Change-Id: I80934814ae64d11f0edebfa3b131164207f1aca0
/frameworks/compile/slang/slang_rs_export_type.cpp
|
1ebc0ca6ffa7effb875883d18205ed4943ab8fc2 |
|
14-Sep-2010 |
Shih-wei Liao <sliao@google.com> |
Implement the ARM-specific struct layout ABI in exportable functions parameters for rs. Add the ABI-compliant #args when needed. My old code inadvertently assumed x86 ABIs for structs, but ARM ABI/calling convention is tricky here, compared to x86's. Also, fixed the type promotion problem. Note that the most portable fix is to add a shim layer in Clang which is a BIG undertaking like PNaCl. Let's put in the potential fix for b/2988615 now. Change-Id: I1d9fe4d803485b55bb72112ea8e17c1f4a19dd32
/frameworks/compile/slang/slang_rs_export_type.cpp
|
f8149d9e5a3795e9952717ee6346789a134c55c7 |
|
22-Aug-2010 |
Shih-wei Liao <sliao@google.com> |
Handle ConstantArray Type. Change-Id: Id3677e818693d6f95445d67116db3d6766d1fbd6
/frameworks/compile/slang/slang_rs_export_type.cpp
|
4d7dc59dd4d82aeeb7d77d1cfc048944e6e2bdba |
|
20-Aug-2010 |
Shih-wei Liao <sliao@google.com> |
Memory error: Fix "Invalid read of size 1" and "Jump based on uninitialize values" errors. Change-Id: Ida47f791c6432c45786e20c525dad6dc4535142b
/frameworks/compile/slang/slang_rs_export_type.cpp
|
116d3d2fcbde4970b07263deeeabc341ff8d76e9 |
|
20-Aug-2010 |
Shih-wei Liao <sliao@google.com> |
Fix the size of Matrix Change-Id: Ie947a3242f18140f252e710360c0b7f1f7cb7d41
/frameworks/compile/slang/slang_rs_export_type.cpp
|
ca3be0350773a63b7792eedc216a7808e42e77ea |
|
18-Aug-2010 |
Shih-wei Liao <sliao@google.com> |
Implement rs_matrix2x2, rs_matrix3x3, rs_matrix4x4 Change-Id: I6a7e829eb41c84e13f91fd3fa7929d6929a8cff9
/frameworks/compile/slang/slang_rs_export_type.cpp
|
0a3f20ec28ed6f5ae1ed5d61f6b6e3e577f7f5d1 |
|
10-Aug-2010 |
Shih-wei Liao <sliao@google.com> |
Handle RecordLayout and get the Alloc size. Fix bug b/2901942 "hang in renderscript." Change-Id: Ia33c64f47656a93f6de1eb95e3e983266289c8ba
/frameworks/compile/slang/slang_rs_export_type.cpp
|
1f0d88fbff28e4e2dd563d93c8fe0047381c09cc |
|
25-Jun-2010 |
Shih-wei Liao <sliao@google.com> |
Use addBoolean successfully and bool->boolean reflection. Change-Id: I2c31ef41766f8ace472ed289012de336e43e9aa9
/frameworks/compile/slang/slang_rs_export_type.cpp
|
cbbdd92b981296f347b02c0fa45621912ea8195c |
|
24-Jun-2010 |
Shih-wei Liao <sliao@google.com> |
Add rs_font. Change-Id: I726ed6951b3f34484b1d25719807cd8d3bff9337
/frameworks/compile/slang/slang_rs_export_type.cpp
|
462aefd62cc646d2ff753c1d003ef3cd7bbea262 |
|
05-Jun-2010 |
Shih-wei Liao <sliao@google.com> |
Initialize slang and Android.mk. Change-Id: If74da8e54d45511c8c9bb236bcfeec508f4f2439
/frameworks/compile/slang/slang_rs_export_type.cpp
|