History log of /frameworks/compile/libbcc/tools/bcc/Main.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
8e9089377848628813a697b972773e969b942c3b 07-Mar-2016 Pirama Arumuga Nainar <pirama@google.com> Update libbcc for LLVM rebase to r256229

http://b/26987366

(cherry picked from commit f229c40f0d2da19985e68955aef1a06ce4121e63)

Change-Id: I3d89bb15d0c3e7d64f74656365ed1d472e7de4c7
/frameworks/compile/libbcc/tools/bcc/Main.cpp
3c05a9cabc73640febb331e3df1d8f2e565c9e30 11-Nov-2015 Luke Drummond <luke.drummond@codeplay.com> Fix code-generation on x86 targets

- bcc code generation on x86 devices was generating invalid code in
unoptimized builds due to missing CPU detection in ``bcc::CompilerConfig``
- CPU type and code models properly belongs in compilerConfig.
- CompilerConfig: existing feature strings were being overwritten
instead of appending to existing configured CPU feature config list:

```cpp
if (HasF16C())
mFeatureString = "+f16c";
```

- Moved hardcoded compile-time SSE3/4.1/4.2 features in
bcc/tools/Main.cpp. These checks (if any) belong in
`bcc::CompilerConfig`.
/frameworks/compile/libbcc/tools/bcc/Main.cpp
656325bdb4751d5606f9e53d8f417bd727032c31 17-Jul-2015 Stephen McGroarty <stephen@codeplay.com> Stopped bcc from ignoring optimization level

Added in a constructor for RSScript which takes in the compiler
config and derives the optimization level from that rather than
defaulting it to opt level 3. Also added in a statement to catch
a null pointer for the case where the llvm-rs-cc produced bitcode
fails verification.

Change-Id: I6efdab6280a9c389268b5a40dc4a50eb9bc24370
Signed-off-by: Stephen McGroarty <stephen@codeplay.com>
/frameworks/compile/libbcc/tools/bcc/Main.cpp
750ee65e129a2baef2dc5bb9ad210b45c9184926 17-Apr-2015 Stephen Hines <srhines@google.com> Provide a pass that creates information about global variables in RS.

Bug: 20306487

This change implements RSGlobalInfoPass, which is an optional LLVM pass that
adds several new global variables to a given Module. These variables contain
information about the other RenderScript global variables that are present.

Change-Id: I671013c11c7a528254edad5c66f2858953c0f5c4
/frameworks/compile/libbcc/tools/bcc/Main.cpp
186d2f34573eb20de197d8eb8e08bcadd031a9bd 07-Apr-2015 Yang Ni <yangni@google.com> Embed a real chesksum in script group .so

Change-Id: Icf2f37867692f94e344a292fa15f8b85e0fc30a5
/frameworks/compile/libbcc/tools/bcc/Main.cpp
6b6fb446fb8ae5a293bf38267bd4be66be8759ef 06-Apr-2015 Yang Ni <yangni@google.com> Make kernel fusion check OptEmitLLVM option

b/19695899

So that it does not always emit llvm IR sources every time bcc is
invoked to fuse kernels for a script group.

Change-Id: I6318a95c0571c12bf8f8dc493246e91dbed725e0
/frameworks/compile/libbcc/tools/bcc/Main.cpp
a65fba6fd15b14d930809e64c84fb976a893d038 19-Feb-2015 Pirama Arumuga Nainar <pirama@google.com> Remove RSInfo

bug 19602994

RSInfo is no longer used. Script-specific information is now passed via
.rs.info variable in the object file. This patch removes RSInfo and the
old caching path which was closely tied to RSInfo.

Change-Id: Icb62ed848d1a262dd13d5c49652d034fcd0bb943
/frameworks/compile/libbcc/tools/bcc/Main.cpp
6da4e253a513feef3405759fef6d0760828808ca 11-Mar-2015 Yang Ni <yangni@google.com> Handle FP precision in kernel fusion

b/19098612

Added a bcc command-line option for the relaxed core lib path.
If the relaxed lib path is provided, it will be used if the merged
module has relaxed FP precision.

Change-Id: I2a641387f0990463887594729a935a5c3f0f856f
/frameworks/compile/libbcc/tools/bcc/Main.cpp
0ab50b835805c75ad164466767c2c212f48954cc 16-Feb-2015 Yang Ni <yangni@google.com> Create one single module for a script group

This changed the way we compile a script group. Instead of compiling
each batch into a seperate module, we now compile the whole script
group into one single module, with each batch as a function (of fused
kernels) in that module. This allows invoke to (fused) kernel
communication via globals variables.

Added commoand line options "-merge" and "-invoke". The former
accepts fused kernel names, input kernels, while the latter accepts
new invoke name, and the original invoke function.

Additional changes:

- Bail out on encountering any unexpected bits in the foreach
signature of any kernel to fuse
- Made kernel fusion handle kernels without inputs.
If a kernel only takes global allocations but no inputs, bcc
needs to use a different signature for the fused kernel.
- Included in rs info the exported variables for the fused kernel.
- Keep all metadata in merged module from the input modules. This
would help correctly handling FP precision. (b/19098612)
- Handles Z (b/19610223)

Change-Id: I5553f86b2e58325f85649078d48685a38f12d62f
/frameworks/compile/libbcc/tools/bcc/Main.cpp
51ee77bd31e7d8ca6c89e37b5806c8fc2afcf0dc 20-Feb-2015 Pirama Arumuga Nainar <pirama@google.com> Add a -build-checksum flag to bcc

bug 19216507

Add a flag to bcc to pass a build checksum. The checksum is passed to
RSEmbedInfo pass via LLVM metadata.

The old checksum path is tied to RSInfo. Removing this path can be done
along with RSInfo removal.

Change-Id: I3f21c96ddcfe42c16754fbb7749a72595f90964d
/frameworks/compile/libbcc/tools/bcc/Main.cpp
77c1d553e5799aef5add08667e71b62b6842ed2e 23-Jan-2015 Tim Murray <timmurray@google.com> Fix -emit-llvm with shared object compilation.

Change-Id: I696f3777a0981a875772d7340970a6cb49581cd7
/frameworks/compile/libbcc/tools/bcc/Main.cpp
a4ded1373d7ad3e503f186e65bccf94126a0f020 18-Nov-2014 Yang Ni <yangni@google.com> Compiler kernel fusion for RenderScript.

This was started by Tobias Grosser during his internship at Google in 2013.
This CL includes his original changes and generalization to make it work with
the new proposed ScriptGroup API and made the ImageProcessing processing work
with this.
An enabling CL is needed in the RenderScript runtime, which I will post
seperately.

Change-Id: Ia73ea917a126a5055ec97f13d90a5feaafd6a2f5
/frameworks/compile/libbcc/tools/bcc/Main.cpp
107f50d54d9606e495187d0e89225d3d9fdc1fa9 20-Jan-2015 Stephen Hines <srhines@google.com> Remove linkloader from frameworks/compile/libbcc.

Bug: 18322681

Now that we have switched completely to the new shared library object
loading path, we can safely remove the legacy linkloader path.

In frameworks/compile/libbcc, this removes all of libbccExecutionEngine,
since the loader is now self-contained in libRScpu_ref (similar to the
support library's shared object loader). We also remove support for
all symbol resolvers and the gdb JIT interface (which was already
unmaintained).

Change-Id: Ie5cc152d93f5e75383f7c21a4523579cfae8823f
/frameworks/compile/libbcc/tools/bcc/Main.cpp
c46a3f5370364ad5698756d5da5b8845be9970d0 08-Jan-2015 Tim Murray <timmurray@google.com> Fix bcc initialization and shutdown issues.

Actually call the correct LLVM init functions.

Change-Id: I883ebe70ae0bb4a535a9bc0536a517dab0cb3ebb
/frameworks/compile/libbcc/tools/bcc/Main.cpp
1e0557ae75ae780352845bd2ba0f4babdc5ae4e6 03-Dec-2014 Pirama Arumuga Nainar <pirama@google.com> BCC updates to handle linkloader removal

Bug: 18322681

- Add -fPIC and -embedRSInfo flags to bcc. fPIC generates relocatable
object code and -embedRSInfo embeds RS symbol information into the
.rs.info variable in the object file.

- PIC_ relocation in x86_64 also entails that the CodeModel must be
small. Otherwise, we end up with TEXTRELs in the shared library.

- Add an LLVM pass to screen functions visibile in RS.
lib/RenderScript/generate-whitelist.sh is used to automatically
generate the stubbed functions to the whitelist.

Change-Id: Ib0a16b7e7aff89490ac631885ffa97dd31c184ce
/frameworks/compile/libbcc/tools/bcc/Main.cpp
b4447cd2b14f53efd9102d28da48000be7b2d4fd 20-Aug-2014 Chris Wailes <chriswailes@google.com> De-cruft the libbcc compiler infrastructure.

This patch removes the RSCompiler subclass of Compiler and moves most of its
functionality over to the original Compiler class. Methods and variables are
re-named to make the code clearer. In addition, unused functions have been
removed.

Change-Id: I121463df6309c377496cebea8cbb82bb49624ed1
/frameworks/compile/libbcc/tools/bcc/Main.cpp
602ce0336c0ff5109923cee9b4426e913e718605 03-Sep-2014 Jian Li <jian.y.li@intel.com> Set x86 SSE features explicitly in bcc

Change-Id: Ia31393f08703f9474fee31fc03de7888fca78413
Signed-off-by: Yong Chen <yong.a.chen@intel.com>
/frameworks/compile/libbcc/tools/bcc/Main.cpp
900c6c1f08f7c572125d7d39abe0f0f9eafbfa14 14-Aug-2014 Chris Wailes <chriswailes@google.com> Replace NULL macros with nullptr literals.

Change-Id: Id2311cda59dd42c74b3ed54d3ff6cfd509012738
/frameworks/compile/libbcc/tools/bcc/Main.cpp
d0993af5b1337f8186dd9aedea2e138a919e02e9 16-Jul-2014 Stephen Hines <srhines@google.com> Update libbcc for LLVM rebase to r212749.

Change-Id: I40304090ada740c2451d32e01c7deed4f4c8c409
/frameworks/compile/libbcc/tools/bcc/Main.cpp
f2ac3176c351cd80bce77fe1488f3de2d0789c1b 26-Jun-2014 Jean-Luc Brouillet <jeanluc@google.com> Use build fingerprint and compile command for caching.

If either of those have changed, we need to invalidate the
compiled bit code.

Change-Id: I9b5cdc19e29237dc7fb2ec1627a167f3f8987702
/frameworks/compile/libbcc/tools/bcc/Main.cpp
c5e607adff80a66bc5420baffd299862abdf368d 19-Jun-2014 Jean-Luc Brouillet <jeanluc@google.com> Change cache dependency tracking.

Remove the fix dependencies and make it depend only on the source
hash. More changes coming soon to add dependencies on the Android
build fingerprint and the command line used to compile.

Change-Id: I8964044affccf52326ce286f879307eca79d0b24
/frameworks/compile/libbcc/tools/bcc/Main.cpp
a630078b32eb37a8de91ae09e26babf235d4fc9f 29-May-2014 Stephen Hines <srhines@google.com> Update libbcc for LLVM 3.5 rebase (r209713).

Change-Id: I0e882c84176d462958db05e4c9c10bfe995b8ed1
/frameworks/compile/libbcc/tools/bcc/Main.cpp
bde1a2599780d6eaebbc284976ceb690492f6abd 16-May-2014 Stephen Hines <srhines@google.com> Remove unnecessary inheritance for CompilerConfig, as we switch to offline bcc.

Change-Id: Id4a5be7b2b4627bfa7ef6279eb3b5b8e75915a7d
/frameworks/compile/libbcc/tools/bcc/Main.cpp
1ae3fd6e2290fe1635bafe91a65e0e88e641b6fc 15-May-2014 Stephen Hines <srhines@google.com> Fix some minor issues picked up by valgrind.

Standalone bcc was leaking memory due to misuse of OwningPtr.
RSInfo was not clearing a buffer before using only part of it. The
whole buffer was being written out in the resulting file, however.

Change-Id: Icd455748f81a06d022f1e5ed83a2ab1cae3fef09
/frameworks/compile/libbcc/tools/bcc/Main.cpp
002f467d12474b6abcca2fc9e1635cfa5c313779 02-May-2014 Stephen Hines <srhines@google.com> Add options to device bcc for specifying the target architecture.

Bug: 14474874
Change-Id: Id7342ef4f3be62aded142a27beb8632ea2854383
/frameworks/compile/libbcc/tools/bcc/Main.cpp
c3437f05c638f8befda59170ae788873db24dc1c 31-Jan-2014 Stephen Hines <srhines@google.com> Improve standalone bcc for on-device compilation.

Bug: 7342767

This adds functionality for driver-writers to dynamically load plugins.
If such a plugin is loaded, we then execute any function called
rsCompilerDriverInit() from it. This function can initialize any other
state the driver-writer wants.

Change-Id: I733a6a3fc59c429a542cfcaf59a57ad231a19d01
/frameworks/compile/libbcc/tools/bcc/Main.cpp
c2074caf075818abb6d3689ad924ca09f4a5ba1f 09-Apr-2014 Tim Murray <timmurray@google.com> Update libbcc for 64-bit support.

Change-Id: I369a82eb6730a33c46b6700408952fe34020ca51
/frameworks/compile/libbcc/tools/bcc/Main.cpp
0a78b11e8ade40c9519e2b25dab65a445dff4689 25-Mar-2014 Narayan Kamath <narayan@google.com> Remove unused static function in tools/bcc/Main

Fixes self-hosted clang compile error.

Change-Id: I58b7d0327ef30ab8dc8c6898ca0e2aac9390e6bc
/frameworks/compile/libbcc/tools/bcc/Main.cpp
b10c3a7d91556ef31ce91ef018fee4722b783960 08-Aug-2013 Stephen Hines <srhines@google.com> Update libbcc for LLVM merge to r187914.

Switch over to new llvm::sys::path implementation.
Remove unused Source::CreateFromFd().
F_Binary is now in llvm::sys::fs.

Change-Id: Ib0ebb8a1d8ea04e5cf36c8082cf31dab2e144554
/frameworks/compile/libbcc/tools/bcc/Main.cpp
7e9c1853efd1615e9187611e8f47ef3ec30de686 22-Jun-2013 Stephen Hines <srhines@google.com> Fix up a few minor issues with bcc standalone executable.

1) Default to -O3. This is to match the behavior of the integrated compiler
in libbcc today.
2) Actually run the config() step on the RSCompilerDriver. I previously
removed the invocation here, since it wasn't doing what we actually wanted
by default. This change restores the use of config().
3) In running the config() step mentioned in 2), we actually now respect
the -mtriple compiler flag when run on the host. Device-side compiles
will always use the target architecture. This makes it easier to generate
multiple resulting object files for different architectures.

Change-Id: I623ee8eec3d6c42375973e7b7e27f0800ea8ca48
/frameworks/compile/libbcc/tools/bcc/Main.cpp
7b980e1717f3cf418f7bc4e40597004bc1139b8b 20-Jun-2013 Tobias Grosser <grosser@google.com> bcc: Add option -emit-llvm

Change-Id: I98470c6573b216518f77d338f4659d5b9fbcc3d3
/frameworks/compile/libbcc/tools/bcc/Main.cpp
8be8dba08c97dff239ac8c6bdc7f3a52d96116ae 18-Jun-2013 Stephen Hines <srhines@google.com> Make bcc produce RS-compatible ELF objects.

Bug: 7342767

Change-Id: I48e6d459adc477fcb6f3f1d8e4eb8ff7b40c546d
/frameworks/compile/libbcc/tools/bcc/Main.cpp
88f8c52abea50f411c3774c935a6a1e04d17c182 13-Jun-2013 Stephen Hines <srhines@google.com> Update libbcc for LLVM merge to r183849.

Remove unused param to readBytes().
Path.h -> PathV1.h
Remove ability to load/run files from bcc tool.

Change-Id: I07d735fb86638412f01c4f8285d56f45ca35b672
/frameworks/compile/libbcc/tools/bcc/Main.cpp
09ca95426a7ec66def02e47048bb25289759c6fb 26-Jan-2013 Shih-wei Liao <sliao@google.com> Switch to use libcompiler_rt for compiler runtimes.

Change-Id: I64b3d4ba80343bc592fa0df72242b33b2d2ae0ed
/frameworks/compile/libbcc/tools/bcc/Main.cpp
c02eae6f35de7dfd92233d591b27c05f15c2a6a1 23-Jul-2012 Shih-wei Liao <sliao@google.com> Add kTruncate in FileBase. BUG=6841435.

And remove O_TRUNC from the default flags to OutputFile.

Change-Id: Id2ff6d5bac319d8be498e438eb3ef84e85573218
/frameworks/compile/libbcc/tools/bcc/Main.cpp
d577d11347cdad9b88c0802bf6f5ee1fd3c06f19 25-Apr-2012 Shih-wei Liao <sliao@google.com> Rewrite the command line tool "bcc."

Get rid of deprecated BCC C APIs using in bcc command.

For the usage, see "/system/bin/bcc -help" for detail.

Change-Id: I26dccd63034624509cb7311c72a45b908fc6d92c
/frameworks/compile/libbcc/tools/bcc/Main.cpp
3fb139a6da99499f227e4f21fe966b509e509ca4 03-May-2012 Stephen Hines <srhines@google.com> Revert "Rewrite the command line tool "bcc.""

This reverts commit a7b5a26a5487851706ddd6c33c1bb88137333df4.
/frameworks/compile/libbcc/tools/bcc/Main.cpp
a7b5a26a5487851706ddd6c33c1bb88137333df4 25-Apr-2012 Shih-wei Liao <sliao@google.com> Rewrite the command line tool "bcc."

Get rid of deprecated BCC C APIs using in bcc command.

For the usage, see "/system/bin/bcc -help" for detail.

Change-Id: Ie6da4779098af368c01900d54e618ee17220594e
/frameworks/compile/libbcc/tools/bcc/Main.cpp