aboutsummaryrefslogtreecommitdiff
path: root/lib/RSCompilerDriver.cpp
AgeCommit message (Collapse)Author
2017-03-29Structure layout logic cleanup.David Gross
(Revert "Revert "Structure layout logic cleanup."" This reverts commit 15440179aa78ae6ca1cc5207757691071a02b0bb.) Do not run special x86-32 transformations when slang has explicitly padded structs. Verify that front end (Module) and back end (TargetMachine) agree on the layout of every exported struct type. Cannot build without slang change: https://android-review.googlesource.com/#/c/359135/ 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/run-lit-tests.sh 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 slang" is a forthcoming slang change to add explicit padding to struct types: https://android-review.googlesource.com/#/c/359135/ Change-Id: Id938db661497710275a318e0964a36f64fcfa05b
2017-03-29Revert "Structure layout logic cleanup."David Gross
This reverts commit 8281b5d72ff27077c461aa22e5c51a3a69e25916. Change-Id: I3ed6617ca890c8dfd537b645357d0344746e549a Reason: AddressSanitizer: container-overflow (aosp-master/aosp_x86_64-eng build)
2017-03-28Structure layout logic cleanup.David Gross
Do not run special x86-32 transformations when slang has explicitly padded structs. Verify that front end (Module) and back end (TargetMachine) agree on the layout of every exported struct type. Cannot build without slang change: https://android-review.googlesource.com/#/c/299366/ Bug: http://b/29154200 Bug: http://b/28070272 Test: (aosp_x86-eng emulator, full_fugu-eng, aosp_angler-eng) x (RsTest 32-bit, RsTest 64-bit, cts -m RenderscriptTest) tests/run-lit-tests.sh 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 slang" is a forthcoming slang change to add explicit padding to struct types: https://android-review.googlesource.com/#/c/299366/ Change-Id: I536497d1152995bf93a48dc83527d1575d5f947e
2017-03-22Make bitcode wrapper info available to MetadataExtractor.David Gross
Copy bitcode wrapper information (compiler version, optimization level) from bitcode wrapper to Module metadata, where it can be found by MetadataExtractor instantiated from Module. Previously, such a MetadataExtractor ignored the information in the bitcode wrapper; instead, it - nonsensically set compiler version to RS_VERSION, which is an API level rather than a slang version; and - set optimization level to 3. Remove unused MetadataExtractor::getTargetAPI(): - Old behavior: - For user bitcode, got actual targetAPI. - For libclcore, got 0. - For linked bitcode (user bitcode + libclcore), got uninitialized/garbage value. - It's not clear what a sensible value would be for libclcore or for linked bitcode (or perhaps it should be an error to query the targetAPI in those cases). What a sensible value would be depends on how we intend to use it. This change enables a forthcoming libbcc change that needs to know the slang version. Bug: http://b/29154200 Bug: http://b/28070272 Test: full_fugu-eng Tried ( modified slang, modified bcc) and (unmodified slang, modified bcc): - libbcc/tests/run_lit_tests.sh; RsTest; cts -m RenderscriptTest - confirmed that our driver is loaded rather than libPVRRS.so - By instrumenting modified bcc and running RsTest, confirmed that: - MetadataExtractor properly obtains slang version from Module. "Modified slang" is a forthcoming slang change that changes the slang version. Change-Id: Ifc9c1348c96a88bf7ddb344721f67f89359a4fe6
2017-03-03Make libbcc, libbcinfo, bcc no longer depend on libcutils and libutils.Miao Wang
Bug: 34396220 Test: mm and CTS tests pass Change-Id: I9a5e608dfc2a92e411da5c7cff2406209052715d
2017-02-23Merge "Remove OutputFile and Disassembler from libbcc."Jean-Luc Brouillet
2017-02-23Merge "Add back version info to Script in libbcc"Jean-Luc Brouillet
2017-02-22Remove OutputFile and Disassembler from libbcc.Jean-Luc Brouillet
For OutputFile, the code can be a lot simpler by just relying on what llvm provides. Disassembler was also not used. Bug: 34265954 Test: Compiled. Ran imageprocessing_jb and a compat lab test. Test: Ran CTS. Change-Id: I360a55541b6bbb9c104415e44920728c8d451446
2017-02-22Add back version info to Script in libbccJean-Luc Brouillet
An upcoming CL for the debugger will need this. Bug: 34265954 Test: Compiled. Ran rstest. Change-Id: I6e133e19c5348659cdc799a9e2272142c6bc071a
2017-02-21Remove unused InputFile in libbcc.Jean-Luc Brouillet
This class is not used. Bug: 34265954 Test: Compiled. Change-Id: I3e23476c8085410fec4255e07a46bebe2a130c73
2017-02-20Remove unused File code in libbcc.Jean-Luc Brouillet
Remove unused code from File related classes. More refactoring to come, breaking this in small easy to understand steps. Bug: 34265954 Test: Compiled. Ran imageprocessing_jb and a compat lab test. Test: Compared that the APK have not changed in size. Change-Id: Ic4218b49801d13f0fbbe267516882c150d6d4c93
2017-02-20Merge RSScript.cpp and Script.cppJean-Luc Brouillet
We don't need two classes. Bug: 34265954 Test: Compiled. Ran imageprocessing_jb and a compat lab test. Test: Compared that the APK have not changed in size. Change-Id: Ib91e16d80bd5ba33c5946ff6f5b11a579338eb1c
2017-02-16Flatten the libbcc directories.Jean-Luc Brouillet
Get rid of the Support, Core, and RenderScript subdirectories for the sources and the header files. Deleted the unused Sha1 header file. Bug: 34265954 Test: Compiled everything, ran a regular and a support lib app. Change-Id: Iac760ee3c1985259593e7bbd1dd2dd35e99f654b