• Home
  • History
  • Annotate
  • only in /frameworks/compile/libbcc/lib/Core/
History log of /frameworks/compile/libbcc/lib/Core/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a48ea364652efcf947dd33c8a6ba893e9c00dd6a 02-Jun-2016 David Gross <dgross@google.com> Delete simple reduction implementation.

Bug: 27298560
Change-Id: Id826426fc81458ad66118bf7b2059a7a6f02a047
ompiler.cpp
c6c9c1f04b480a395daa1bdd5d634060e505bd80 15-Apr-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes from topic 'struct-fix' into nyc-dev

* changes:
Translate GEP instructions on structs to GEP on int8*
X86: Fix kernel Input/Output GetElementPtr offset issue
9e0f8f0c8965834de02d007bb30e1dc950cf9762 12-Apr-2016 Pirama Arumuga Nainar <pirama@google.com> Translate GEP instructions on structs to GEP on int8*

http://b/24142721

X86 data layout has 64-bit scalars aligned at 4-byte boundaries, while
ARM aligns these data at 8-byte boundaries. To bring frontend- and
backend-generated code into agreement, this patch adds a pass to
translate GEPs on structs to GEPs with int8* operands and byte offsets.
This pass runs only on X86 targets.

Change-Id: I961b2bc7db9f57f15126f27396db42c9deedfd43
(cherry picked from commit d2d5ee3893220cec256c829a4740a718232f84ac)
ompiler.cpp
57fd9f882f3359be4201c42b02aebf785d311df2 08-Apr-2016 David Gross <dgross@google.com> If a general reduction kernel lacks a combiner function, synthesize one.

The CPU reference driver can only go multithreaded for a reduction kernel
if that kernel has a combiner function.

Bug: 27299475

Change-Id: If7f3a9ba8ec5e15ed5f3ef96968d28d650b01c20
ompiler.cpp
791d57c5b387448cd672010ff970daed5ae41773 30-Mar-2016 David Gross <dgross@google.com> Merge "Preserve generalized reduction combiner function for use by driver." into nyc-dev
8ca13573dee07254c95067d05476a82980d8fd6f 21-Mar-2016 David Gross <dgross@google.com> Preserve generalized reduction combiner function for use by driver.

This is needed for multithreaded execution of a reduction kernel.

Bug: 27299475

Change-Id: Id94606f73eea3462232a7f7473fa7a3324f536c6
ompiler.cpp
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
ndroid.mk
ompiler.cpp
ource.cpp
7a9a96766a6636218b516d61fbe47a99dea8afc4 25-Nov-2015 Dean De Leo <dean@codeplay.com> Avoid doing symbol internalization when compiling with -O0.

Don't call the symbol internalization pass when compiling with -O0.
This will allow all RenderScript library functions to be available to
lldb, so the developer can call these builtin functions from lldb's
command line.

(cherry picked from commit 688cf3ffb7efe543fb1c47b581b1f36a346dfb7c)

Change-Id: I38a57edda0366a7f54cbd066d21e6aadc7e4eab7
ompiler.cpp
c545d6f10fa4827de235b5f85b58e803eba725bc 08-Feb-2016 David Gross <dgross@google.com> General reduction initializer and outconverter functions must not be internalized.

Requires corresponding frameworks/compile/slang change.

Now that the front end is no longer adding these functions to
@llvm.used, we must ensure that they do not get deleted -- they
are needed by the CPU reference driver.

Note that it is not necessary for bcc to explicitly delete:
- the UNexpanded accumulator functions
- the @.rs.reduce_fn.* dummy variables created by slang to ensure that
the general reduction constituent functions survive front-end
compilation
The existing internalization and unreferenced symbol removal logic
takes care of this.

Bug: 23535724
(cherry picked from commit 79a19cec3bb00583edc55e2afa2a96b408268545)

Change-Id: I7d7a613e36ff7a1357cb9b5a75d4961c35edd09d
ompiler.cpp
10f2a8f1d60724c306d01cdd0682e38122637502 04-Feb-2016 Pirama Arumuga Nainar <pirama@google.com> Don't internalize __truncxfhf2 for x86

http://b/26165616

As a WAR for this bug, we define __truncxfhf2 in
frameworks/rs/driver/runtime. Don't internalize this function for x86,
so that a script can find and link against it.

Change-Id: I6ad2feeeda0a26139782346344c403cf597d469b
ompiler.cpp
09c7a41f73602bec33e9d392cc959d78931f73c4 25-Nov-2015 Dean De Leo <dean@codeplay.com> Initial version of debug info pass for RS.

This introduces a new LLVM pass into libbcc called
RSAddDebugInfoPass. Its purpose is to add debug information metadata
to LLVM constructs generated by the other parts of libbcc. The
generated code generally lacks sufficient debugging information as it
has not been processed by the clang-based front-end.

The initial version of RSAddDebugInfoPass provides the following:
1. It annotates the expanded function generated by RSExpandKernel pass
with debug information, stating the name of the function and
source file indicating that the function has been generated.
2. It annotates the instructions of the *.expand function with
filename/line indicating that the function code has been generated.

The source file of both the generated function definition and
the instructions that make up the function is mapped to the source
location of /opt/renderscriptdebugger/1/generated.rs:1. That might be
source-mapped by the debugger to an appropriate file in the SDK, the
contents of which clearly indicate that the user is dealing with
generated code (i.e. one without a "physical" source file).

Change-Id: I2e566160a448d7bfbb3f8d16680e09e43c845693
ompiler.cpp
ource.cpp
1e321862daea867b44700360c4827bcb7b97968a 25-Nov-2015 Dean De Leo <dean@codeplay.com> Split the libbcc pass manager into two phases.

This is to prevent unintended interactions between passes as the
ordering of side effects is different when running inside of a pass
manager when compared to running passes one by one. For example, the
LLVM object file writer pass outputs some parts of the debug information
to the target file on pass initialization. If a pass that
is scheduled before the object file writer pass modifies the debug
info metadata in the pass run phase, the alterations will be
reflected in the resultant LLVM module but NOT in the output file.

Change-Id: I4dba6a5acb5535205f1208f94de7211db50644e4
ompiler.cpp
79e1a05f704ada1bb12749fe3f8b9b69309be9e5 11-Jan-2016 David Gross <dgross@google.com> Metadata support for general reduction.

Needs corresponding change in frameworks/rs: The driver and bcinfo
need to remain precisely in sync with regard to metadata format in
order for RenderScript to work at all.

Also fixed memory leak in MetadataExtractor.

Bug: 23535724
Change-Id: I6857f605c79139bdce362a7aeef73c91fc502ff6
ompiler.cpp
6af50b75fc0132a9957f19a11357c446b4836b16 19-Aug-2015 Dan Willemsen <dwillemsen@google.com> Stop using HOST_OS, whitelist windows modules

Bug: 23566667
Change-Id: I7ef9d73b897788ed4c8a8d8ca9a582cc08af15f9
ndroid.mk
4e7a50685ae18a24087f6f2a51c604e71fab69e2 31-Jul-2015 Matt Wala <wala@google.com> Expand reduce-style kernels.

Bug: 22631253

Rename the RSForEachExpand pass / source file to RSKernelExpand. In
addition to already being responsible for expanding foreach-style
kernels, RSKernelExpand now expands reduce-style kernels from

define foo @func(foo %a, foo %b)

into

define void @func.expand(i8* %inBuf, i8* %outBuf, i32 len)

The expanded function reduces a sub-range of its input.

Change-Id: I518fa9367b57111a2f2a1b23903ff870c421beeb
ompiler.cpp
5aefc98db2dc14a703ce3d4f134565b834686552 04-Aug-2015 David Gross <dgross@google.com> Clean up Compiler::runPasses().

Flatten out call tree rooted at Compiler::runPasses(), to make it
easier to understand.

Bug: 22801527

Change-Id: I680f9443bba3328c4c0da73a2358d4cd12094d20
ompiler.cpp
ebff2ead4ad622ff1bd3f3c108790cead62fe7c7 22-May-2015 Pirama Arumuga Nainar <pirama@google.com> Screen bitcode for non-RS functions before linking with runtime lib

Bug: 19425238
Bug: 20894432

Perform the screening of non-RenderScript functions in the script before
linking against the runtime lib. Previously, this used to be done after
linking with the runtime lib, LTO passes and just before code
generation.

This allows vendors to link against a different runtime library that may
not have all the functions as the CPU reference driver and add new
builtins specific to their driver.

Moreover, symbols introduced by LLVM optimizations no longer need any
special handling.

Change-Id: I5628aa15547a9d56ef7e6550fcb45e8ffa821ade
ompiler.cpp
c2ca742d7d0197c52e49467862844463fb42280f 29-May-2015 David Gross <dgross@google.com> Replace assert() with project-specific version.

Our convention is to use our own form of assertion (bccAssert,
rsAssert, slangAssert) rather than C standard assertion (assert)
because the latter is disabled for the Android build process.
However, a few instances of assert() somehow made it through.

Bug 21444723

Change-Id: I6702268d452317bf0d78304f112fbfafefe3d5b9
ompiler.cpp
d6dba60912f3eb9b6257ebe97daf63d4600fbb51 23-May-2015 Stephen Hines <srhines@google.com> Merge "Provide additional information about global variables."
fb81ec1a875d13d9750006313b9123903336101d 19-May-2015 Stephen Hines <srhines@google.com> Provide additional information about global variables.

Bug: 20306487

This patch extends our global information pass to include details about the
type of a global variable, whether or not it is static, constant, or a
pointer. It also refactors code that deals with conversion between
RenderScript's internal data types and LLVM's type system. A subtle bug
has also been fixed with respect to the RSInvokeHelperPass. The previous
version could ignore an rs_* object that did not have a numeric suffix.
The new helper function properly addresses cases like this.

Change-Id: If9c933a885bf6a9063b7edec3f0873e1b144188d
ompiler.cpp
cf8b2d0d2fcd7acf9769b3e1f26ac6e3a0a9b6e7 19-May-2015 David Gross <dgross@google.com> Sanitize Module's target information.

We have always used a command line specified triple when instantiating
TargetMachine, rather than the triple from the Module. Now sanitize
the Module by installing this same triple in the Module, and installing
the TargetMachine's data layout in the Module; this way, the Module and
the TargetMachine will be consistent.

Change-Id: I07480ba2c6effbabe15f72755d9d5792ed494fb0
ompiler.cpp
e57fde54a4145a85439545f79bd8747682f86ded 15-May-2015 Pirama Arumuga Nainar <pirama@google.com> Merge "Update libbcc for rebase to LLVM r235153"
98137cca7eebca946b869b010fef2821c9bf4971 06-May-2015 Pirama Arumuga Nainar <pirama@google.com> Update libbcc for rebase to LLVM r235153

Some changes related to GEP may impact us in the future:
- GEP constructors take an additional argument - the pointee type of the
resulting pointer. Update bitcode readers accordingly. They take
nullptr for now. This behavior should be retained at least for 3.x.
- Likewise, CreateStructGEP and CreateConstInBoundsGEP2_32 need the
pointee type argument. Passing nullptr for the extra argument for
now. According to commit message in r233938, passing nullptr may not
work in the future. Unlike the BitcodeReaders, we can pass the right
pointee type here. b/20886457 is created to track this issue.

Change-Id: I2450da1c36470fb9defd387d74360480c3e4bd2f
ompiler.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
ompiler.cpp
e1c7d298e3e38ffff294ce57c37ab43827a67ee5 15-Apr-2015 Stephen Hines <srhines@google.com> Make better use of getStringOperand() for MetadataExtractor.

This change also cleans up some of the code from a prior rebase.
It also captures two additional broken metadata cases (from corrupt
object slot and/or pragma metadata).

Change-Id: I61e161d2b0e211349683e36160d564493d802a12
ompiler.cpp
8c24f8d1d75b619130e8bfce204ed9695362d4a1 17-Mar-2015 Pirama Arumuga Nainar <pirama@google.com> Undo AArch64 pass-by-pointer for X86-64

bug 19779488

AArch64's calling convention passes large objects by pointer/reference.
Consequently, RS functions exported in the driver need special handling
for x86-64. This patch creates a new pass to libbcc that identifies
pointer arguments created due to the AArch64 convention and marks them
as pass-by-value.

Change-Id: I2e24edd9704e843b118f4c445cfd92f61f9de909
ompiler.cpp
5cb1f3949c5bdd43c84647920d147a6b8509e256 07-Apr-2015 Stephen Hines <srhines@google.com> Update libbcc for LLVM rebase to r233350.

- Remove direct calls/use of DataLayoutPass.
- Move BitcodeReader.h (declarations) into BitcodeReader.cpp files.
- Fix typed/untyped GEP.
- Add empty materializeMetadata(), since we don't defer it ever.
- Fix longstanding (but insconsequential) difference between
bitc::CST_CODE_INLINEASM and bitc::CST_CODE_INLINEASM_OLD.

Change-Id: I135e494beea2f5992db1cb5c038d52cced991e72
ompiler.cpp
1bd9f627fa0affb457507e86b0b6684c695fe726 18-Mar-2015 Stephen Hines <srhines@google.com> Update libbcc for LLVM rebase to r230699.

Change-Id: If6717d2df5cc74e7daa493a4be7ac891f8e4928f
ndroid.mk
ompiler.cpp
1d93a190e62ec1588b4724ca8759216b2d0b76d7 25-Mar-2015 David Gross <dgross@google.com> Add RSInvariant pass to recognize Load from RsExpandKernelDriverInfo as invariant.

This allows more-aggressive optimization of foreachexp-generated code and of the
rsGet*(rs_kernel_context) API functions. In particular, it facilitates LICM of
Loads out of the wrapper loop in a .expand function.

Bug: 18964628
Change-Id: I77a87b325724ca08c4a04f5a46f316be78a5e0fd
ompiler.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
ource.cpp
7f59b5f76c7149b42ff6d4910c6f6165b3358e72 12-Feb-2015 Tim Murray <timmurray@google.com> Disable autovectorization for now because of a scalarizer bug.

bug 19324423

Change-Id: I7e15d66ff5cad7c53dc23384a2afb47caef5719e
ompiler.cpp
9fe081b8bae8a95d903f8fa8dc0a7590ae706606 27-Jan-2015 Pirama Arumuga Nainar <pirama@google.com> Mark whether a script is threadable

bug 19095896

Add a pass to check for calls to non-threadable functions. We add a
metadata flag to store the result. RSEmbedInfo also adds this
information to .rs.info.

Change-Id: Iba9a41b338d21a3529a1092656a51be985910fca
ompiler.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
ource.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
ompiler.cpp
50f5eb4b27ce6dd2a02cf389ac2acfa95c6939f1 10-Dec-2014 Tim Murray <timmurray@google.com> Enable autovectorization.

Change-Id: Ic35548c3875e5a078e46b594aae7accee79e47b6
ompiler.cpp
5db508c73e6177eb306bac4725616b7c001587c4 06-Jan-2015 Stephen Hines <srhines@google.com> Fix a few bugs in RSScreenFunctionsPass.

Bug: 18322681

This patch fixes a few small issues:
1) The debug context runtime stubs had a few minor name mangling errors.
2) The verification of functions needs to be done after we have stripped
away any unused code. Without this, there are issues with debug contexts,
because they have unused references to rsOffset()/rsOffsetNs().
3) We don't actually need to maintain a separate status return for the pass,
since llvm::report_fatal_error() will do the right thing in the case of
an illegal function being called.

Change-Id: I0afe7cf58148cd132f9356268d5ad8acdce1a02d
ompiler.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
ompiler.cpp
579361346abc6696c805e3904a18178ebce4e4a3 26-Nov-2014 Stephen Hines <srhines@google.com> Update libbcc for LLVM rebase to r222494.

Change-Id: Idebd60a98bbe62007086386e5497d1df7d901e3d
ompiler.cpp
cript.cpp
ource.cpp
bb73b74a9f6ad26c2ab30557bfe6916a44ed75f6 04-Nov-2014 Tim Murray <timmurray@google.com> Modify RSForEachExpand to move casting of pointer types outside the inner loop.

This makes autovectorization work in some limited cases.

bug 18071147

Change-Id: If9f08760310b90f62e88dfce257575205b3cb5b2
ompiler.cpp
b7bce7436876884dfd78ec41d147ddbe47e37cbd 04-Nov-2014 Tim Murray <timmurray@google.com> generate calls to rsSetObject inside .helper invoke functions

bug 18071147

Change-Id: I0ff00b3a86cd799cdb1eebcd1000b74070ee0cdf
ompiler.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
ompiler.cpp
81c6c7e980616fb2dd3da36acab11c3ada840a46 10-Sep-2014 Stephen Hines <srhines@google.com> am 10ee6af6: Ensure that we only compile the proper bitwidth bitcode for an architecture.

* commit '10ee6af612d585301c6f2b2f0f04e9bc80b338bb':
Ensure that we only compile the proper bitwidth bitcode for an architecture.
10ee6af612d585301c6f2b2f0f04e9bc80b338bb 10-Sep-2014 Stephen Hines <srhines@google.com> Ensure that we only compile the proper bitwidth bitcode for an architecture.

Bug: 16031597

Prior to this change, it was possible to compile 32-bit bitcode for a 64-bit
architecture and/or 64-bit bitcode for a 32-bit architecture. This change
enforces that the target architecture's pointer width matches the pointer
width of the individual RS triples that we work with.

Change-Id: Ida65582875fb061911fc6a92cd99454f1ab6c5e6
ompiler.cpp
900c6c1f08f7c572125d7d39abe0f0f9eafbfa14 14-Aug-2014 Chris Wailes <chriswailes@google.com> Replace NULL macros with nullptr literals.

Change-Id: Id2311cda59dd42c74b3ed54d3ff6cfd509012738
CCContext.cpp
ompiler.cpp
ource.cpp
f21590eae009b4f596d7e448d0b8e142c46fc382 16-Jul-2014 Stephen Hines <srhines@google.com> Update libbcc for LLVM rebase to r212749.

Change-Id: I40304090ada740c2451d32e01c7deed4f4c8c409
ompiler.cpp
ource.cpp
d0993af5b1337f8186dd9aedea2e138a919e02e9 16-Jul-2014 Stephen Hines <srhines@google.com> Update libbcc for LLVM rebase to r212749.

Change-Id: I40304090ada740c2451d32e01c7deed4f4c8c409
ompiler.cpp
ource.cpp
a630078b32eb37a8de91ae09e26babf235d4fc9f 29-May-2014 Stephen Hines <srhines@google.com> Update libbcc for LLVM 3.5 rebase (r209713).

Change-Id: I0e882c84176d462958db05e4c9c10bfe995b8ed1
ompiler.cpp
ource.cpp
ce73d6f365394883dd23b1da97135e4002e784e0 06-May-2014 Stephen Hines <srhines@google.com> Remove Makefile->Header code generation from libbcc.

These variables/defines are not often used and they complicate the use of
target information in other Android libraries.

Change-Id: I93dc71e17ae8ece1be46a3a609639ec8380cdaf9
ndroid.mk
c2074caf075818abb6d3689ad924ca09f4a5ba1f 09-Apr-2014 Tim Murray <timmurray@google.com> Update libbcc for 64-bit support.

Change-Id: I369a82eb6730a33c46b6700408952fe34020ca51
ompiler.cpp
ource.cpp
c6e6ee4392390c0888f808220adf33334e1f64a4 07-Apr-2014 Tim Murray <timmurray@google.com> Add DISABLE_LLVM_DEVICE_BUILDS to libbcc.

Change-Id: Iaad7b2ea8eea6c89c1c1a3d0e145bbb7bf60c6b9
ndroid.mk
b316f58fd790ad302b72f569af3e89734ae09db7 15-Aug-2013 Tobias Grosser <grosser@google.com> Run verifier on RenderScript .bc modules

Verify the bitcode to abort gracefully on invalid .bc modules instead of
crashing randomly. This patch will not detect all problems with the bitcode
writing, but it is likely to catch attribute breakages such as Bug 9503142. It
also prevents us from crashing on the incorrect debug info found in Bug
1031440.

Change-Id: I2bf626b7aae173dc7238a499b2a0474301197cbe
ource.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
ource.cpp
6a5fa14074200a18824defa0bffc64e5f2487152 24-Jul-2013 Tobias Grosser <grosser@google.com> Remove beforeExecuteLTOPasses callback

This callback had very unclear semantics and the current use was suprising.
Specifically, it took a PassManager parameter, but adding anything to this pass
manager would cause the passes to be executed after the other LTO passes The
only way to execute passes before the LTO passes, was to create a new pass
manager that executes a pass right before all LTO passes (that have already
being queued in the pass manager passed in as a parameter) will be executed.
The very same behavior can be achieved by just adding our passes to the
normal pass manager using the "BeforeAddLTOPasses" callback.

We used this callback to schedule the ForEachExpand pass. This pass is now
moved to the beforeAddLTOPasses callback.

Change-Id: I3916543a4ee282e403174b90dc7b7588baab9ea3
ompiler.cpp
5b7f52aff2030d520ee2ac6d3ac7d917f38d550c 23-Jul-2013 Tobias Grosser <grosser@google.com> Improve error code to error string translation

We now use an explicit switch to translate an error code to an error string as
this allows the compiler to statically verify that we covered all cases. While
at it we add a new error message for "kErrInvalidSource" which was missing
previously. We also remove "kMaxErrorCode" as it was unused.

Change-Id: I8ade465697c7fa6cc3e48c5c581e5a4dfcf15959
ompiler.cpp
2f6103bb820139d19f709e687f5bf4f86226057e 01-Jul-2013 Tobias Grosser <grosser@google.com> Remove manually inlined populateLTOPassManager()

Instead of copying the content of
llvm::PassManagerBuilder::populateLTOPassManager() we just call it.
This does not only reduce code duplication, but also ensures that we do not
miss anything. Specifically, the previous code did not run any alias analysis
at all. After this change we now always run tbaa and basicaa. This does not
give any benefits at the moment, but is a prerequisite for upcoming changes to
our alias analysis.

Change-Id: I01b352255e958cbc1c996d934a519f5ab71f9f24
ompiler.cpp
27fb7edfd3f53f52fba6ee81267c02f7896198a3 22-Jun-2013 Tobias Grosser <grosser@google.com> Dump LLVM-IR before generating target code

Dumping the IR earlier prevents target specific passes to modify
the IR before it is dumped.

Change-Id: I8a61efb7140b0c2025381ea1ad1f4cf3522ec870
ompiler.cpp
4e9864870f4a2c15ca8e1c333d92487a87ef0655 16-Jun-2013 Stephen Hines <srhines@google.com> Remove libbcc's dependence on mclinker.

These features are no longer being used by libbcc, and static initializers
from mclinker are conflicting with tool development (i.e. positional argument
specifiers for the new bcc executable).

Change-Id: I0da427034c50015607a59d4193547868fa9eeabf
ndroid.mk
inker.cpp
86e4506416f974d3c717deaca2b17b0792cc2d49 07-May-2013 Stephen Hines <srhines@google.com> Adapt libbcc for LLVM/Clang/mclinker update.

Change-Id: I80260f41b3c80e4cd260480ff32ee35a9215e39a
inker.cpp
06731a6150ae8014d37258d5f32ef8bc14a3db63 13-Feb-2013 Stephen Hines <srhines@google.com> Add LinkRuntimeCallback() and supporting functions to RS compiler.

Change-Id: I7745406a94ba74896ee98752a3de106d2672159d
ource.cpp
b730e239619a546d93e5926ea92d698ab77ec7f6 10-Jan-2013 Stephen Hines <srhines@google.com> Updates for LLVM merge to r171906 on 20130108.

Change-Id: I096cb90103b19e3110ea562d60e5eb8ad48d9b67
CCContextImpl.h
ompiler.cpp
ource.cpp
ca4f96c0f1fcf7a2bdc5a432b751befff149f73d 03-Jan-2013 Shih-wei Liao <sliao@google.com> Apply changes to migrate on MCLinker 2.0.2-1.

Change-Id: I8b25ad23c257e8a98069611dde525cc6d37e06e9
inker.cpp
52acbab46d32526a42f9015f175ea9a552426966 17-Dec-2012 Shih-wei Liao <sliao@google.com> Apply changes to migrate on MCLinker 2.0.1.

Change-Id: I6a3a4fac269a7dbec6ecbf06cccfddf08a03251b
inker.cpp
03547495b607bb2293a884c0335fe234de49e1dd 03-Aug-2012 Shih-wei Liao <sliao@google.com> Apply changes to migrate on MCLinker 1.4.0-phoenix.

Change-Id: Ib83f08c7bb115a5824ee67e8fd7869641a6a561c
inker.cpp
6202dda52b7898340aac05e73adebc4fb9199f4d 27-Jul-2012 Shih-wei Liao <sliao@google.com> Add Source::CreateFromFd(). BUG=6886348.

Change-Id: I70bba15b664d6290931faba0482be1241dcc6ede
ource.cpp
f0407796f0c3e16065db7fd61a2b09e27aaac24d 27-Jul-2012 Shih-wei Liao <sliao@google.com> Remove MCLinker headers dependency.

Change-Id: I265770d4157068a934c9ae9d42fdd621b2683a68
inker.cpp
8fe71dd4cd49c426cafa73ab21ab7a95dd15254a 27-Jul-2012 Shih-wei Liao <sliao@google.com> Fix McLinker and bcc::Linker default library search path.

Shared objects, for example, libm.so, can not be found under the
default search pathes (/usr.) This is because the sysroot cannot
propagate its value to the default search pathes since it was
given after the search pathes has been set.

Change-Id: I5e138713d1c061de7ef6ac1599d8c036ed35b3f2
inker.cpp
49e6b46052bca8f297d2be362cd1d327185b896d 18-Jul-2012 Shih-wei Liao <sliao@google.com> Fix Mac build breakage: Remove 2nd, redundant including of llvm.

Change-Id: Ic428ff290ffd1be11687d8bf1dfa7bc14bcf6a42
ndroid.mk
93c8832a6916a54d984764bf83a8a77cbae4143b 16-Jul-2012 Shih-wei Liao <sliao@google.com> Linker funtionality based on MCLinker.

Change-Id: I0c0d105a2538f1f8ccf9f6925c027b32da3c9ca8
ndroid.mk
inker.cpp
e6362661bb058a73c63efb11f4f25a63e77cac8c 16-Jul-2012 Shih-wei Liao <sliao@google.com> Add MCLinker hooks to libbcc.

Change-Id: I3f1260537d719f9501a1d6a140f02c258231b7c2
ndroid.mk
7ea913ce7d1151eb9bf455c2dfbe6b32987444f2 17-Jul-2012 Shih-wei Liao <sliao@google.com> Revert "Add MCLinker hooks to libbcc."

This reverts commit c441933658023404534825b8348f83650c8a15ee.
ndroid.mk
c441933658023404534825b8348f83650c8a15ee 16-Jul-2012 Shih-wei Liao <sliao@google.com> Add MCLinker hooks to libbcc.

Change-Id: I18117700788b685642498f80bbe0433b2fa2d186
ndroid.mk
7bcec85228c1eceade6efc9cd7d02ef81c8d55e9 25-Apr-2012 Shih-wei Liao <sliao@google.com> Remove all deprecated BCC C APIs.

This commit revises RSCompilerDriver::build(...) method which is
custom-made for RenderScript. It also removes
RSScript::SourceDependency since RSScript no longer needs to keep
dependency information for its associated source.

Change-Id: Ic70f6db9fd7dd57a42f0b464132636b9d8ddf5c0
ndroid.mk
cc.cpp
cc_internal.h
2665c2f94ed14c1d15925d83b47aa519a11dafe5 25-Apr-2012 Shih-wei Liao <sliao@google.com> Link libclcore.bc for RenderScript by default.

Change-Id: I6278bb4183a13ae3485a2afecb6b87ea849ad01e
cc.cpp
f290793bc65b8483332ac8b568962395c4a63927 13-Apr-2012 Zonr Chang <zonr.net@gmail.com> Refine SHA-1 related stuffs.

1. Introduce libbcc.sha1.so instead of raw file libbcc.so.sha1
* Now tools/build/gen-sha1-stamp.py generated assembly contains
symbols libbcc_so_SHA1 and libRS_so_SHA1 associated with their
SHA-1 digests.
* In that way, their SHA-1 information can be obtained via
dlopen().
2. Refine Sha1Helper to Sha1Util.
2. Remove unused tools/build/dataconvert.py by the way.

Change-Id: I345e1a09e6206748fb8dfabf891154de97a063ec
cc.cpp
ef73a242762bcd8113b9b65ceccbe7d909b5acbc 12-Apr-2012 Zonr Chang <zonr.net@gmail.com> Refine DebugHelper.h into Log.h.

This removes USE_FUNC_LOGGER from libbcc-config.mk.

Change-Id: Ia496d41388135706a501bd362075f53d1c0eb6aa
CCContext.cpp
ompiler.cpp
ource.cpp
cc.cpp
7a5d423014e1cc95e34764b3ddf8e80ace3509b8 12-Apr-2012 Zonr Chang <zonr.net@gmail.com> Get build information in C++ way.

Change-Id: I5d2d2c18192bf9e5d2b9aa5a2bc1cce331191572
cc.cpp
c72c4ddfcd79c74f70713da91a69569451b5c19e 12-Apr-2012 Zonr Chang <zonr.net@gmail.com> Make libbcc public.

This commit is not expected to change any functionality.

Change-Id: I364e8bad32d946281b78b1ce36a1b26bf60e3055
ndroid.mk
CCContext.cpp
CCContextImpl.cpp
CCContextImpl.h
ompiler.cpp
cript.cpp
ource.cpp
cc.cpp
cc_internal.h
2f6a493aea1b6e5ad318a759fedb58713a5a374c 03-May-2012 Stephen Hines <srhines@google.com> Revert "Make libbcc public."

This reverts commit 80232dd16c0affb2afae01cde6c94abf23ac1ba8.
ndroid.mk
CCContext.cpp
CCContextImpl.cpp
CCContextImpl.h
ompiler.cpp
cript.cpp
ource.cpp
cc.cpp
cc_internal.h
aa72a210b0f73671b01984020a74360c10427e31 03-May-2012 Stephen Hines <srhines@google.com> Revert "Get build information in C++ way."

This reverts commit 44d991658dbd5b80648a3944f1760ad19bbcac09.
cc.cpp
5b948190e3b311d06526addbb8f0e77a76da2467 03-May-2012 Stephen Hines <srhines@google.com> Revert "Refine DebugHelper.h into Log.h."

This reverts commit b519fe3f1d780873608f41d69316054e05c7e918.
CCContext.cpp
ompiler.cpp
ource.cpp
cc.cpp
6975a6653f5c433ba2fc009b4400c1c8157b512f 03-May-2012 Stephen Hines <srhines@google.com> Revert "Refine SHA-1 related stuffs."

This reverts commit 6378d8f50449d79b8937c238b968ceeb9dbd4ee1.

Conflicts:

Android.mk

Change-Id: Ib8988583a0b916d21e9314e919269f02c4dd600e
cc.cpp
c4fba3156a3fefef4d5893031d37a5b6b4373896 03-May-2012 Stephen Hines <srhines@google.com> Revert "Link libclcore.bc for RenderScript by default."

This reverts commit 0467d9a53b20f8c9069019cde9f035c127acbc9a.
cc.cpp
7dfc4d8e7c29fb65ee8c0bef6ad91bf3928a77d1 03-May-2012 Stephen Hines <srhines@google.com> Revert "Remove all deprecated BCC C APIs."

This reverts commit 170d420231f10d5b914fde505202c58f11f43e27.
ndroid.mk
cc.cpp
cc_internal.h
170d420231f10d5b914fde505202c58f11f43e27 25-Apr-2012 Shih-wei Liao <sliao@google.com> Remove all deprecated BCC C APIs.

This commit revises RSCompilerDriver::build(...) method which is
custom-made for RenderScript. It also removes
RSScript::SourceDependency since RSScript no longer needs to keep
dependency information for its associated source.

Change-Id: I74335b52d0f9fe91343c30caada2a4df07008e5b
ndroid.mk
cc.cpp
cc_internal.h
0467d9a53b20f8c9069019cde9f035c127acbc9a 25-Apr-2012 Shih-wei Liao <sliao@google.com> Link libclcore.bc for RenderScript by default.

Change-Id: I93eb5a09689373afa973b8c08dd0842152220217
cc.cpp
6378d8f50449d79b8937c238b968ceeb9dbd4ee1 13-Apr-2012 Zonr Chang <zonr.net@gmail.com> Refine SHA-1 related stuffs.

1. Introduce libbcc.sha1.so instead of raw file libbcc.so.sha1
* Now tools/build/gen-sha1-stamp.py generated assembly contains
symbols libbcc_so_SHA1 and libRS_so_SHA1 associated with their
SHA-1 digests.
* In that way, their SHA-1 information can be obtained via
dlopen().
2. Refine Sha1Helper to Sha1Util.
2. Remove unused tools/build/dataconvert.py by the way.
cc.cpp
b519fe3f1d780873608f41d69316054e05c7e918 12-Apr-2012 Zonr Chang <zonr.net@gmail.com> Refine DebugHelper.h into Log.h.

This removes USE_FUNC_LOGGER from libbcc-config.mk.
CCContext.cpp
ompiler.cpp
ource.cpp
cc.cpp
44d991658dbd5b80648a3944f1760ad19bbcac09 12-Apr-2012 Zonr Chang <zonr.net@gmail.com> Get build information in C++ way.
cc.cpp
80232dd16c0affb2afae01cde6c94abf23ac1ba8 12-Apr-2012 Zonr Chang <zonr.net@gmail.com> Make libbcc public.

This commit is not expected to change any functionality.
ndroid.mk
CCContext.cpp
CCContextImpl.cpp
CCContextImpl.h
ompiler.cpp
cript.cpp
ource.cpp
cc.cpp
cc_internal.h