#
81d08294 |
| 06-Jan-2017 |
David Blaikie <dblaikie@gmail.com> |
Revert "IntrusiveRefCntPtr -> std::shared_ptr for CompilerInvocationBase and CodeCompleteConsumer"
Caused a memory leak reported by asan. Reverting while I investigate.
This reverts commit r291184.
Revert "IntrusiveRefCntPtr -> std::shared_ptr for CompilerInvocationBase and CodeCompleteConsumer"
Caused a memory leak reported by asan. Reverting while I investigate.
This reverts commit r291184.
llvm-svn: 291249
show more ...
|
#
9280a857 |
| 05-Jan-2017 |
David Blaikie <dblaikie@gmail.com> |
IntrusiveRefCntPtr -> std::shared_ptr for CompilerInvocationBase and CodeCompleteConsumer
llvm-svn: 291184
|
Revision tags: llvmorg-3.9.1, llvmorg-3.9.1-rc3, llvmorg-3.9.1-rc2, llvmorg-3.9.1-rc1, llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2, llvmorg-3.9.0-rc1 |
|
#
d06239d3 |
| 15-Jul-2016 |
Samuel Antao <sfantao@us.ibm.com> |
[CUDA][OpenMP] Create generic offload action
Summary: This patch replaces the CUDA specific action by a generic offload action. The offload action may have multiple dependences classier in “host” an
[CUDA][OpenMP] Create generic offload action
Summary: This patch replaces the CUDA specific action by a generic offload action. The offload action may have multiple dependences classier in “host” and “device”. The way this generic offloading action is used is very similar to what is done today by the CUDA implementation: it is used to set a specific toolchain and architecture to its dependences during the generation of jobs.
This patch also proposes propagating the offloading information through the action graph so that that information can be easily retrieved at any time during the generation of commands. This allows e.g. the "clang tool” to evaluate whether CUDA should be supported for the device or host and ptas to easily retrieve the target architecture.
This is an example of how the action graphs would look like (compilation of a single CUDA file with two GPU architectures) ``` 0: input, "cudatests.cu", cuda, (host-cuda) 1: preprocessor, {0}, cuda-cpp-output, (host-cuda) 2: compiler, {1}, ir, (host-cuda) 3: input, "cudatests.cu", cuda, (device-cuda, sm_35) 4: preprocessor, {3}, cuda-cpp-output, (device-cuda, sm_35) 5: compiler, {4}, ir, (device-cuda, sm_35) 6: backend, {5}, assembler, (device-cuda, sm_35) 7: assembler, {6}, object, (device-cuda, sm_35) 8: offload, "device-cuda (nvptx64-nvidia-cuda:sm_35)" {7}, object 9: offload, "device-cuda (nvptx64-nvidia-cuda:sm_35)" {6}, assembler 10: input, "cudatests.cu", cuda, (device-cuda, sm_37) 11: preprocessor, {10}, cuda-cpp-output, (device-cuda, sm_37) 12: compiler, {11}, ir, (device-cuda, sm_37) 13: backend, {12}, assembler, (device-cuda, sm_37) 14: assembler, {13}, object, (device-cuda, sm_37) 15: offload, "device-cuda (nvptx64-nvidia-cuda:sm_37)" {14}, object 16: offload, "device-cuda (nvptx64-nvidia-cuda:sm_37)" {13}, assembler 17: linker, {8, 9, 15, 16}, cuda-fatbin, (device-cuda) 18: offload, "host-cuda (powerpc64le-unknown-linux-gnu)" {2}, "device-cuda (nvptx64-nvidia-cuda)" {17}, ir 19: backend, {18}, assembler 20: assembler, {19}, object 21: input, "cuda", object 22: input, "cudart", object 23: linker, {20, 21, 22}, image ``` The changes in this patch pass the existent regression tests (keeps the existent functionality) and resulting binaries execute correctly in a Power8+K40 machine.
Reviewers: echristo, hfinkel, jlebar, ABataev, tra
Subscribers: guansong, andreybokhanko, tcramer, mkuron, cfe-commits, arpith-jacob, carlo.bertolli, caomhin
Differential Revision: https://reviews.llvm.org/D18171
llvm-svn: 275645
show more ...
|
Revision tags: llvmorg-3.8.1, llvmorg-3.8.1-rc1, llvmorg-3.8.0, llvmorg-3.8.0-rc3 |
|
#
5a459f82 |
| 23-Feb-2016 |
Nico Weber <nicolasweber@gmx.de> |
Rename Action::begin() to Action::input_begin().
Also introduce inputs() that reutnrs an llvm::iterator_range. Iterating over A->inputs() is much less mysterious than iterating over *A. No intended
Rename Action::begin() to Action::input_begin().
Also introduce inputs() that reutnrs an llvm::iterator_range. Iterating over A->inputs() is much less mysterious than iterating over *A. No intended behavior change.
llvm-svn: 261674
show more ...
|
Revision tags: llvmorg-3.8.0-rc2, llvmorg-3.8.0-rc1, llvmorg-3.7.1, llvmorg-3.7.1-rc2 |
|
#
c02670ed |
| 18-Nov-2015 |
Benjamin Kramer <benny.kra@googlemail.com> |
[libclang] Add entry points that take a full command line including argv[0].
This provides both a more uniform interface and makes libclang behave like clang tooling wrt relative paths against argv[
[libclang] Add entry points that take a full command line including argv[0].
This provides both a more uniform interface and makes libclang behave like clang tooling wrt relative paths against argv[0]. This is necessary for finding paths to a c++ standard library relative to a clang binary given in a compilation database. It can also be used to find paths relative to libclang.so if the full path to it is passed in.
Differential Revision: http://reviews.llvm.org/D14695
llvm-svn: 253466
show more ...
|
Revision tags: llvmorg-3.7.1-rc1, llvmorg-3.7.0, llvmorg-3.7.0-rc4, llvmorg-3.7.0-rc3, studio-1.4, llvmorg-3.7.0-rc2, llvmorg-3.7.0-rc1 |
|
#
0ff05cd1 |
| 13-Jul-2015 |
Artem Belevich <tra@google.com> |
[cuda] Driver changes to compile and stitch together host and device-side CUDA code.
NOTE: reverts r242077 to reinstate r242058, r242065, 242067 and includes fix for OS X test failures.
[cuda] Driver changes to compile and stitch together host and device-side CUDA code.
NOTE: reverts r242077 to reinstate r242058, r242065, 242067 and includes fix for OS X test failures.
- Changed driver pipeline to compile host and device side of CUDA files and incorporate results of device-side compilation into host object file.
- Added a test for cuda pipeline creation in clang driver.
New clang options: --cuda-host-only - Do host-side compilation only. --cuda-device-only - Do device-side compilation only.
--cuda-gpu-arch=<ARCH> - specify GPU architecture for device-side compilation. E.g. sm_35, sm_30. Default is sm_20. May be used more than once in which case one device-compilation will be done per unique specified GPU architecture.
Differential Revision: http://reviews.llvm.org/D9509
llvm-svn: 242085
show more ...
|
#
abbd6d68 |
| 13-Jul-2015 |
Rafael Espindola <rafael.espindola@gmail.com> |
This reverts commit r242058, r242065, r242067.
The tests were failing on OS X.
Revert "[cuda] Driver changes to compile and stitch together host and device-side CUDA code." Revert "Fixed regex to
This reverts commit r242058, r242065, r242067.
The tests were failing on OS X.
Revert "[cuda] Driver changes to compile and stitch together host and device-side CUDA code." Revert "Fixed regex to properly match '64' in the test case." Revert "clang/test/Driver/cuda-options.cu REQUIRES clang-driver, at least."
llvm-svn: 242077
show more ...
|
#
cd42e7f7 |
| 13-Jul-2015 |
Artem Belevich <tra@google.com> |
[cuda] Driver changes to compile and stitch together host and device-side CUDA code.
- Changed driver pipeline to compile host and device side of CUDA files and incorporate results of device-s
[cuda] Driver changes to compile and stitch together host and device-side CUDA code.
- Changed driver pipeline to compile host and device side of CUDA files and incorporate results of device-side compilation into host object file.
- Added a test for cuda pipeline creation in clang driver.
New clang options: --cuda-host-only - Do host-side compilation only. --cuda-device-only - Do device-side compilation only.
--cuda-gpu-arch=<ARCH> - specify GPU architecture for device-side compilation. E.g. sm_35, sm_30. Default is sm_20. May be used more than once in which case one device-compilation will be done per unique specified GPU architecture.
Differential Revision: http://reviews.llvm.org/D9509
llvm-svn: 242058
show more ...
|
Revision tags: llvmorg-3.6.2, llvmorg-3.6.2-rc1, llvmorg-3.6.1, llvmorg-3.6.1-rc1, llvmorg-3.5.2, llvmorg-3.5.2-rc1, llvmorg-3.6.0, llvmorg-3.6.0-rc4, llvmorg-3.6.0-rc3, llvmorg-3.6.0-rc2, llvmorg-3.6.0-rc1, llvmorg-3.5.1, llvmorg-3.5.1-rc2, llvmorg-3.5.1-rc1 |
|
#
aab9792b |
| 03-Oct-2014 |
Justin Bogner <mail@justinbogner.com> |
Driver: Use pointee_iterator rather than iterating over unique_ptrs
There's probably never a good reason to iterate over unique_ptrs. This lets us use range-for and say Job.foo instead of (*it)->foo
Driver: Use pointee_iterator rather than iterating over unique_ptrs
There's probably never a good reason to iterate over unique_ptrs. This lets us use range-for and say Job.foo instead of (*it)->foo in a few places.
llvm-svn: 218938
show more ...
|
#
c11bf802 |
| 04-Sep-2014 |
David Blaikie <dblaikie@gmail.com> |
unique_ptrify JobList::Jobs
llvm-svn: 217168
|
Revision tags: llvmorg-3.5.0, llvmorg-3.5.0-rc4, llvmorg-3.5.0-rc3, llvmorg-3.5.0-rc2, llvmorg-3.5.0-rc1 |
|
#
f994cef8 |
| 05-Jul-2014 |
Alp Toker <alp@nuanti.com> |
Track IntrusiveRefCntPtr::get() changes from LLVM r212366
llvm-svn: 212369
|
#
49a2790f |
| 22-May-2014 |
Craig Topper <craig.topper@gmail.com> |
[C++11] Use 'nullptr'. Frontend edition.
llvm-svn: 209389
|
Revision tags: llvmorg-3.4.2, llvmorg-3.4.2-rc1 |
|
#
1761f118 |
| 15-May-2014 |
Alp Toker <alp@nuanti.com> |
Eliminate DefaultImageName from the Driver constructor
All callers were passing in "a.out" or garbage so a sensible default works fine here as a cleanup.
This also brings about the possibility of a
Eliminate DefaultImageName from the Driver constructor
All callers were passing in "a.out" or garbage so a sensible default works fine here as a cleanup.
This also brings about the possibility of adapting the value based on the driver's compatibility mode in future.
The setting can still be changed via Driver::DefaultImageName as needed.
llvm-svn: 208926
show more ...
|
Revision tags: llvmorg-3.4.1, llvmorg-3.4.1-rc2, llvmorg-3.4.1-rc1 |
|
#
b8984329 |
| 07-Mar-2014 |
Ahmed Charles <ahmedcharles@gmail.com> |
Replace OwningPtr with std::unique_ptr.
This compiles cleanly with lldb/lld/clang-tools-extra/llvm.
llvm-svn: 203279
|
#
9a16beb8 |
| 07-Mar-2014 |
Ahmed Charles <ahmedcharles@gmail.com> |
Change OwningPtr::take() to OwningPtr::release().
This is a precursor to moving to std::unique_ptr.
llvm-svn: 203275
|
Revision tags: llvmorg-3.4.0, llvmorg-3.4.0-rc3, llvmorg-3.4.0-rc2, llvmorg-3.4.0-rc1 |
|
#
b212b34f |
| 12-Sep-2013 |
Hans Wennborg <hans@hanshq.net> |
Move Compilation::PrintJob and PrintDiagnosticJob into Job::Print.
This moves the code to Job.cpp, which seems like a more natural fit, and replaces the "is this a JobList? is this a Command?" logic
Move Compilation::PrintJob and PrintDiagnosticJob into Job::Print.
This moves the code to Job.cpp, which seems like a more natural fit, and replaces the "is this a JobList? is this a Command?" logic with a virtual function call.
It also removes the code duplication between PrintJob and PrintDiagnosticJob and simplifies the code a little.
There's no functionality change here, except that the Executable is now always printed within quotes, whereas it would previously not be quoted in crash reports, which I think was a bug.
Differential Revision: http://llvm-reviews.chandlerc.com/D1653
llvm-svn: 190620
show more ...
|
Revision tags: llvmorg-3.3.1-rc1 |
|
#
898229ab |
| 14-Jun-2013 |
Reid Kleckner <reid@kleckner.net> |
[Driver] Refactor clang driver to use LLVM's Option library
The big changes are: - Deleting Driver/(Arg|Opt)* - Rewriting includes to llvm/Option/ and re-sorting - 'using namespace llvm::opt' in cla
[Driver] Refactor clang driver to use LLVM's Option library
The big changes are: - Deleting Driver/(Arg|Opt)* - Rewriting includes to llvm/Option/ and re-sorting - 'using namespace llvm::opt' in clang::driver - Fixing the autoconf build by adding option everywhere
As discussed in the review, this change includes using directives in header files. I'll make follow up changes to remove those in favor of name specifiers.
Reviewers: espindola
Differential Revision: http://llvm-reviews.chandlerc.com/D975
llvm-svn: 183989
show more ...
|
Revision tags: llvmorg-3.3.0, llvmorg-3.3.0-rc3, llvmorg-3.3.0-rc2, llvmorg-3.3.0-rc1 |
|
#
f1b49e23 |
| 20-Jan-2013 |
Sean Silva <silvas@purdue.edu> |
Nuke SetUpBuildDumpLog.
Also, it was the only reason that `argc` and `argv` were being passed into createDiagnostics, so remove those parameters and clean up callers.
llvm-svn: 172945
|
Revision tags: llvmorg-3.2.0, llvmorg-3.2.0-rc3 |
|
#
3a02247d |
| 04-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Sort all of Clang's files under 'lib', and fix up the broken headers uncovered.
This required manually correcting all of the incorrect main-module headers I could find, and running the new llvm/util
Sort all of Clang's files under 'lib', and fix up the broken headers uncovered.
This required manually correcting all of the incorrect main-module headers I could find, and running the new llvm/utils/sort_includes.py script over the files.
I also manually added quite a few missing headers that were uncovered by shuffling the order or moving headers up to be main-module-headers.
llvm-svn: 169237
show more ...
|
Revision tags: llvmorg-3.2.0-rc2 |
|
#
b0448cd5 |
| 27-Nov-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove some dead code. CLANG_IS_PRODUCTION is now just a build flag and is not used in any #ifdef.
llvm-svn: 168703
|
Revision tags: llvmorg-3.2.0-rc1 |
|
#
d0de8ceb |
| 08-Nov-2012 |
Bob Wilson <bob.wilson@apple.com> |
Remove code to fall back to llvm-gcc for i386 kexts.
More cleanups to follow in separate commits....
llvm-svn: 167566
|
#
811db4ea |
| 23-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Make DiagnosticOptions intrusively reference-counted, and make sure the various stakeholders bump up the reference count. In particular, the diagnostics engine now keeps the DiagnosticOptions object
Make DiagnosticOptions intrusively reference-counted, and make sure the various stakeholders bump up the reference count. In particular, the diagnostics engine now keeps the DiagnosticOptions object alive.
llvm-svn: 166508
show more ...
|
#
3169e806 |
| 21-May-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[driver] When creating the compiler invocation out of command-line arguments, force use of clang frontend for the driver.
Fixes rdar://11356765.
llvm-svn: 157205
|
Revision tags: llvmorg-3.1.0, llvmorg-3.1.0-rc3, llvmorg-3.1.0-rc2, llvmorg-3.1.0-rc1 |
|
#
c95d8192 |
| 20-Feb-2012 |
Dylan Noblesmith <nobled@dreamwidth.org> |
Basic: import IntrusiveRefCntPtr<> into clang namespace
The class name is long enough without the llvm:: added. Also bring in RefCountedBase and RefCountedBaseVPTR.
llvm-svn: 150958
|
#
2c1dd271 |
| 05-Feb-2012 |
Dylan Noblesmith <nobled@dreamwidth.org> |
Basic: import SmallString<> into clang namespace
(I was going to fix the TODO about DenseMap too, but that would break self-host right now. See PR11922.)
llvm-svn: 149799
|