History log of /frameworks/compile/slang/slang_rs.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5984fc03b6189f19f3721423b92469e4908a49ef 10-Sep-2014 Stephen Hines <srhines@google.com> Emit 32/64-bit bitcode appropriately for C++ reflection.

Bug: 17417839

This change adds proper handling of C++ reflection for the -m32/-m64
command line arguments. Only one type of bitcode will be emitted.

Change-Id: Ic52812b0fc7836eefbe8b6837272124d69b50182
/frameworks/compile/slang/slang_rs.cpp
2d504fd03c66be56ac3b4bb62c78cc72c75dd8b6 15-Aug-2014 Stephen Hines <srhines@google.com> Suppress warnings on our second compilation (for 64-bit).

Bug: 16031597
Bug: 17052573

Without this patch the 64-bit compilation path will print duplicate warning
diagnostics, since we call the frontend twice (for 32-bit, and then 64-bit).
The simplest fix is to not print warnings for the second compilation. A bug
(17052573) has been filed to track fixing this a better way (actually printing
out all warning diagnostics, but removing duplicates explicitly).

Change-Id: I78ac0ebd2b132713ec0c86c2cf234da2b620eecf
/frameworks/compile/slang/slang_rs.cpp
7ac9d0de26d325071ad3f26f8d34514efca2d3d6 16-Jul-2014 Stephen Hines <srhines@google.com> Update slang for LLVM rebase to r212749.

Change-Id: I5819f9df3212ffcfa8f34c11d3cea29f1fd04878
/frameworks/compile/slang/slang_rs.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.cpp
9e3aa07a4456aad52920e0a7464954fe67cdbe01 17-Jun-2014 Chris Wailes <chriswailes@google.com> Added a new development target api.

Change-Id: I71a16597f2605b9323424f8d493f103519d10178
/frameworks/compile/slang/slang_rs.cpp
fc4f78b9c7941132fb048a83f0e4ba528c3b4fd0 11-Jun-2014 Stephen Hines <srhines@google.com> Add -v (-verbose/--verbose) option to llvm-rs-cc.

This change also suppresses the display of "Generating Script*." output by
default.

Change-Id: I034a3ba20acf64e1eb9ecc02133edb03b643d559
/frameworks/compile/slang/slang_rs.cpp
7f5704efe0c59d5599f1ac7056976225dbfab946 11-Jun-2014 Stephen Hines <srhines@google.com> Clean up more of the RSCCOptions class.

Pass a bunch of arguments using the class directly. Move the documentation
next to the actual option declarations, rather than as part of a huge call
to "compile()". Convert from bitfields to bool.

Change-Id: I666dea469717f1f0ae59e0220a6146c96fc0fb7c
/frameworks/compile/slang/slang_rs.cpp
0e4ee65a2ba6b32fcd16c5d4a57fc7542d4032b4 10-Jun-2014 Stephen Hines <srhines@google.com> Run InitializePreprocessor() to ensure that all macros are set up properly.

Without this, we don't end up defining things like __LP64__ for 64-bit
compilation targets.

Change-Id: I11e11bde3498089056e7a70903c8d47d1030e01a
/frameworks/compile/slang/slang_rs.cpp
59f22c376b2c1cd109735280689224fadfe40b42 04-Jun-2014 Jean-Luc Brouillet <jeanluc@google.com> Set the reflection parameters in the constructors.

Change-Id: I3c74ab5a10d7aa3adaf460c56d2ab295a766fcfb
/frameworks/compile/slang/slang_rs.cpp
12fc283f4108fd6f7f0164c121ff2f6fb5044225 04-Jun-2014 Jean-Luc Brouillet <jeanluc@google.com> Don't go through RSContext for the Java reflection (take 2)

Change-Id: I08e5be9c4e39501238a9f9c382f0c66b2caf5a8d
/frameworks/compile/slang/slang_rs.cpp
7fda9848f91fc5cca55f63423b35672128b6daab 04-Jun-2014 Jean-Luc Brouillet <jeanluc@google.com> Revert "Don't go through RSContext for the Java reflection."

This reverts commit cc1b9699446aea20773e4c3c6ff5759fedd8ab51.

Change-Id: I330f8beb02ba4868ce115848543c506d5dea46bf
/frameworks/compile/slang/slang_rs.cpp
cc1b9699446aea20773e4c3c6ff5759fedd8ab51 04-Jun-2014 Jean-Luc Brouillet <jeanluc@google.com> Don't go through RSContext for the Java reflection.

The C++ code does not do that. RSContext should just contain the
context.

Change-Id: Idd9d4c00bdd27b51ba7fc0aee8c5e7cfdab6d0a0
/frameworks/compile/slang/slang_rs.cpp
129fd8228cd04592a20c3d5009805a23585f2479 29-May-2014 Jean-Luc Brouillet <jeanluc@google.com> Add a GeneratedFile class for Java and C++ file generation.

This CL changes the generation of the BitCode file. Next CLs will change the generation of the Java and C++ files.

Change-Id: I59f9f4f46ecd35022ecf3293c1ad76a02e8db574
/frameworks/compile/slang/slang_rs.cpp
2968921e1cedf85360964c5a39e1ce36c66ecd09 27-May-2014 Jean-Luc Brouillet <jeanluc@google.com> Replace std::endl by \n.

\n is more readable AND endl causes a buffer flush.

Change-Id: I3f7472a16e3bebc06476d8e37129e4088546b4aa
/frameworks/compile/slang/slang_rs.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.cpp
44d495d2ad8c350a8f586502c9ee8e97a513646a 23-May-2014 Stephen Hines <srhines@google.com> Clean up embedded bitcode path for Java.

Change-Id: I79cc65778173c7eeab028dedfc4adcb59bef44c2
/frameworks/compile/slang/slang_rs.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.cpp
a7ab54d590b5a959354a654cccacf4337e7fd5b0 08-Jan-2014 Stephen Hines <srhines@google.com> Add rs_core_math.rsh to the list of allowed RS headers.

BUG: 5653293

Change-Id: I79935782da3436b0d794fea6a06c36aa85004756
/frameworks/compile/slang/slang_rs.cpp
925879fa622dda293806ed25b1ee63d2f4a8d65a 20-Jul-2013 Stephen Hines <srhines@google.com> Clean up handling of Java package name for llvm-rs-cc.

Adds support for C++ code generator to use this package name as well.

This change also resolves a small issue with an uninitialized mVerbose flag.

Change-Id: Ia3037a3f4dbe172ddc51af3064ac1708526a6df6
/frameworks/compile/slang/slang_rs.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.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.cpp
0a813a3ef2a82f19d7eab9e23ae8493197143803 04-Aug-2012 Stephen Hines <srhines@google.com> Add RS package name option + support.

Usage:
llvm-rs-cc -rs-package-name=android.renderscript ...
or
llvm-rs-cc -rs-package-name android.renderscript ...

This allows us to reflect a different import path for our base RS classes.
The default value is "android.renderscript", resulting in a reflection that
produces "import android.renderscript.*;".

Change-Id: Icf7e83b963ba70c803899697f49b41fdfb9586e7
/frameworks/compile/slang/slang_rs.cpp
4eb4b38b35855436543d229bc3c83b60d47dbbce 21-Mar-2012 Alex Sakhartchouk <alexst@google.com> Organizing rs headers by their logical components.

Change-Id: I092ca29892da5a9271429cf3518b99254d39ab9d
/frameworks/compile/slang/slang_rs.cpp
1b6a0883cd6984e11e59b0c847fb334df1f41afc 12-Mar-2012 Jason Sams <jsams@google.com> start cpp reflection

BUG=5972398

Change-Id: Iede58fde457d16293345e741f80109f89e653ad5
/frameworks/compile/slang/slang_rs.cpp
3c9c8645f52ea95e94f88715f9594750567a4e33 02-Mar-2012 Stephen Hines <srhines@google.com> Merge "Add option to generate reflected C++ code."
5c25c5159c0a5be9af992679067790716626da7b 27-Feb-2012 Stephen Hines <srhines@google.com> Add option to generate reflected C++ code.

BUG=5972398

Change-Id: Ib31ca4bd48a0aa15ebb27092a1ba502e7520d0cf
/frameworks/compile/slang/slang_rs.cpp
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.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.cpp
c632be206ac4fe49a5db05cfa54942d774329dbe 24-Sep-2011 Stephen Hines <srhines@google.com> Generate warnings properly for multi-file compiles.

BUG=5367019

Slang (llvm-rs-cc) was clobbering warnings during multi-file compilation
because they are not part of the error count. When the diagnostics get reset,
we should be dumping whichever non-error (i.e. warning) diagnostics we have
accumulated. During investigation, I also found then that our dependency
generation path can cause duplicate warnings to be added to the diagnostic
client. Thus, to fix this bug, the change need dumps relevant diagnostics, but
then suppresses warnings if we are compiling the same file multiple times
(once for code generation and once for dependencies).

Change-Id: I4b94e962f93b96f31ff7e7d6cce45418fe39e1d1
/frameworks/compile/slang/slang_rs.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.cpp
4cc499d6e5ec602309501873449c938af61170b2 25-Aug-2011 Stephen Hines <srhines@google.com> Start basic support for LLVM 2.9 bitcode writer.

Change-Id: I6a54158a32e485f506f0b991f89125b8a0e60267
/frameworks/compile/slang/slang_rs.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.cpp
2d35eddd17eaa8bf5a0202dc60ead14dd16eb2d6 09-Aug-2011 Stephen Hines <srhines@google.com> Update header file includes for llvm-rs-cc.

Change-Id: I69e58c59b0b03371d72c0d8974f1ed371d0b33dd
/frameworks/compile/slang/slang_rs.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.cpp
6b201eb3306b9609a991728a52ce948974bd4aed 21-Jul-2011 Stephen Hines <srhines@google.com> Define RS_VERSION as the SDK version.

Change-Id: Iaee48b397923e7f6af33b6dfd4a03f52bdd34f93
/frameworks/compile/slang/slang_rs.cpp
6f4e0a9955a53a6f715af7e674e68ed15270a47c 09-Mar-2011 Logan Chien <tzuhsiang.chien@gmail.com> Migrate to newer API.

Following function (left) is deprecated, use the right version
instead:

llvm::sys::Path::getLast -> llvm::sys::path::filename
llvm::sys::Path::getBasename -> llvm::sys::path::stem
llvm::sys::Path::getDirname -> llvm::sys::path::parent_path
/frameworks/compile/slang/slang_rs.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.cpp
8d5a2f6ab321615bfb3a46f68aff0b643a71caa0 08-Feb-2011 Raphael <raphael@google.com> Support Windows paths in slang.

Change-Id: I5240164d1d83f7816973a0e6ee9c26e337e605b1
/frameworks/compile/slang/slang_rs.cpp
4cc67fce91f43215d61b2695746eab102a3db516 01-Feb-2011 Stephen Hines <srhines@google.com> Support for generating .java dependencies for RS.

This updates the -MD option to also emit .java targets to the dependency
information placed in our foo.d file.

Change-Id: I189cf6302bc1cbd6201487743a37dced87b5c5eb
/frameworks/compile/slang/slang_rs.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.cpp
a858cb6f3d9223d65bf73e1230c6324ded4095f6 17-Jan-2011 Stephen Hines <srhines@google.com> Fix variable names for Clang-based compilation.

Change-Id: I69b28110e9fda63abb3770da7a1127af4e1f2963
/frameworks/compile/slang/slang_rs.cpp
125052390460773d0a4531d5bd26cdb704d08c93 07-Jan-2011 Stephen Hines <srhines@google.com> Add rs_time.h as a valid default RS header.

Change-Id: I85d4415b7d76db1cd4114a1078892c1016936e67
/frameworks/compile/slang/slang_rs.cpp
e639eb5caa2c386b4a60659a4929e8a6141a2cbe 09-Nov-2010 Stephen Hines <srhines@google.com> Improve code style.

Change-Id: I26e043849bce2a4b41ae132fbe0c882f4a6f112f
/frameworks/compile/slang/slang_rs.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.cpp
fcda2352b9e140529f8f3c89f05b10a70c0048b2 20-Oct-2010 Stephen Hines <srhines@google.com> Support for local RS zero initialization.

Change-Id: I785cfc6ee53abb6c88ab5bdba5e7c8c16b8409de
/frameworks/compile/slang/slang_rs.cpp
3ab021f5913736512343730d91e771037954061b 18-Oct-2010 Zonr Chang <zonr@google.com> Again, don't include rs_graphics.rsh by default.
/frameworks/compile/slang/slang_rs.cpp
8785d056b8912325b7e2c9c6c7adbd13b90964c4 13-Oct-2010 Zonr Chang <zonr@google.com> Revert "embed .rsh in llvm-rs-cc".
/frameworks/compile/slang/slang_rs.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.cpp
e86245a09bb8b9e72f5dc68083444ec938865798 12-Oct-2010 Zonr Chang <zonr@google.com> Fix potential memory corruption in checkODR().
/frameworks/compile/slang/slang_rs.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.cpp
cf6af6abc1de499920571308b14a27e19cf57097 11-Oct-2010 Zonr Chang <zonr@google.com> Refine the SlangRS::compile() API.

This makes compile() methods in SlangRS more reasonable. And this is
part of commits for ODR. The SlangRS::compile() now compiles "a group of
RS files" instead of one by one individually.
/frameworks/compile/slang/slang_rs.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.cpp
b81c6a4cbd9c08e0b20ea4fbc615b416ac1bc9ec 10-Oct-2010 Shih-wei Liao <sliao@google.com> Revert "Revert "New implementation of llvm-rs-cc (replacement of slang_driver).""

This reverts commit a6d60672695f1438a63acdbf85eae7f97ce2b50d.
/frameworks/compile/slang/slang_rs.cpp
a6d60672695f1438a63acdbf85eae7f97ce2b50d 10-Oct-2010 Shih-wei Liao <sliao@google.com> Revert "New implementation of llvm-rs-cc (replacement of slang_driver)."

This reverts commit 6791df284557f4173a9715b3634f4f4901a6bb8a.
/frameworks/compile/slang/slang_rs.cpp
6791df284557f4173a9715b3634f4f4901a6bb8a 09-Oct-2010 Shih-wei Liao <sliao@google.com> New implementation of llvm-rs-cc (replacement of slang_driver).

Change-Id: I1b8b6cf3dad8ef8fe2f4d24d4df604099f45ff37
/frameworks/compile/slang/slang_rs.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.cpp
b257301a1c711ba81458a4f8bf3c99c91c91a047 07-Oct-2010 Zonr Chang <zonr@google.com> Don't include rs_graphics.rsh by default.
Fix the Externalize in slang_driver.cpp.

Change-Id: Idce037b0150af3ea9968e39b7bce63a0e1b6d9a5
/frameworks/compile/slang/slang_rs.cpp
3c250c5d6cbf4123e959a3466990fda9fa50987a 06-Oct-2010 Zonr Chang <zonr@google.com> Better way to include default RS headers (*.rsh).

Change-Id: If1435ff983fc4f9b36dc4c3d70348e033957db49
/frameworks/compile/slang/slang_rs.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.cpp