summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [ELF] Add a NOP instruction to make LLVM generate a mapping symbolPeter Smith2017-03-311-1/+3
| | | | | | | | | | | | | | | | | | | This is a test change applicable for ARM targets. Previously LLVM would generate a mapping symbol when code contains only data. This was changed as part of https://reviews.llvm.org/D30724 and to be more close to the ARM ELF ABI. The test case is changed to check for behavior with minimal changes. Patch by Shankar Easwaran Differential Revision: https://reviews.llvm.org/D31500 llvm-svn: 299212
* Make naming in Host.h in line with coding standards.Kristof Beyls2017-03-315-32/+29
| | | | | | | Based on post-commit review comments by Chandler Carruth on https://reviews.llvm.org/D31236. Thanks! llvm-svn: 299211
* clang-format vs plugin support for Visual Studio 2017Hans Wennborg2017-03-311-0/+3
| | | | | | | | | | | | | | | | | | | | With the release of Visual Studio 2017, we need to at the very least claim support for it in the current manifest file. With the changes introducted in this patch we can install the extension again, but a warning message will be shown stating that it's not supported (https://twitter.com/parsley72/status/846558416751411200). To get the rid of the warning more work is necessary, as VS 2017 changed some things about extensions, see more here: https://docs.microsoft.com/en-us/visualstudio/extensibility/how-to-migrate-extensibility-projects-to-visual-studio-2017. While working on those changes, it has been suggested in the mail list that this first patch is integrated in the meantime. Patch by Hugo Puhlmann! Differential Revision: https://reviews.llvm.org/D31522 llvm-svn: 299210
* Use the current working directory in the glob expansionRafael Espindola2017-03-312-8/+13
| | | | | | | | | | | This fixes tests that do things like mkdir <dir> cd <dir> .. <cmd> *.foo llvm-svn: 299209
* Remove unnecessary cast and branch. NFC.James Henderson2017-03-311-5/+1
| | | | llvm-svn: 299208
* Update comment for r299098 per feedback from James Henderson.Yaron Keren2017-03-311-2/+1
| | | | llvm-svn: 299207
* Remove unused variable.Sam McCall2017-03-311-1/+0
| | | | llvm-svn: 299206
* [ScalarEvolution] Re-enable Predicate implication from operationsMax Kazantsev2017-03-314-16/+569
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch rL298481 was reverted due to crash on clang-with-lto-ubuntu build. The reason of the crash was type mismatch between either a or b and RHS in the following situation: LHS = sext(a +nsw b) > RHS. This is quite rare, but still possible situation. Normally we need to cast all {a, b, RHS} to their widest type. But we try to avoid creation of new SCEV that are not constants to avoid initiating recursive analysis that can take a lot of time and/or cache a bad value for iterations number. To deal with this, in this patch we reject this case and will not try to analyze it if the type of sum doesn't match with the type of RHS. In this situation we don't need to create any non-constant SCEVs. This patch also adds an assertion to the method IsProvedViaContext so that we could fail on it and not go further into range analysis etc (because in some situations these analyzes succeed even when the passed arguments have wrong types, what should not normally happen). The patch also contains a fix for a problem with too narrow scope of the analysis caused by wrong usage of predicates in recursive invocations. The regression test on the said failure: test/Analysis/ScalarEvolution/implied-via-addition.ll Reviewers: reames, apilipenko, anna, sanjoy Reviewed By: sanjoy Subscribers: mzolotukhin, mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D31238 llvm-svn: 299205
* clang-format: [JavaScript] Ignore QT keywords.Daniel Jasper2017-03-312-1/+5
| | | | llvm-svn: 299204
* Do not pollute the namespace in a header file.Kristof Beyls2017-03-311-7/+7
| | | | llvm-svn: 299203
* [AMDGPU] SDWA Peephole: improve search for immediates in SDWA patternsSam Kolton2017-03-315-68/+112
| | | | | | | | | | | | | | | | | Previously compiler often extracted common immediates into specific register, e.g.: ``` %vreg0 = S_MOV_B32 0xff; %vreg2 = V_AND_B32_e32 %vreg0, %vreg1 %vreg4 = V_AND_B32_e32 %vreg0, %vreg3 ``` Because of this SDWA peephole failed to find SDWA convertible pattern. E.g. in previous example this could be converted into 2 SDWA src operands: ``` SDWA src: %vreg2 src_sel:BYTE_0 SDWA src: %vreg4 src_sel:BYTE_0 ``` With this change peephole check if operand is either immediate or register that is copy of immediate. llvm-svn: 299202
* [DAGCombiner] Add vector demanded elements support to ↵Simon Pilgrim2017-03-3117-7/+22
| | | | | | | | | | computeKnownBitsForTargetNode Follow up to D25691, this sets up the plumbing necessary to support vector demanded elements support in known bits calculations in target nodes. Differential Revision: https://reviews.llvm.org/D31249 llvm-svn: 299201
* [LLDB][MIPS] Core Dump Support.Nitesh Jain2017-03-3115-245/+443
| | | | | | | | | | Reviewers: labath, emaste Subscribers: jaydeep, bhushan, lldb-commits, slthakur Differential Revision: https://reviews.llvm.org/D30457 llvm-svn: 299200
* [LLDB][MIPS] Fix Core file Architecture and OS information.Nitesh Jain2017-03-319-6/+63
| | | | | | | | | | Reviewers: labath, clayborg Subscribers: jaydeep, bhushan, lldb-commits, slthakur Differential Revision: https://reviews.llvm.org/D31280 llvm-svn: 299199
* Spelling mistakes in comments. NFCI.Simon Pilgrim2017-03-313-3/+3
| | | | llvm-svn: 299198
* Spelling mistakes in comments. NFCI.Simon Pilgrim2017-03-314-4/+4
| | | | llvm-svn: 299197
* [LLDB][MIPS] Check if memory_info.GetName() is empty before finding ↵Nitesh Jain2017-03-311-1/+2
| | | | | | | | | | | | corresponding module. Reviewers: labath, clayborg Subscribers: jaydeep, bhushan, lldb-commits, slthakur Differential Revision: https://reviews.llvm.org/D30454 llvm-svn: 299196
* Fix MSVC 'not all control paths return a value' warningSimon Pilgrim2017-03-311-0/+1
| | | | llvm-svn: 299195
* Fix signed/unsigned warningSimon Pilgrim2017-03-311-1/+1
| | | | llvm-svn: 299194
* Strip trailing whitespaceSimon Pilgrim2017-03-311-93/+93
| | | | llvm-svn: 299193
* [OpenCL] Do not generate "kernel_arg_type_qual" metadata for non-pointer argsEgor Churaev2017-03-312-11/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: "kernel_arg_type_qual" metadata should contain const/volatile/restrict tags only for pointer types to match the corresponding requirement of the OpenCL specification. OpenCL 2.0 spec 5.9.3 Kernel Object Queries: CL_KERNEL_ARG_TYPE_VOLATILE is returned if the argument is a pointer and the referenced type is declared with the volatile qualifier. [...] Similarly, CL_KERNEL_ARG_TYPE_CONST is returned if the argument is a pointer and the referenced type is declared with the restrict or const qualifier. [...] CL_KERNEL_ARG_TYPE_RESTRICT will be returned if the pointer type is marked restrict. Reviewers: Anastasia, cfe-commits Reviewed By: Anastasia Subscribers: bader, yaxunl Differential Revision: https://reviews.llvm.org/D31321 llvm-svn: 299192
* [msan] Turn off lifetime markers even when use after scope checking is on.Benjamin Kramer2017-03-311-4/+4
| | | | | | | | | Since r299174 use after scope checking is on by default. Even though msan doesn't check for use after scope it gets confused by the lifetime markers emitted for it, making unit tests fail. This is covered by ninja check-msan. llvm-svn: 299191
* [clang-tidy] Correct code-block in the doc.Haojian Wu2017-03-311-1/+1
| | | | llvm-svn: 299190
* Instsimplify: Adding shufflevector test. NFC.Zvi Rackover2017-03-311-0/+71
| | | | | | | Adding some test-cases demonstrating cases that need to be improved. To be followed by patches that improve these cases. llvm-svn: 299189
* [asan] Move AsanCheckDynamicRTPrereqs check under flagMaxim Ostapenko2017-03-313-1/+6
| | | | | | | | | | The patch addresses https://github.com/google/sanitizers/issues/786. Currently AsanCheckDynamicRTPrereqs prevents dynamic ASan runtime from running in some important environments e.g. cowbuilder and fakeroot that may also work with interposition. Let's allow users to switch off the check given that they know what they do. Differential Revision: https://reviews.llvm.org/D31420 llvm-svn: 299188
* [APInt] Add unittests that demonstrate how very broken ↵Craig Topper2017-03-311-0/+25
| | | | | | | | | | APIntOps::isShiftedMask is. Did you know that 0 is a shifted mask? But 0x0000ff00 and 0x000000ff aren't? At least we get 0xff000000 right. I only see one usage of this function in the code base today and its in InstCombine. I think its protected against 0 being misreported as a mask. I guess we just don't have tests for the missed cases. llvm-svn: 299187
* [Scalarizer] Handle scalar arguments in vector GEPMikael Holmen2017-03-312-3/+138
| | | | | | | | | | | | | | | | | | Summary: Triggered by commit r298620: "[LV] Vectorize GEPs". If we encounter a vector GEP with scalar arguments, we splat the scalar into a vector of appropriate size before we scatter the argument. Reviewers: arsenm, mehdi_amini, bkramer Reviewed By: arsenm Subscribers: bjope, mssimpso, wdng, llvm-commits Differential Revision: https://reviews.llvm.org/D31416 llvm-svn: 299186
* Go binding: Add GetCurrentDebugLocation to obtain debug location from builderAndrew Wilkins2017-03-314-0/+74
| | | | | | | | | | | | | | | | | | | Summary: Currently Go binding only has SetCurrentDebugLocation method. I added GetCurrentDebugLocation method to IRBuilder instance. I added this because I want to save current debug location, change debug location temporary and restore the saved one finally. This is useful when source location jumps and goes back after while LLVM IR generation. I also added tests for this to ir_test.go. I confirmed that all test passed with this patch based on r298890 Patch by Ryuichi Hayashida! Differential Revision: https://reviews.llvm.org/D31415 llvm-svn: 299185
* Re-apply r299168 and r299169 now that the libdeps are fixed.Peter Collingbourne2017-03-318-299/+664
| | | | llvm-svn: 299184
* Move llvm::emitLinkerFlagsForGlobalCOFF() to Mangler.Peter Collingbourne2017-03-316-36/+37
| | | | llvm-svn: 299183
* Move llvm::canBeOmittedFromSymbolTable() to Analysis.Peter Collingbourne2017-03-316-28/+45
| | | | llvm-svn: 299182
* Revert test added in r299152Teresa Johnson2017-03-311-6/+0
| | | | | | | Removing the test until I can figure out how to get the ThinLTO backend invocation of clang to use the correct target. llvm-svn: 299181
* [libFuzzer] simplify the code a bitKostya Serebryany2017-03-313-17/+14
| | | | llvm-svn: 299180
* [libFuzzer] tests: don't test 64-bit comparison on 32-bit buildsKostya Serebryany2017-03-312-5/+7
| | | | llvm-svn: 299179
* Add target-cpuTeresa Johnson2017-03-311-2/+2
| | | | | | | | Sigh, another follow-on fix needed for test in r299152 causing bot failures. We also need the target-cpu for the ThinLTO BE clang invocation. llvm-svn: 299178
* [libFuzzer] ensure that strncmp is not inlined in a testKostya Serebryany2017-03-311-1/+2
| | | | llvm-svn: 299177
* Add more target triples to testTeresa Johnson2017-03-311-2/+2
| | | | | | | | Third and hopefully final fix to test for r299152 that is causing bot failures: make sure the target triple specified for the ThinLTO backend clang invocations as well. llvm-svn: 299176
* [asan] Turn -fsanitize-address-use-after-scope on by default [compiler-rt part]Kuba Mracek2017-03-311-0/+4
| | | | | | | | | | AddressSanitizer has an optional compile-time flag, -fsanitize-address-use-after-scope, which enables detection of use-after-scope bugs. We'd like to have this feature on by default, because it is already very well tested, it's used in several projects already (LLVM automatically enables it when using -DLLVM_USE_SANITIZER=Address), it's low overhead and there are no known issues or incompatibilities. This patch enables use-after-scope by default via the Clang driver, where we set true as the default value for AsanUseAfterScope. This also causes the lifetime markers to be generated whenever fsanitize=address is used. This has some nice consequences, e.g. we now have line numbers for all local variables. Differential Revision: https://reviews.llvm.org/D31479 llvm-svn: 299175
* [asan] Turn -fsanitize-address-use-after-scope on by default [clang part]Kuba Mracek2017-03-312-2/+2
| | | | | | | | | | AddressSanitizer has an optional compile-time flag, -fsanitize-address-use-after-scope, which enables detection of use-after-scope bugs. We'd like to have this feature on by default, because it is already very well tested, it's used in several projects already (LLVM automatically enables it when using -DLLVM_USE_SANITIZER=Address), it's low overhead and there are no known issues or incompatibilities. This patch enables use-after-scope by default via the Clang driver, where we set true as the default value for AsanUseAfterScope. This also causes the lifetime markers to be generated whenever fsanitize=address is used. This has some nice consequences, e.g. we now have line numbers for all local variables. Differential Revision: https://reviews.llvm.org/D31479 llvm-svn: 299174
* Fix new compile command in testTeresa Johnson2017-03-311-1/+1
| | | | | | | My previous attempt to fix bot failures from r299152 didn't add the necessary option to get bitcode out of the cc1 step. llvm-svn: 299173
* [XRay][docs] Add XRayExample to docindex.Dean Michael Berris2017-03-311-0/+1
| | | | llvm-svn: 299172
* Revert r299168 and r299169 due to library dependency issues.Peter Collingbourne2017-03-318-664/+299
| | | | | | http://bb.pgr.jp/builders/i686-mingw32-RA-on-linux/builds/25073/steps/build_llvmclang/logs/stdio llvm-svn: 299171
* Add triple to new testTeresa Johnson2017-03-311-1/+1
| | | | | | | Attempt to fix bot errors from r299152 by using clang_cc1 and specifying target triple to compile step. llvm-svn: 299170
* Fix 32-bit build.Peter Collingbourne2017-03-311-1/+1
| | | | llvm-svn: 299169
* LTO: Reduce memory consumption by creating an in-memory symbol table for ↵Peter Collingbourne2017-03-318-299/+664
| | | | | | | | | | | | | | | | | | | | | | | InputFiles. NFCI. Introduce symbol table data structures that can be potentially written to disk, have the LTO library build those data structures using temporarily constructed modules and redirect the LTO library implementation to go through those data structures. This allows us to remove the LLVMContext and Modules owned by InputFile. With this change I measured a peak memory consumption decrease from 5.4GB to 2.8GB in a no-op incremental ThinLTO link of Chromium on Linux. The impact on memory consumption is larger in COFF linkers where we are currently forced to materialize all metadata in order to read linker options. Peak memory consumption linking a large piece of Chromium for Windows with full LTO and debug info decreases from >64GB (OOM) to 15GB. Part of PR27551. Differential Revision: https://reviews.llvm.org/D31364 llvm-svn: 299168
* [libFuzzer] make sure we don't execute libFuzzer's mem* and str* hooks while ↵Kostya Serebryany2017-03-315-9/+17
| | | | | | calling mem*/str* inside libFuzzer itself llvm-svn: 299167
* Temporarily revert "[PPC] In PPCBoolRetToInt change the bool value to i64 if ↵Eric Christopher2017-03-315-71/+33
| | | | | | | | the target is ppc64" as it's causing test failures, I've given Carrot a testcase offline. This reverts commit r298955. llvm-svn: 299153
* [ThinLTO] Set up lto::Config properly for codegen in ThinLTO backendsTeresa Johnson2017-03-312-126/+160
| | | | | | | | | | | | | | | | Summary: This involved refactoring out pieces of EmitAssemblyHelper::CreateTargetMachine for use in runThinLTOBackend. Subsumes D31114. Reviewers: mehdi_amini, pcc Subscribers: Prazek, cfe-commits Differential Revision: https://reviews.llvm.org/D31508 llvm-svn: 299152
* Update x86-64 ABI link with the one from linuxbase.org since the otherEric Christopher2017-03-311-1/+1
| | | | | | seems to be down. llvm-svn: 299151
* [XRay][tools] Remove some assertions in llvm-xray graphDean Michael Berris2017-03-312-6/+21
| | | | | | | | | | | | | | | | | Summary: Assertions assuming that function calls may not have zero durations do not seem to hold in the wild. There are valid cases where the conversion of the tsc counters end up becoming zero-length durations. These assertions don't really hold and the algorithms don't need those to be true for them to work. Reviewers: dblaikie, echristo Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31519 llvm-svn: 299150
OpenPOWER on IntegriCloud