summaryrefslogtreecommitdiff
path: root/lib/Driver/Types.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [clang][IFS] Fixing spelling errors in interface-stubs OPT flag (NFC).Puyan Lotfi2019-10-121-1/+1
| | | | | | | This is just a long standing spelling error that was found recently. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@374638 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang][ifs] Clang Interface Stubs ToolChain plumbing.Puyan Lotfi2019-10-081-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | Second Landing Attempt: This patch enables end to end support for generating ELF interface stubs directly from clang. Now the following: clang -emit-interface-stubs -o libfoo.so a.cpp b.cpp c.cpp will product an ELF binary with visible symbols populated. Visibility attributes and -fvisibility can be used to control what gets populated. * Adding ToolChain support for clang Driver IFS Merge Phase * Implementing a default InterfaceStubs Merge clang Tool, used by ToolChain * Adds support for the clang Driver to involve llvm-ifs on ifs files. * Adds -emit-merged-ifs flag, to tell llvm-ifs to emit a merged ifs text file instead of the final object format (normally ELF) Differential Revision: https://reviews.llvm.org/D63978 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@374061 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert 373538 and follow-ups 373549 and 373552.Nico Weber2019-10-031-17/+1
| | | | | | They break tests on (at least) macOS. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@373556 91177308-0d34-0410-b5e6-96231b3b80d8
* [clang][ifs] Clang Interface Stubs ToolChain plumbing.Puyan Lotfi2019-10-021-1/+17
| | | | | | | | | | | | | | | | | | | | | | This patch enables end to end support for generating ELF interface stubs directly from clang. Now the following: clang -emit-interface-stubs -o libfoo.so a.cpp b.cpp c.cpp will product an ELF binary with visible symbols populated. Visibility attributes and -fvisibility can be used to control what gets populated. * Adding ToolChain support for clang Driver IFS Merge Phase * Implementing a default InterfaceStubs Merge clang Tool, used by ToolChain * Adds support for the clang Driver to involve llvm-ifs on ifs files. * Adds -emit-merged-ifs flag, to tell llvm-ifs to emit a merged ifs text file instead of the final object format (normally ELF) Differential Revision: https://reviews.llvm.org/D63978 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@373538 91177308-0d34-0410-b5e6-96231b3b80d8
* [static analyzer] Remove --analyze-autoJan Korous2019-09-241-1/+1
| | | | | | Differential Revision: https://reviews.llvm.org/D67934 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@372680 91177308-0d34-0410-b5e6-96231b3b80d8
* [NFC][clang] Adding argument based Phase list filtering to getComplicationPhasesPuyan Lotfi2019-08-131-1/+55
| | | | | | | | | | | | This patch removes usage of FinalPhase from anywhere outside of the scope where it is used to do argument handling. It also adds argument based trimming of the Phase list pulled out of the Types.def table. Differential Revision: https://reviews.llvm.org/D65993 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@368734 91177308-0d34-0410-b5e6-96231b3b80d8
* [NFC][clang] Refactor getCompilationPhases()+Types.def step 3.Puyan Lotfi2019-07-311-4/+11
| | | | | | | | | | | | | | | Second landing attempt: Changed TY_ObjCXXHeader to TY_PP_ObjCXXHeader to fix -xobjective-c++-header. This time I verified against preprocessor output. Dropping the 'u' entry and the entire Flags table from Types.def. Now it'll be a bit easier to tablegenify this. Differential Revision: https://reviews.llvm.org/D65308 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@367478 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert "[NFC][clang] Refactor getCompilationPhases()+Types.def step 3."Sam McCall2019-07-301-11/+4
| | | | | | | This reverts commit d2254dbf21a3243233b75294ef901086199df1b9. This (unintentionally?) changed behavior, disallowing e.g. -x objective-c++-header git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@367353 91177308-0d34-0410-b5e6-96231b3b80d8
* [NFC][clang] Refactor getCompilationPhases()+Types.def step 3.Puyan Lotfi2019-07-301-4/+11
| | | | | | | | | | Dropping the 'u' entry and the entire Flags table from Types.def. Now it'll be a bit easier to tablegenify this. Differential Revision: https://reviews.llvm.org/D65308 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@367345 91177308-0d34-0410-b5e6-96231b3b80d8
* [NFC][clang] Refactor getCompilationPhases()+Types.def step 2.Puyan Lotfi2019-07-251-38/+18
| | | | | | | | | | | | | | | | | | | | | - Removing a few of the entries in the Flags for the Types.def table. - Removing redundant parts of getCompilationPhases(). Flags have been removed from Types.def: a - The type should only be assembled: Now, check that Phases contains phases::Assemble but not phases::Compile or phases::Backend. p - The type should only be precompiled: Now, check that Phases contains phases::Precompile but that Flags does not contain 'm'. m - Precompiling this type produces a module file: Now, check that isPrepeocessedModuleType. Differential Revision: https://reviews.llvm.org/D65176 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@367063 91177308-0d34-0410-b5e6-96231b3b80d8
* [NFC][clang] Refactor getCompilationPhases()+Types.def step 1.Puyan Lotfi2019-07-221-3/+19
| | | | | | | | | | | | | Moves list of phases into Types.def table: Currently Types.def contains a table of strings that are used to assemble a list of compilation phases to be setup in the clang driver's jobs pipeline. This change makes it so that the table itself contains the list of phases. A subsequent patch will remove the strings. Differential Revision: https://reviews.llvm.org/D64098 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@366761 91177308-0d34-0410-b5e6-96231b3b80d8
* Update the file headers across all of the LLVM projects in the monorepoChandler Carruth2019-01-191-4/+3
| | | | | | | | | | | | | | | | | to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@351636 91177308-0d34-0410-b5e6-96231b3b80d8
* [modules] Driver support for precompiling a collection of files as a singleRichard Smith2018-09-151-0/+2
| | | | | | action. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@342305 91177308-0d34-0410-b5e6-96231b3b80d8
* [HIP] Set proper triple and offload kind for the toolchainYaxun Liu2018-05-111-0/+10
| | | | | | | | | Also introduce --hip-link option to indicate HIP for linking. Differential Revision: https://reviews.llvm.org/D46475 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@332123 91177308-0d34-0410-b5e6-96231b3b80d8
* [HIP] Add driver input type for HIPYaxun Liu2018-04-181-0/+9
| | | | | | | | | | Patch by Greg Rodgers. Revised by Yaxun Liu. Differential Revision: https://reviews.llvm.org/D45489 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@330279 91177308-0d34-0410-b5e6-96231b3b80d8
* [Driver][OpenMP] Update actions builder to create unbundling action when ↵Samuel Antao2016-10-271-0/+4
| | | | | | | | | | | | | | | | | necessary. Summary: Each time that offloading support is requested by the user and the input file is not a source file, an action `OffloadUnbundlingAction` is created to signal that the input file may contain bundles, so that the proper tool is then invoked to attempt to extract the components of the bundle. This patch adds the logic to create that action in offload action builder. The job creation for the new action will be proposed in a separate patch. Reviewers: echristo, tra, jlebar, ABataev, hfinkel Subscribers: whchung, mehdi_amini, cfe-commits, Hahnfeld, andreybokhanko, arpith-jacob, carlo.bertolli, caomhin Differential Revision: https://reviews.llvm.org/D21853 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@285324 91177308-0d34-0410-b5e6-96231b3b80d8
* Driver: use StringRef instead of raw pointer in lookupTypeForExtension() (NFC)Mehdi Amini2016-10-071-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@283611 91177308-0d34-0410-b5e6-96231b3b80d8
* clang-cl: Use the .obj file extension also in LTO modeHans Wennborg2016-10-041-6/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@283257 91177308-0d34-0410-b5e6-96231b3b80d8
* [CUDA][OpenMP] Add a generic offload action builderSamuel Antao2016-09-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | Summary: This patch proposes a new class to generate and record action dependences related with offloading. The builder provides three main functionalities: - Add device dependences to host actions. - Add host dependence to device actions. - Register device top-level actions. The constructor of the builder detect the programming models that should be supported, and generates a specialized builder for each. If a new programming model is to be added in the future, only a new specialized builder has to be implemented. When the specialized builder is generated, it produces programming-model-specific diagnostics. A CUDA specialized builder is proposed in the patch that mostly consists of the partition of the current `buildCudaAction` by the three different functionalities. Reviewers: tra, echristo, ABataev, jlebar, hfinkel Subscribers: Hahnfeld, whchung, guansong, jlebar, mehdi_amini, andreybokhanko, tcramer, mkuron, cfe-commits, arpith-jacob, carlo.bertolli, caomhin Differential Revision: https://reviews.llvm.org/D18172 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@282865 91177308-0d34-0410-b5e6-96231b3b80d8
* Unrevert r280035 now that the clang-cl bug it exposed has been fixed byRichard Smith2016-08-301-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r280133. Original commit message: C++ Modules TS: driver support for building modules. This works as follows: we add --precompile to the existing gamut of options for specifying how far to go when compiling an input (-E, -c, -S, etc.). This flag specifies that an input is taken to the precompilation step and no further, and this can be specified when building a .pcm from a module interface or when building a .pch from a header file. The .cppm extension (and some related extensions) are implicitly recognized as C++ module interface files. If --precompile is /not/ specified, the file is compiled (via a .pcm) to a .o file containing the code for the module (and then potentially also assembled and linked, if -S, -c, etc. are not specified). We do not yet suppress the emission of object code for other users of the module interface, so for now this will only work if everything in the .cppm file has vague linkage. As with the existing support for module-map modules, prebuilt modules can be provided as compiler inputs either via the -fmodule-file= command-line argument or via files named ModuleName.pcm in one of the directories specified via -fprebuilt-module-path=. This also exposes the -fmodules-ts cc1 flag in the driver. This is still experimental, and in particular, the concrete syntax is subject to change as the Modules TS evolves in the C++ committee. Unlike -fmodules, this flag does not enable support for implicitly loading module maps nor building modules via the module cache, but those features can be turned on separately and used in conjunction with the Modules TS support. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@280134 91177308-0d34-0410-b5e6-96231b3b80d8
* PR30195: Fix clang-cl attempting to precompile bogus (non-precompilable) ↵Richard Smith2016-08-301-0/+18
| | | | | | input types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@280133 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r280035 (and followups r280057, r280085), it caused PR30195Nico Weber2016-08-301-19/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@280091 91177308-0d34-0410-b5e6-96231b3b80d8
* C++ Modules TS: driver support for building modules.Richard Smith2016-08-301-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This works as follows: we add --precompile to the existing gamut of options for specifying how far to go when compiling an input (-E, -c, -S, etc.). This flag specifies that an input is taken to the precompilation step and no further, and this can be specified when building a .pcm from a module interface or when building a .pch from a header file. The .cppm extension (and some related extensions) are implicitly recognized as C++ module interface files. If --precompile is /not/ specified, the file is compiled (via a .pcm) to a .o file containing the code for the module (and then potentially also assembled and linked, if -S, -c, etc. are not specified). We do not yet suppress the emission of object code for other users of the module interface, so for now this will only work if everything in the .cppm file has vague linkage. As with the existing support for module-map modules, prebuilt modules can be provided as compiler inputs either via the -fmodule-file= command-line argument or via files named ModuleName.pcm in one of the directories specified via -fprebuilt-module-path=. This also exposes the -fmodules-ts cc1 flag in the driver. This is still experimental, and in particular, the concrete syntax is subject to change as the Modules TS evolves in the C++ committee. Unlike -fmodules, this flag does not enable support for implicitly loading module maps nor building modules via the module cache, but those features can be turned on separately and used in conjunction with the Modules TS support. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@280035 91177308-0d34-0410-b5e6-96231b3b80d8
* Sort list of driver-known file extensions. It was previously approximatelyRichard Smith2016-08-261-25/+25
| | | | | | | ordered by length then alphabetically; apply that order consistently. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@279799 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a RenderScript language typePirama Arumuga Nainar2016-06-091-0/+1
| | | | | | | | | | | | | | | | | Summary: Add RenderScript language type and associate it with ".rs" extensions. Test that the driver passes "-x renderscript" to the frontend for ".rs" files. (Also add '.rs' to the list of suffixes tested by lit). Reviewers: rsmith Subscribers: cfe-commits, srhines Differential Revision: http://reviews.llvm.org/D21199 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@272317 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix remaining Clang-tidy readability-redundant-control-flow warnings; other ↵Eugene Zelenko2016-02-121-1/+0
| | | | | | | | | minor fixes. Differential revision: http://reviews.llvm.org/D17218 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@260757 91177308-0d34-0410-b5e6-96231b3b80d8
* [CUDA] Invoke ptxas and fatbinary during compilation.Justin Lebar2016-01-141-2/+1
| | | | | | | | | | | | | | | | | | | | Summary: Previously we compiled CUDA device code to PTX assembly and embedded that asm as text in our host binary. Now we compile to PTX assembly and then invoke ptxas to assemble the PTX into a cubin file. We gather the ptx and cubin files for each of our --cuda-gpu-archs and combine them using fatbinary, and then embed that into the host binary. Adds two new command-line flags, -Xcuda_ptxas and -Xcuda_fatbinary, which pass args down to the external tools. Reviewers: tra, echristo Subscribers: cfe-commits, jhen Differential Revision: http://reviews.llvm.org/D16082 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@257809 91177308-0d34-0410-b5e6-96231b3b80d8
* [ThinLTO] Option to invoke ThinLTO backend passes and importingTeresa Johnson2015-12-071-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Adds new option -fthinlto-index=<file> to invoke the LTO pipeline along with function importing via clang using the supplied function summary index file. This supports invoking the parallel ThinLTO backend processes in a distributed build environment via clang. Additionally, this causes the module linker to be invoked on the bitcode file being compiled to perform any necessary promotion and renaming of locals that are exported via the function summary index file. Add a couple tests that confirm we get expected errors when we try to use the new option on a file that isn't bitcode, or specify an invalid index file. The tests also confirm that we trigger the expected function import pass. Depends on D15024 Reviewers: joker.eph, dexonsmith Subscribers: joker.eph, davidxl, cfe-commits Differential Revision: http://reviews.llvm.org/D15025 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@254927 91177308-0d34-0410-b5e6-96231b3b80d8
* [cuda] Driver changes to compile and stitch together host and device-side ↵Artem Belevich2015-07-131-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | 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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@242085 91177308-0d34-0410-b5e6-96231b3b80d8
* This reverts commit r242058, r242065, r242067.Rafael Espindola2015-07-131-18/+3
| | | | | | | | | | 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." git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@242077 91177308-0d34-0410-b5e6-96231b3b80d8
* [cuda] Driver changes to compile and stitch together host and device-side ↵Artem Belevich2015-07-131-3/+18
| | | | | | | | | | | | | | | | | | | | | | | 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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@242058 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r239213: "clang-cl: Implement /GL in terms of -flto."Hans Wennborg2015-06-131-1/+1
| | | | | | | Reverting until it's easier to use this in a real-world build, e.g. when the linker can handle it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@239656 91177308-0d34-0410-b5e6-96231b3b80d8
* clang-cl: Implement /GL in terms of -flto.Peter Collingbourne2015-06-061-1/+1
| | | | | | | | No documentation yet; the linker needs more work. Differential Revision: http://reviews.llvm.org/D10270 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@239213 91177308-0d34-0410-b5e6-96231b3b80d8
* Ensure that we still parse preprocessed CUDA files as CUDA when we useArtem Belevich2015-03-191-2/+3
| | | | | | | | | | -save-temps option. Summary: Fixes PR22926. Review: http://reviews.llvm.org/D8383 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@232737 91177308-0d34-0410-b5e6-96231b3b80d8
* Reapply "Change -save-temps to emit unoptimized bitcode files."Bob Wilson2014-12-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | This reapplies r224503 along with a fix for compiling Fortran by having the clang driver invoke gcc (see r224546, where it was reverted). I have added a testcase for that as well. Original commit message: It is often convenient to use -save-temps to collect the intermediate results of a compilation, e.g., when triaging a bug report. Besides the temporary files for preprocessed source and assembly code, this adds the unoptimized bitcode files as well. This adds a new BackendJobAction, which is mostly mechanical, to run after the CompileJobAction. When not using -save-temps, the BackendJobAction is combined into one job with the CompileJobAction, similar to the way the integrated assembler is handled. I've implemented this entirely as a driver change, so under the hood, it is just using -disable-llvm-optzns to get the unoptimized bitcode. Based in part on a patch by Steven Wu. rdar://problem/18909437 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224688 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert "Change -save-temps to emit unoptimized bitcode files."Reid Kleckner2014-12-181-1/+0
| | | | | | | | | | This reverts commit r224503. It broke compilation of fortran through the Clang driver. Previously `clang -c t.f` would invoke `gcc t.f` and `clang -cc1as`, but now it tries to call `clang -cc1 t.f` which fails for obvious reasons. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224546 91177308-0d34-0410-b5e6-96231b3b80d8
* Change -save-temps to emit unoptimized bitcode files.Bob Wilson2014-12-181-0/+1
| | | | | | | | | | | | | | | | | | | It is often convenient to use -save-temps to collect the intermediate results of a compilation, e.g., when triaging a bug report. Besides the temporary files for preprocessed source and assembly code, this adds the unoptimized bitcode files as well. This adds a new BackendJobAction, which is mostly mechanical, to run after the CompileJobAction. When not using -save-temps, the BackendJobAction is combined into one job with the CompileJobAction, similar to the way the integrated assembler is handled. I've implemented this entirely as a driver change, so under the hood, it is just using -disable-llvm-optzns to get the unoptimized bitcode. Based in part on a patch by Steven Wu. rdar://problem/18909437 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224503 91177308-0d34-0410-b5e6-96231b3b80d8
* Recognize .lib files as linker input explicitlyEhsan Akhgari2014-09-101-0/+1
| | | | | | | | | | | | | | | | Summary: Currently, this is done implicitly in Driver::BuildInputs by considering any invalid input type as linker input. Test Plan: I don't think this behavior is observable for the reason stated above. Reviewers: hansw Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D5294 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217522 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a CC1 option -verify-pchBen Langmuir2014-02-051-0/+2
| | | | | | | | | This option will: - load the given pch file - verify it is not out of date by stat'ing dependencies, and - return 0 on success and non-zero on error git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200884 91177308-0d34-0410-b5e6-96231b3b80d8
* Make .asm a valid extension for assembly filesHans Wennborg2013-10-171-0/+1
| | | | | | | | This is a common extension on Windows, and now clang will assemble them instead of treating them as linker input which is the default for unknown file types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192919 91177308-0d34-0410-b5e6-96231b3b80d8
* clang-cl: Add support for asm listings (/FA and /Fa)Hans Wennborg2013-10-171-0/+2
| | | | | | | | | | This adds support for outputing the assembly to a file during compilation. It does this by changing the compilation pipeling to not use the integrated assembler, and keep the intermediate assembler file. Differential Revision: http://llvm-reviews.chandlerc.com/D1946 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192902 91177308-0d34-0410-b5e6-96231b3b80d8
* clang-cl: Support the /Fe optionHans Wennborg2013-08-121-0/+2
| | | | | | | | This is used to name the linked output file. Differential Revision: http://llvm-reviews.chandlerc.com/D1344 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188210 91177308-0d34-0410-b5e6-96231b3b80d8
* clang-cl: Use .obj as object file extension instead of .oHans Wennborg2013-08-071-1/+4
| | | | | | Differential Revision: http://llvm-reviews.chandlerc.com/D1302 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187840 91177308-0d34-0410-b5e6-96231b3b80d8
* Use llvm::array_lengthof to replace sizeof(array)/sizeof(array[0]).Craig Topper2013-07-151-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186300 91177308-0d34-0410-b5e6-96231b3b80d8
* Use SmallVectorImpl& for function arguments instead of SmallVector.Craig Topper2013-07-051-3/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185715 91177308-0d34-0410-b5e6-96231b3b80d8
* <rdar://problem/13509689> Introduce -module-file-info option that provides ↵Douglas Gregor2013-03-271-1/+2
| | | | | | | | | | | | | information about a particular module file. This option can be useful for end users who want to know why they ended up with a ton of different variants of the "std" module in their module cache. This problem should go away over time, as we reduce the need for module variants, but it will never go away entirely. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178148 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor refactor of how we get compilation phases.Matthew Curtis2013-03-071-40/+22
| | | | | | | | | | There is now a single function to get the list of phases for a given output Type. No functionality change intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176628 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix global overflow in types::lookupTypeForTypeSpecifier.Evgeniy Stepanov2013-02-281-3/+1
| | | | | | | | | memcpy() is allowed to read entire contents of both memory areas. Found with AddressSanitizer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176237 91177308-0d34-0410-b5e6-96231b3b80d8
* Sort all of Clang's files under 'lib', and fix up the broken headersChandler Carruth2012-12-041-2/+1
| | | | | | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169237 91177308-0d34-0410-b5e6-96231b3b80d8
* Test commit: Remove blank line.Joey Gouly2012-11-211-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168436 91177308-0d34-0410-b5e6-96231b3b80d8