History log of /frameworks/compile/slang/slang_rs_backend.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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_backend.cpp
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_backend.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_backend.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_backend.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_backend.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_backend.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_backend.cpp
5ac0c0bd054b8aa211b03a69f8d64a29f4984aca 23-Jul-2013 Tobias Grosser <grosser@google.com> Remove dead code trying to write opt-level

The previous commit exposed a piece of dead code, that apperently
tried to store the optimization level in the LLVM module generated
by the slang backend. As it was not functional and there also does
not seem to be a good reason to do so, we remove this code.

No functional change intended.

Change-Id: Ieffb1dc3e48db5aabe6ecab46bd12132161c694d
/frameworks/compile/slang/slang_rs_backend.cpp
d460f623328e2b4ebd05bb93910edb471e6e91d6 23-Jul-2013 Tobias Grosser <grosser@google.com> Split HandleTranslationUnitPost in subfunctions

The original function had almost 200 lines. For readability we split
this function into smaller functional units. As the different units
have already been independent, this change just mechanically copies
their code into subfunctions. No functional change is intended.

Change-Id: I47891569231335b6f8674b0f5d05b7d83b13f85b
/frameworks/compile/slang/slang_rs_backend.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_backend.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_backend.cpp
cf9a73a4140402c0e9e4fbab27477f22cc7d8e3c 20-Sep-2012 Stephen Hines <srhines@google.com> Fix teardown bug for multiple files without pragma.

This previously caused a segmentation fault in llvm-rs-cc. We were
improperly using the DiagnosticsEngine after we had reset() everything.

Bug: 7202787

Change-Id: Ic8522566ef257e70f16caf34b89f6a8e012908c5
/frameworks/compile/slang/slang_rs_backend.cpp
ab5a535b290d898d0c56036f642d823e3472a804 05-Aug-2012 Stephen Hines <srhines@google.com> Add RS-specific check forbidding array parameters in exported functions.

BUG=6902660

Change-Id: I31f0f2b51026edf450e920a5dd49810f4b191eb0
/frameworks/compile/slang/slang_rs_backend.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_backend.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_backend.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_backend.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_backend.cpp
8004db04a13a3031ca21dc0b2bb8875d5bbd4473 28-Mar-2012 Stephen Hines <srhines@google.com> am 011fed09: am ffbd99c5: Merge "Remove optimization level metadata."

* commit '011fed092c701396c830321e4db4e468af0827e3':
Remove optimization level metadata.
51322a4b764d1416e0b774720f56189a25376445 22-Mar-2012 Stephen Hines <srhines@google.com> Remove optimization level metadata.

This is because a prior change started to store the optimization level in the
bitcode wrapper.

Change-Id: I67983757bbb08b3f544ea15acfe049436885987a
/frameworks/compile/slang/slang_rs_backend.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_backend.cpp
e3cb21bc8654181da174ac441acec7726b5a78ec 02-Mar-2012 Jean-Baptiste Queru <jbq@google.com> am fa5209a2: am 9c459f0c: Merge "Enable emission of debugger-friendly bitcode"

* commit 'fa5209a2bd1e10f675a889c60d8d5a589e860d18':
Enable emission of debugger-friendly bitcode
c460b37ffb50819a32c2a8967754b6f784b28263 09-Jan-2012 mkopec1 <mkopec1@intel.com> Enable emission of debugger-friendly bitcode

- Add "-g" flag to llvm-rs-cc in order to emit debug metadata
- Add optimization level parameter -O and tests
- Add lit based tests (use llvm-lit from libbcc/tests/debuginfo)
-- Add README file for lit-tests directory

Change-Id: I5e2f6f9b6f536fa7a10de008b54ac0878cf352a9
/frameworks/compile/slang/slang_rs_backend.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_backend.cpp
7aff4a0a124209fdf93ecbcd7aed701d39ba094b 09-Dec-2011 Stephen Hines <srhines@google.com> Update error diagnostics.

Change-Id: I8415450504f95cc3ad35866ed884fafc7ee24c90
/frameworks/compile/slang/slang_rs_backend.cpp
fa6ef56a6ca3dc3061218a75a7e68e5357fcb82c 25-Nov-2011 Logan Chien <loganchien@google.com> Apply changes to migrate to upstream (Nov 25th 2011).

- HandleTopLevelDecl now returns bool.
- Additional APValue::MemberPointer case for switching.

Change-Id: Ieb7a693f96b07b7659712a3ab0abd200ce7df505
/frameworks/compile/slang/slang_rs_backend.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_backend.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_backend.cpp
4a4bf92a8add68629a7e6e59ef81c3c3fe603a75 19-Aug-2011 Stephen Hines <srhines@google.com> Don't generate forEach() on pre-ICS target SDK.

Change-Id: I794587d1f79a08aca8cc4f7f20f4012050ab0501
/frameworks/compile/slang/slang_rs_backend.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_backend.cpp
2e35b136cc2434080fcd682d2f95e53a87675dd4 22-Jul-2011 Stephen Hines <srhines@google.com> Add support for -target-api <n> to llvm-rs-cc.

Change-Id: Ieaef83fae55f84e87a9301b377633ac658a724b6
/frameworks/compile/slang/slang_rs_backend.cpp
ab992e59a36a18df49bf4878968ef0598299afd3 20-Jul-2011 Logan Chien <loganchien@google.com> Apply changes to migrate to llvm upstream r135568.

- Remove the const qualifier of llvm::Type and
llvm::PointerType due to the API change.

- Update the relocation model setup code, since
llvm::TargetMachine changes the API.

- Qualify dyn_cast with llvm namespace.

Change-Id: I4820fb86effc3a62569e19a6a8753ba9e960f6b2
/frameworks/compile/slang/slang_rs_backend.cpp
a67e4451d0d03b4ab7866b64807d95a8399c73a0 20-Jul-2011 Stephen Hines <srhines@google.com> Remove ArrayRefs!

Change-Id: Ie49fde338437a600384f10c5c7a730691bd0b9a4
/frameworks/compile/slang/slang_rs_backend.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_backend.cpp
d27a74edb932580d224a7186731aa6be098ad02e 14-Jul-2011 Stephen Hines <srhines@google.com> Fix missing slot metadata issue + cleanup ArrayRefs.

Temporary ArrayRefs are very bad (tm). This change converts all temporary
ArrayRefs to be implicitly created where necessary, rather than using explicit
API calls.

BUG=5028838

Change-Id: I5ffedc737aee17b529c66ed76e8080c9886c6153
/frameworks/compile/slang/slang_rs_backend.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_backend.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_backend.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_backend.cpp
d0b5edd02be5f09c1d8d211f4a06b031a7b66510 19-Apr-2011 Stephen Hines <srhines@google.com> Disallow union copies that contain RS object types

This also cleans up RSObjectRefCount's usage of ASTContext a bit.

BUG=4283858

Change-Id: I9ca61e27fc5d6eb1befc2da4fe2d157f5936a56f
/frameworks/compile/slang/slang_rs_backend.cpp
2bb67db8364162b30e6920baddf6c2e890b3ce79 11-Feb-2011 Stephen Hines <srhines@google.com> Replace struct assignments with rsSetObject calls.

Bug: 3092382
Change-Id: I63f16a7dac02eb348b87a6225944d48faa615899
/frameworks/compile/slang/slang_rs_backend.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_backend.cpp
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_backend.cpp
3fd0a94a5cf1656569b1aea07043cc63939dcb46 18-Jan-2011 Stephen Hines <srhines@google.com> Refactor pragma handling (pass everything to LLVM)

Change-Id: Id09d4934af06f0880cd867456218602ce9a9e2de
/frameworks/compile/slang/slang_rs_backend.cpp
eb2eec96b5f19778ac1b7aebe6a91bbcb8d4df96 10-Jan-2011 Stephen Hines <srhines@google.com> Fix duplicate destructor issue.

We now explicitly require static variable destructors to be created in
HandleTranslationUnitPre() and global variable destructors to be created
in HandleTopLevelDecl().

Bug: 3092382
Change-Id: If9176c81951edb3430f1ad6ae80f9a06d73f5fd7
/frameworks/compile/slang/slang_rs_backend.cpp
96ab06cbe40b2d73c0eb614f814cd761d8962b6b 06-Jan-2011 Stephen Hines <srhines@google.com> Add support for the version pragma.

Change-Id: I62707dcb432093ba50db95e527d55ff781be22a9
/frameworks/compile/slang/slang_rs_backend.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_backend.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_backend.cpp
c97a333bc84ce8c28c96d07734cbded75c914639 01-Dec-2010 Stephen Hines <srhines@google.com> Improve validation of AST before reflection.

Change-Id: If4b52f3a713ab97145bc31ef42b18d1cc144099a
/frameworks/compile/slang/slang_rs_backend.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_backend.cpp
e639eb5caa2c386b4a60659a4929e8a6141a2cbe 09-Nov-2010 Stephen Hines <srhines@google.com> Improve code style.

Change-Id: I26e043849bce2a4b41ae132fbe0c882f4a6f112f
/frameworks/compile/slang/slang_rs_backend.cpp
1bdd4978caabcdc9489bdcb7f1cd6087340699e8 09-Nov-2010 Stephen Hines <srhines@google.com> Add simple destructors to local RS objects.

Change-Id: Ie4aa964840b25c3aa8eed257d4ff0a1e4f6ef22a
/frameworks/compile/slang/slang_rs_backend.cpp
4b32ffdfc1ac766f8932e7effbcdf7484e804a8e 06-Nov-2010 Stephen Hines <srhines@google.com> Factor out RSObjectRefCount for destructor work.

Change-Id: Ibdacc9e9f15401680bc54747664e187a05f62e25
/frameworks/compile/slang/slang_rs_backend.cpp
cfae0f350e4e0d8f7b4c71780b3f74f58fa23afb 02-Nov-2010 Stephen Hines <srhines@google.com> Process non-static funcs with HandleTopLevelDecl().

Bug: 3092382
This fixes an issue where non-static functions were not properly being
annotated with zero-initializers for all RS object types. It turns out that
HandleTranslationUnit() occurs well after we have generated code for extern
functions (which is how this bug first showed up).

Change-Id: Id752d8baafc161dd7142d340f8aaae62af9be019
/frameworks/compile/slang/slang_rs_backend.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_backend.cpp
0307eaa71dc1d05582347cacd9209ac1e6100102 21-Oct-2010 Zonr Chang <zonr@google.com> Define the RS type specification.
/frameworks/compile/slang/slang_rs_backend.cpp
fcda2352b9e140529f8f3c89f05b10a70c0048b2 20-Oct-2010 Stephen Hines <srhines@google.com> Support for local RS zero initialization.

Change-Id: I785cfc6ee53abb6c88ab5bdba5e7c8c16b8409de
/frameworks/compile/slang/slang_rs_backend.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_backend.cpp
68fc02ca4a7235e2981be5eee4ad968a9d3928c0 13-Oct-2010 Zonr Chang <zonr@google.com> Add two new APIs in HandleTranslationUnitPre and HandleTranslationUnitPost.

Refer to the comments in slang_backend.h for detail.
/frameworks/compile/slang/slang_rs_backend.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_backend.cpp
592a954aae4cb946970b557e94afd5ee453fd57e 07-Oct-2010 Zonr Chang <zonr@google.com> Make --allow-rs-prefix more reasonable.

Now slang only alarms when a function prefixed with 'rs' and was not declared
in one of the RS default headers (including rs_graphics.rsh). Therefore, you
don't need to (and shouldn't) pass this option to slang in general.
/frameworks/compile/slang/slang_rs_backend.cpp
7f2f385d3129ba4de82ef56adb9cb4385fd33001 07-Oct-2010 Zonr Chang <zonr@google.com> Rewrite llvm-rs-link a bit. It's now more clean.

Remove -e option from llvm-rs-link. Which means, we always run
internalize pass to hide those symbols which doesn't require to be
external.

Change-Id: I7befd02352957ca087dcba2f097c195e3708c503
/frameworks/compile/slang/slang_rs_backend.cpp
3a9ca1f0d6bd8f12c2bb2adea51f95c255996180 06-Oct-2010 Zonr Chang <zonr@google.com> Provide better abstraction of class Slang.

1. Remove the Slang C APIs support (not used by any other programs.)
2. All RS relatives are now in slang_rs_*.cpp.
/frameworks/compile/slang/slang_rs_backend.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_backend.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_backend.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_backend.cpp
cecd11d2af5d45d8ba322bed61fb48a99c305528 21-Sep-2010 Shih-wei Liao <sliao@google.com> Fix warnings. Bug fix.

Change-Id: I80934814ae64d11f0edebfa3b131164207f1aca0
/frameworks/compile/slang/slang_rs_backend.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_backend.cpp
f52a620440fa62257dfdcf2583f0f9df5b855c76 11-Sep-2010 Shih-wei Liao <sliao@google.com> Apply changes on slang such that it can work with LLVM/Clang upstream r112364/r112367.

Change-Id: If38da28502a6111b855105c2fceb23fdb0caefa4
/frameworks/compile/slang/slang_rs_backend.cpp
4c9f742efa36b1037acc640184681d421aa0f6ba 05-Aug-2010 Shih-wei Liao <sliao@google.com> Right usage of linking. Enable the reuse of the same Slang object across multiple input files.

Change-Id: Id036c300ece9a245437ea2bdd0a9c0da436f558d
/frameworks/compile/slang/slang_rs_backend.cpp
1fd8579fe65b13a26cfaad12d056d2fc9b46475a 07-Jul-2010 Kirk Stewart <kstewart@google.com> Add a command-line option to allow function names with the "rs" prefix (--allow-rs-prefix). When not specified, user-defined functions with that prefix will be treated as an error.

Change-Id: Ieefc8bb55d61980241d5392ffb32770a303ce6a7
/frameworks/compile/slang/slang_rs_backend.cpp
001fb6dddbf1cc794532eeb6a55f7b500eab1abc 21-Jun-2010 Shih-wei Liao <sliao@google.com> 1. Add comments to clarify (E.g., don't worry. "syntax error will be triggered by predecessor later")
2. Create ASTContext before RSContext creation and pass it to RSContext for using later

Change-Id: I6c11af70f1a13036c560aa34d311808548390864
/frameworks/compile/slang/slang_rs_backend.cpp
6b22674f4ef0a6c689c589830f1c44f443520785 11-Jun-2010 Kirk Stewart <kstewart@google.com> Add a check to prevent users from defining function names starting
witih "rs".

Change-Id: I2801d50b11439b37dd875957683bbf180c8df34a
/frameworks/compile/slang/slang_rs_backend.cpp
462aefd62cc646d2ff753c1d003ef3cd7bbea262 05-Jun-2010 Shih-wei Liao <sliao@google.com> Initialize slang and Android.mk.

Change-Id: If74da8e54d45511c8c9bb236bcfeec508f4f2439
/frameworks/compile/slang/slang_rs_backend.cpp