summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix a crash on invalid code.Richard Trieu2016-10-282-1/+19
| | | | | | | | | | | | The diagnostic was attempting to access the QualType of a TypeDecl by calling TypeDecl::getTypeForDecl. However, the Type pointer stored there is lazily loaded by functions in ASTContext. In most cases, the pointer is loaded and this does not cause a problem. However, when more that 50 or so unknown types are seen beforehand, this causes the Type to not be loaded, passing a null Type to the diagnostics, leading to the crash. Using ASTContext::getTypeDeclType will give a proper QualType for all cases. llvm-svn: 285370
* Check that we got back an object from MakeFunctionCallerJason Molenda2016-10-274-4/+4
| | | | | | | | before we call through it. <rdar://problem/28979705> llvm-svn: 285369
* AMDGPU/SI: Handle hazard with s_rfe_b64Tom Stellard2016-10-274-1/+66
| | | | | | | | | | Reviewers: arsenm Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, llvm-commits, tony-tye Differential Revision: https://reviews.llvm.org/D25638 llvm-svn: 285368
* AMDGPU/SI: Handle hazard with sgpr lane selects for v_{read,write}laneTom Stellard2016-10-273-1/+100
| | | | | | | | | | Reviewers: arsenm Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, tony-tye, llvm-commits Differential Revision: https://reviews.llvm.org/D25637 llvm-svn: 285367
* Remove accidentally commited test.Davide Italiano2016-10-271-15/+0
| | | | llvm-svn: 285366
* [IR] Reintroduce getGEPReturnType(), it will be used in a later patch.Davide Italiano2016-10-272-0/+20
| | | | llvm-svn: 285365
* AMDGPU/SI: Fix unused variable warning on non-debug buildsTom Stellard2016-10-271-0/+1
| | | | llvm-svn: 285363
* Reverting back r285355: "Update .debug_line section version information to ↵Ekaterina Romanova2016-10-2714-77/+33
| | | | | | match DWARF version", while I'm investigating a test failure. llvm-svn: 285362
* Revert "[Test Suite] Pull generateSource into lldbtest"Chris Bieneman2016-10-2712-48/+58
| | | | | | | | This reverts commit r285357. I committed this patch accidentally out of order. Will recommit when the change this depends on is landed. llvm-svn: 285361
* [Coverage] Darwin: Move __llvm_covmap from __DATA to __LLVM_COVVedant Kumar2016-10-272-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Programs with very large __llvm_covmap sections may fail to link on Darwin because because of out-of-range 32-bit RIP relative references. It isn't possible to work around this by using the large code model because it isn't supported on Darwin. One solution is to move the __llvm_covmap section past the end of the __DATA segment. === Testing === In addition to check-{llvm,clang,profile}, I performed a link test on a simple object after injecting ~4GB of padding into __llvm_covmap: @__llvm_coverage_padding = internal constant [4000000000 x i8] zeroinitializer, section "__LLVM_COV,__llvm_covmap", align 8 (This test is too expensive to check-in.) === Backwards Compatibility === This patch should not pose any backwards-compatibility concerns. LLVM is expected to scan all of the sections in a binary for __llvm_covmap, so changing its segment shouldn't affect anything. I double-checked this by loading coverage produced by an unpatched compiler with a patched llvm-cov. Suggested by Nick Kledzik. llvm-svn: 285360
* AMDGPU/SI: Handle hazard with > 8 byte VMEM storesTom Stellard2016-10-277-24/+201
| | | | | | | | | | Reviewers: arsenm Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, tony-tye, llvm-commits Differential Revision: https://reviews.llvm.org/D25577 llvm-svn: 285359
* Reapply r285351 "[APFloat] Add DoubleAPFloat mode to APFloat. NFC." withTim Shen2016-10-272-221/+441
| | | | | | a workaround for old clang. llvm-svn: 285358
* [Test Suite] Pull generateSource into lldbtestChris Bieneman2016-10-2712-58/+48
| | | | | | | | | | | | | | | Summary: Convert tests using LLDB headers to use generateSource to put the right include paths in place regardless of whether or not you're building a framework. This also abstracted generateSource out of TestPublicAPIHeaders.py into lldbtest.py. Reviewers: tfiala, zturner Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D25887 llvm-svn: 285357
* [CMake] Rename lldb-launcher to darwin-debugChris Bieneman2016-10-273-43/+2
| | | | | | | | | | | | Summary: This tool is only built on Darwin, and the name darwin-debug matches the Xcode project. We should have this in sync unless there is a good reason not to. Reviewers: zturner, tfiala, labath Subscribers: labath, mgorny, lldb-commits Differential Revision: https://reviews.llvm.org/D25745 llvm-svn: 285356
* Update .debug_line section version information to match DWARF version.Ekaterina Romanova2016-10-2714-33/+77
| | | | | | | | | | In the past the compiler always emitted .debug_line version 2, though some opcodes from DWARF 3 (e.g. DW_LNS_set_prologue_end, DW_LNS_set_epilogue_begin or DW_LNS_set_isa) and from DWARF 4 could be emitted by the compiler. This patch changes version information of .debug_line to exactly match the DWARF version. For .debug_line version 4, a new field maximum_operations_per_instruction is emitted. Differential Revision: https://reviews.llvm.org/D16697 llvm-svn: 285355
* Revert "[APFloat] Add DoubleAPFloat mode to APFloat. NFC."Tim Shen2016-10-272-433/+221
| | | | | | This reverts r285351, since it breaks the build. llvm-svn: 285354
* [libFuzzer] enable use_cmp by defaultKostya Serebryany2016-10-2711-15/+17
| | | | llvm-svn: 285353
* [libcxx] Make regex_match backtrack when search failsTim Shen2016-10-272-20/+85
| | | | | | | | | | | | | | | | Summary: Fixes PR19851. alg.re.match/ecma.pass.cpp still XFAILS on linux, but after commenting out locale-related tests, it passes. I don't have a freebsd machine to produce a full pass. Reviewers: mclow.lists Subscribers: cfe-commits, emaste Differential Revision: https://reviews.llvm.org/D26026 llvm-svn: 285352
* [APFloat] Add DoubleAPFloat mode to APFloat. NFC.Tim Shen2016-10-272-221/+433
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch adds DoubleAPFloat mode to APFloat. Now, an APFloat with semantics PPCDoubleDouble will have DoubleAPFloat layout (APFloat.U.Double), which contains two underlying APFloats as PPCDoubleDoubleImpl and IEEEdouble semantics. Currently the IEEEdouble APFloat is not used, and the first APFloat behaves exactly the same before this change. This patch consists of three kinds of logics: 1) Construction and destruction of APFloat. Now the ctors, dtor, assign opertors and factory functions construct different underlying layout based on the semantics passed in. 2) s/IEEE/getIEEE()/ for normal, lifetime-unrelated computation functions. These functions only access Floats[0] in DoubleAPFloat, which is the same as today's semantic. 3) A "Double dispatch" function, APFloat::convert. Converting between two different layouts requires appropriate logic. Neither of these change the external behavior. Reviewers: hfinkel, kbarton, echristo, iteratee Subscribers: mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D25977 llvm-svn: 285351
* BitcodeReader: Require clients to read the block info block at most once.Peter Collingbourne2016-10-271-2/+2
| | | | | | | | | | | | This change makes it the client's responsibility to call ReadBlockInfoBlock() at most once. This is in preparation for a future change that will allow there to be multiple block info blocks. See also: http://lists.llvm.org/pipermail/llvm-dev/2016-October/106512.html Differential Revision: https://reviews.llvm.org/D26016 llvm-svn: 285350
* [docs] Update the TSan and MSan docs to refer to the new no_sanitize attributeAnna Zaks2016-10-272-10/+10
| | | | | | | | | | TSan and MSan were the only remaining sanitizers referring to the deprecated attribute for issue suppression. Update the docs to recommend __attribute__((no_sanitize("..."))) instead. Differential Revision: https://reviews.llvm.org/D25885 llvm-svn: 285349
* CodeGen: Handle missed case of block removal during BlockPlacement.Kyle Butt2016-10-271-4/+10
| | | | | | | | | There is a use after free bug in the existing code. Loop layout selects a preferred exit block, and then lays out the loop. If this block is removed during layout, it needs to be invalidated to prevent a use after free. llvm-svn: 285348
* Define ~DIHelper::DIHelper() in .cpp.Rui Ueyama2016-10-272-1/+5
| | | | llvm-svn: 285347
* [PATCH] D25483: [libcxx] [test] Fix non-Standard assumptions about how many ↵Stephan T. Lavavej2016-10-2712-16/+31
| | | | | | elements are allocated llvm-svn: 285346
* [InstCombine] fix foldSPFofSPF() to handle vector splatsSanjay Patel2016-10-272-30/+24
| | | | llvm-svn: 285345
* [libFuzzer] docs: update the examplesKostya Serebryany2016-10-271-30/+30
| | | | llvm-svn: 285344
* [asan] Test jumps which bypass variables declarationVitaly Buka2016-10-271-0/+73
| | | | | | | | | | | | | | | Summary: Clang should not generate lifetime intrinsics for such variables. D24693 PR28267 Reviewers: eugenis Subscribers: llvm-commits, kubabrecka Differential Revision: https://reviews.llvm.org/D24696 llvm-svn: 285343
* Another additional error check for invalid Mach-O files for theKevin Enderby2016-10-2712-0/+75
| | | | | | | | | | | | | | | | | | | | | | obsolete load commands. Again the philosophy of the error checking in libObject for Mach-O files, the idea behind the checking is that we never will return a Mach-O file out of libObject that contains unknown things the library code can’t operate on. So known obsolete load commands will cause a hard error. Also to make things clear I have added comments to the values and structures in Support/Mach-O.h and Support/MachO.def as to what is obsolete. As noted in a TODO in the code, there may need to be a non-default mode to allow some unknown values for well structured Mach-O files with things like unknown load load commands. So things like using an old lldb on a newer Mach-O file could still provide some limited functionality. llvm-svn: 285342
* Add documentation describing the components of a complete toolchain ↵Richard Smith2016-10-273-0/+359
| | | | | | including Clang. llvm-svn: 285341
* [InstCombine] add vector tests for foldSPFofSPF to show missing foldsSanjay Patel2016-10-271-0/+33
| | | | llvm-svn: 285340
* [libFuzzer] docs: separate section for fuzz targetKostya Serebryany2016-10-271-4/+23
| | | | llvm-svn: 285339
* AMDGPU/SI: Handle s_setreg hazard in GCNHazardRecognizerTom Stellard2016-10-273-49/+113
| | | | | | | | | | Reviewers: arsenm Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, llvm-commits, tony-tye Differential Revision: https://reviews.llvm.org/D25528 llvm-svn: 285338
* [libFuzzer] remove large examples from the libFuzzer docs and link to the ↵Kostya Serebryany2016-10-272-163/+6
| | | | | | libFuzzer tutorial instead; also fix a build error in another file llvm-svn: 285337
* [InstCombine] auto-generate checks for min/max testsSanjay Patel2016-10-271-28/+40
| | | | llvm-svn: 285336
* [PPC] Adding the removed testcase againEhsan Amiri2016-10-271-0/+71
| | | | | | | | | | | | | | This testcase was originally part of r284995, but I put it in a wrong directory. So I removed it. Before adding it back I did some small enhancements. Also I changed the assertions a little bit, to take into account the impact of some changes performed since code review is done. This is similar to changes done for another testcase in the original commit. See: https://reviews.llvm.org/D23614#577749 Basically for instead of vxor we now generate xxlxor in some cases, which is better. llvm-svn: 285333
* Add support for "type lookup" to find C and C++ typesEnrico Granata2016-10-275-4/+104
| | | | | | | | This is an important first step in closing the functionality gap between "type lookup" and "images lookup -t" rdar://28971388 llvm-svn: 285332
* [coroutines] Add diagnostics for copy/move assignment operators and ↵Eric Fiselier2016-10-273-59/+104
| | | | | | | | | | | | | | functions with deduced return types. Summary: The title says it all. Additionally this patch refactors the diagnostic code into a separate function. Reviewers: GorNishanov, rsmith Subscribers: majnemer, mehdi_amini, cfe-commits Differential Revision: https://reviews.llvm.org/D25292 llvm-svn: 285331
* [LoopUnroll] Check partial unrolling is enabled before initialization. NFC.Haicheng Wu2016-10-271-2/+2
| | | | | | Differential Revision: https://reviews.llvm.org/D23891 llvm-svn: 285330
* [X86][AVX512] Fix MUL v8i64 costs on non-AVX512DQ targetsSimon Pilgrim2016-10-272-2/+3
| | | | llvm-svn: 285329
* Use -fopenmp=libomp in all OpenMP offloading tests.Samuel Antao2016-10-271-24/+20
| | | | | | This will make sure the right features are being tested even for machines that default to libgomp. llvm-svn: 285327
* [Driver][OpenMP] Add support to create jobs for unbundling actions.Samuel Antao2016-10-2711-61/+316
| | | | | | | | | | | | | | | | | | | Summary: This patch adds the support to create jobs for the `OffloadBundlingAction` which will invoke the `clang-offload-bundler` tool to unbundle input files. Unlike other actions, unbundling actions have multiple outputs. Therefore, this patch adds the required changes to have a variant of `Tool::ConstructJob` with multiple outputs. The way the naming of the results is implemented is also slightly modified so that the same action can use a different offloading prefix for each use by the different offloading actions. With this patch, it is possible to compile a functional OpenMP binary with offloading support, even with separate compilation. Reviewers: echristo, tra, jlebar, ABataev, hfinkel Subscribers: mkuron, whchung, mehdi_amini, cfe-commits, Hahnfeld, andreybokhanko, arpith-jacob, carlo.bertolli, caomhin Differential Revision: https://reviews.llvm.org/D21857 llvm-svn: 285326
* [Driver][OpenMP] Add support to create jobs for bundling actions.Samuel Antao2016-10-277-2/+141
| | | | | | | | | | | | Summary: This patch adds the support to create a job for the `OffloadBundlingAction` which will invoke the `clang-offload-bundler` tool. 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/D21856 llvm-svn: 285325
* [Driver][OpenMP] Update actions builder to create unbundling action when ↵Samuel Antao2016-10-277-2/+150
| | | | | | | | | | | | | | | | | 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 llvm-svn: 285324
* [Driver][OpenMP] Update actions builder to create bundling action when ↵Samuel Antao2016-10-275-5/+119
| | | | | | | | | | | | | | | | | necessary. Summary: In order to save the user from dealing with multiple output files (for host and device) while using separate compilation, a new action `OffloadBundlingAction` is used when the last phase is not linking. This action will then result in a job that uses the proposed bundling tool to create a single preprocessed/IR/ASM/Object file from multiple ones. 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/D21852 llvm-svn: 285323
* Don't create a dummy ELF to process a binary file.Rafael Espindola2016-10-2711-247/+73
| | | | | | | Now that it is easy to create input section and symbols, this is simple. llvm-svn: 285322
* Fix build breakage on buildbots that was due to 285309.Greg Clayton2016-10-271-3/+4
| | | | llvm-svn: 285321
* [Driver][OpenMP] Add logic for offloading-specific argument translation.Samuel Antao2016-10-278-37/+114
| | | | | | | | | | | | | | | Summary: This patch includes support for argument translation that is specific of a given offloading kind. Additionally, it implements the translation for OpenMP device kinds in the gcc tool chain. With this patch, it is possible to compile a functional OpenMP application with offloading capabilities with no separate compilation. Reviewers: echristo, tra, jlebar, rsmith, ABataev, hfinkel Subscribers: whchung, mehdi_amini, cfe-commits, Hahnfeld, andreybokhanko, arpith-jacob, carlo.bertolli, caomhin Differential Revision: https://reviews.llvm.org/D21848 llvm-svn: 285320
* [Driver][OpenMP] Build jobs for OpenMP offloading actions for targets using ↵Samuel Antao2016-10-274-34/+313
| | | | | | | | | | | | | | | | | gcc tool chains. Summary: This patch adds logic to create jobs for OpenMP offloading actions by: - tuning the jobs result information to use the offloading prefix even for (device) linking actions. - replacing the device inputs of the host linking jobs by a linker script that embed them in the right sections. Reviewers: echristo, tra, jlebar, rsmith, ABataev, hfinkel Subscribers: mkuron, whchung, mehdi_amini, cfe-commits, Hahnfeld, andreybokhanko, arpith-jacob, carlo.bertolli, caomhin Differential Revision: https://reviews.llvm.org/D21847 llvm-svn: 285319
* [InstCombine] handle simple vector integer constants in IsFreeToInvertSanjay Patel2016-10-272-8/+42
| | | | llvm-svn: 285318
* Be less aggressive at relaxing got access in this case.Rafael Espindola2016-10-272-2/+22
| | | | | | | | This fixes pr30803 by not relaxing that particular access. We could also let adjustRelaxExpr know that the target is absolute so that it uses R_RELAX_GOT_PC_NOPIC, but it is not clear if it is worth it. llvm-svn: 285317
OpenPOWER on IntegriCloud