summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Implement GetLoadAddress for the Windows process pluginAaron Smith2019-02-155-41/+111
| | | | | | | | | | | | | | | | Summary: When a process is loaded, update its sections with the load address to resolve any created breakpoints. For the remote debugging case, the debugged process is launched remotely so GetLoadAddress is intended to pass the load address from remote to LLDB (client). Reviewers: zturner, llvm-commits, clayborg, labath Reviewed By: labath Subscribers: mgorny, sas, Hui, clayborg, labath, lldb-commits Differential Revision: https://reviews.llvm.org/D56237 llvm-svn: 354099
* X86: Replace isSafeToClobberEFLAGS implementationMatt Arsenault2019-02-152-86/+5
| | | | | | Also use modifiesRegister instead of looping over operands. llvm-svn: 354098
* Revert "Fix implementation of [temp.local]p4."Francis Visoiu Mistrih2019-02-159-184/+89
| | | | | | | | | This reverts commit 40bd10b770813bd1471d46f514545437516aa4ba. This seems to now emit an error when building the sanitizer tests: http://green.lab.llvm.org/green/job/clang-stage1-configure-RA/53965/consoleFull. llvm-svn: 354097
* Revert "[SystemZ] Do not emit VEXTEND or VROUND nodes without vector support."Francis Visoiu Mistrih2019-02-152-58/+0
| | | | | | | | | This reverts commit aa0b77d3395dc6ab91647138139c1a15a3aa088d. This fails to pass the machine verifier: http://green.lab.llvm.org/green/job/clang-stage1-cmake-RA-expensive/13579/ llvm-svn: 354096
* [lit][NFC] Cleanup copy&paste naming mistakeJulian Lettner2019-02-152-5/+5
| | | | llvm-svn: 354095
* [llvm-cxxfilt] Fix a comment typo. NFC.Matt Davis2019-02-151-1/+1
| | | | llvm-svn: 354094
* [GISel][NFC]: Add methods to speed up insertion into GISelWorklistAditya Nandakumar2019-02-153-4/+46
| | | | | | | | | | | | | https://reviews.llvm.org/D58073 Speed up insertion during the initial populating phase into the GISelWorkList by deferring repeatedly resizing the DenseMap. This results in ~10% improvement in the combiner passes, and ~3% speedup in the Legalizer. reviewed by: aemerson. llvm-svn: 354093
* [libFuzzer] print new functions as they are discovered in the fork modeKostya Serebryany2019-02-154-11/+33
| | | | llvm-svn: 354092
* Fix implementation of [temp.local]p4.Richard Smith2019-02-159-89/+184
| | | | | | | | | | | | | | | | | | | | When a template-name is looked up, we need to give injected-class-name declarations of class templates special treatment, as they denote a template rather than a type. Previously we achieved this by applying a filter to the lookup results after completing name lookup, but that is incorrect in various ways, not least of which is that it lost all information about access and how members were named, and the filtering caused us to generally lose all ambiguity errors between templates and non-templates. We now preserve the lookup results exactly, and the few places that need to map from a declaration found by name lookup into a declaration of a template do so explicitly. Deduplication of repeated lookup results of the same injected-class-name declaration is done by name lookup instead of after the fact. llvm-svn: 354091
* PR40642: Fix determination of whether the final statement of a statementRichard Smith2019-02-1521-218/+387
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | expression is a discarded-value expression. Summary: We used to get this wrong in three ways: 1) During parsing, an expression-statement followed by the }) ending a statement expression was always treated as producing the value of the statement expression. That's wrong for ({ if (1) expr; }) 2) During template instantiation, various kinds of statement (most statements not appearing directly in a compound-statement) were not treated as discarded-value expressions, resulting in missing volatile loads (etc). 3) In all contexts, an expression-statement with attributes was not treated as producing the value of the statement expression, eg ({ [[attr]] expr; }). Also fix incorrect enforcement of OpenMP rule that directives can "only be placed in the program at a position where ignoring or deleting the directive would result in a program with correct syntax". In particular, a label (be it goto, case, or default) should not affect whether directives are permitted. Reviewers: aaron.ballman, rjmccall Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D57984 llvm-svn: 354090
* Fixed failure on Darwin due to r354064Ana Pazos2019-02-151-1/+0
| | | | | | | | | | | | | | | | | Summary: instrprof-darwin-exports.c test fails on Darwin due to r354064. Updated clang list of exported symbols to fix the issue. Reviewers: vsk Reviewed By: vsk Subscribers: davidxl, efriedma Differential Revision: https://reviews.llvm.org/D58259 llvm-svn: 354089
* [libFuzzer] fix the unit testsKostya Serebryany2019-02-153-12/+14
| | | | llvm-svn: 354088
* [libFuzzer] when doing the merge, keep track of the coveraged edges, not ↵Kostya Serebryany2019-02-154-25/+33
| | | | | | just features llvm-svn: 354087
* LLD/AMDGPU: Preserve ABI version during linking ELF for AMDGPUKonstantin Zhuravlyov2019-02-145-3/+38
| | | | | | Differential Revision: https://reviews.llvm.org/D58026 llvm-svn: 354086
* AMDGPU: Set ABI version to 1 for code object v3Konstantin Zhuravlyov2019-02-144-10/+23
| | | | | | Differential Revision: https://reviews.llvm.org/D57811 llvm-svn: 354085
* [Driver][Darwin] Emit an error when using -pg on OS without support for it.Volodymyr Sapsai2019-02-143-14/+29
| | | | | | | | | | | | | | | | | Instead of letting a program fail at runtime, emit an error during compilation. rdar://problem/12206955 Reviewers: dexonsmith, bob.wilson, steven_wu Reviewed By: steven_wu Subscribers: jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D57991 llvm-svn: 354084
* [symbolizer] Avoid collecting symbols belonging to invalid sections.Matt Davis2019-02-142-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: llvm-symbolizer would originally report symbols that belonged to an invalid object file section. Specifically the case where: `*Symbol.getSection() == ObjFile.section_end()` This patch prevents the Symbolizer from collecting symbols that belong to invalid sections. The test (from PR40591) introduces a case where two symbols have address 0, one symbol is defined, 'foo', and the other is not defined, 'bar'. This patch will cause the Symbolizer to keep 'foo' and ignore 'bar'. As a side note, the logic for adding symbols to the Symbolizer's store (`SymbolizableObjectFile::addSymbol`) replaces symbols with the same <address, size> pair. At some point that logic should be revisited as in the aforementioned case, 'bar' was overwriting 'foo' in the Symbolizer's store, and 'foo' was forgotten. This fixes PR40591 Reviewers: jhenderson, rupprecht Reviewed By: rupprecht Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58146 llvm-svn: 354083
* Revert "[INLINER] allow inlining of address taken blocks"Nick Desaulniers2019-02-143-15/+2
| | | | | | This reverts commit 19e95fe61182945b7b68ad15348f144fb996633f. llvm-svn: 354082
* Revert "Revert "[lld] Fix elf::unlinkAsync detached thread""Nick Desaulniers2019-02-141-2/+19
| | | | | | This reverts commit 9934f2ff02dba9fdabe6e27a83f9f95388bf4132. llvm-svn: 354081
* Revert "[lld] Fix elf::unlinkAsync detached thread"Nick Desaulniers2019-02-141-19/+2
| | | | | | This reverts commit 2694810153cf992823eb45253d26b8567424438f. llvm-svn: 354080
* [INLINER] allow inlining of address taken blocksNick Desaulniers2019-02-143-2/+15
| | | | | | | | | | | | | as long as their uses does not contain calls to functions that capture the argument (potentially allowing the blockaddress to "escape" the lifetime of the caller). TODO: - add more tests - fix crash in llvm::updateCGAndAnalysisManagerForFunctionPass when invoking Transforms/Inline/blockaddress.ll llvm-svn: 354079
* [lld] Fix elf::unlinkAsync detached threadVitaly Buka2019-02-141-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: So this patch just make sure that the thread is at least stated before we return from main. If we just detach then the thread may be actually be stated just after the process returned from main and it's calling atexit handers. Then the thread may try to create own function static variable and it will add new at exit handlers confusing libc. GLIBC before 2.27 had race in that case which corrupted atexit handlers list. Support for this use-case for other implementation is also unclear, so we can try just avoid that. PR40162 Reviewers: ruiu, espindola Subscribers: emaste, arichardson, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58246 llvm-svn: 354078
* [x86] add tests for extractelement of FP; NFCSanjay Patel2019-02-141-0/+483
| | | | llvm-svn: 354077
* [libFuzzer] when doing the merge, keep track of the coveraged edges, not ↵Kostya Serebryany2019-02-149-58/+90
| | | | | | just features llvm-svn: 354076
* [clang][FileManager] fillRealPathName even if we aren't opening the fileJan Korous2019-02-142-0/+17
| | | | | | | | | | | | | The pathname wasn't previously filled when the getFile() method was called with openFile = false. We are caching FileEntry-s in ParsedAST::Includes in clangd and this caused the problem. This fixes an internal test failure in clangd - ClangdTests.GoToInclude.All rdar://47536127 Differential Revision: https://reviews.llvm.org/D58213 llvm-svn: 354075
* [Sema] Fix-up a -Wfloat-conversion diagnosticErik Pilkington2019-02-143-16/+23
| | | | | | | | | | | | We were warning on valid ObjC property reference exprs, and passing in the wrong arguments to DiagnoseFloatingImpCast (leading to a badly worded diagnostic). rdar://47644670 Differential revision: https://reviews.llvm.org/D58145 llvm-svn: 354074
* [lit] Remove --single-process option (use -j1 instead)Julian Lettner2019-02-142-12/+4
| | | | | | | | Remove `--single-process` command line option. Use `-j1` instead. Also see commit: 96adb78b120b6aa9739eb714534dc8e819f7bc52 llvm-svn: 354073
* MC/ELF: Allow targets to set ABI versionKonstantin Zhuravlyov2019-02-143-4/+8
| | | | | | | | Tests are in the follow up change Differential Revision: https://reviews.llvm.org/D57810 llvm-svn: 354072
* GlobalISel: Add alignment to LegalityQuery MMOsMatt Arsenault2019-02-148-61/+127
| | | | | | | This allows targets to specify the minimum alignment required for the load/store. llvm-svn: 354071
* Replace gcroot verifier testsMatt Arsenault2019-02-144-44/+52
| | | | | | | | These haven't been checking anything useful and have been testing the wrong failure reason for many years. Replace them with something which stresses what is actually implemented in the verifier now. llvm-svn: 354070
* [clang-tidy] Mention language version in test explicitly.Volodymyr Sapsai2019-02-141-1/+1
| | | | | | | | | "modernize-use-using" check is applicable only to C++11 and later. Spell it out to avoid relying on default language version. rdar://problem/47932196 llvm-svn: 354069
* [lit] Set --single-process for single tests and --threads=1Julian Lettner2019-02-146-17/+19
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: Automatically upgrade debugging experience (single process, no thread pool) when: 1) we only run a single test 2) user specifies `-j1` Details: Fix `--max-failures` in single process mode. Option did not have an effect in single process mode. Add display feedback for single process mode. Adapted test. Improve argument checking (require positive integers). `--single-process` is now essentially an alias for `-j1`. Should we remove it? Reviewers: rnk Differential Revision: https://reviews.llvm.org/D58249 llvm-svn: 354068
* AMDGPU/GlobalISel: Fix RegBankSelect for GEP.Matt Arsenault2019-02-143-32/+105
| | | | | | | | | | This is basically a pointer typed add, so shouldn't be any different. This was assuming everything was an SGPR, which is not true. Also cleanup legality for GEP. I don't seem to be seeing the problem the hack marking s64 as a legal pointer type the comment mentions. llvm-svn: 354067
* [AMDGPU] Ressociate 'add (add x, y), z' to use SALUStanislav Mekhanoshin2019-02-144-2/+165
| | | | | | | | | | | Reassociate adds to collect scalar operands in a single instruction when possible. That will result in a scalar add followed by vector instead of two vector adds, thus better utilizing SALU. Differential Revision: https://reviews.llvm.org/D58220 llvm-svn: 354066
* AMDGPU/GlobalISel: Handle split for 64-bit VALU selectMatt Arsenault2019-02-143-12/+455
| | | | llvm-svn: 354065
* Set hidden attribute on lprofMergeValueProfDataAna Pazos2019-02-143-0/+67
| | | | | | | | | | | | | | | | | | | | | Summary: The changes in https://reviews.llvm.org/D44847 cause load time failure due to lprofMergeValueProfData in Android libs enabled with profile generation: "dlopen failed: cannot locate symbol "lprofMergeValueProfData" referenced by..." Marking lprofMergeValueProfData as hidden so the correct in-module definition is picked by the linker. Reviewers: davidxl Reviewed By: davidxl Subscribers: efriedma, xur, davidxl, llvm-commits Differential Revision: https://reviews.llvm.org/D55893 llvm-svn: 354064
* Further relax restriction in tests to include where "-E" and "-S" must appear.Douglas Yung2019-02-141-30/+30
| | | | | | Also updated a few instances of "-emit-llvm-bc" and "-emit-obj" that were missed in the previous change. llvm-svn: 354063
* [ThinLTO] Detect partially split modules during the thin linkTeresa Johnson2019-02-145-32/+79
| | | | | | | | | | | | | | | | | | | | | | | | Summary: The changes to disable LTO unit splitting by default (r350949) and detect inconsistently split LTO units (r350948) are causing some crashes when the inconsistency is detected in multiple threads simultaneously. Fix that by having the code always look for the inconsistently split LTO units during the thin link, by checking for the presence of type tests recorded in the summaries. Modify test added in r350948 to remove single threading required to fix a bot failure due to this issue (and some debugging options added in the process of diagnosing it). Reviewers: pcc Subscribers: mehdi_amini, inglorion, eraman, steven_wu, dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57561 llvm-svn: 354062
* [libFuzzer] better stats for the fork modeKostya Serebryany2019-02-141-5/+44
| | | | llvm-svn: 354061
* [CMake] Fix ability to use LLVM_ENABLE_PROJECTS with LLVM_EXTERNAL_PROJECTSChris Bieneman2019-02-141-1/+1
| | | | | | LLVM r353148, changed the circumstances in which the project source directory variables are created to only create them for LLVM projects. This patch initializes the directory variables for projects specified in `LLVM_EXTERNAL_PROJECTS` as well. llvm-svn: 354060
* [InstCombine] Add todos for possible atomicrmw transformsPhilip Reames2019-02-141-0/+6
| | | | llvm-svn: 354059
* Canonicalize all integer "idempotent" atomicrmw opsPhilip Reames2019-02-142-18/+25
| | | | | | | | | | For "idempotent" atomicrmw instructions which we can't simply turn into load, canonicalize the operation and constant. This reduces the matching needed elsewhere in the optimizer, but doesn't directly impact codegen. For any architecture where OR/Zero is not a good default choice, you can extend the AtomicExpand lowerIdempotentRMWIntoFencedLoad mechanism. I reviewed X86 to make sure this works well, haven't audited other backends. Differential Revision: https://reviews.llvm.org/D58244 llvm-svn: 354058
* Stop enabling clang-tools-extra automatically when clang is in ↵Nico Weber2019-02-142-9/+3
| | | | | | | | | | | | | | LLVM_ENABLE_PROJECTS If you want to build clang-tools-extra with monorepo, just add it to LLVM_ENABLE_PROJECTS like with other projects. See also "Separating clang-tools-extra from clang in LLVM_ENABLE_PROJECTS" on cfe-dev. Differential Revision: https://reviews.llvm.org/D58157 llvm-svn: 354057
* [CodeGenObjC] Emit [[X alloc] init] as objc_alloc_init(X) when availableErik Pilkington2019-02-145-0/+93
| | | | | | | | | | | This provides a code size win on the caller side, since the init message send is done in the runtime function. rdar://44987038 Differential revision: https://reviews.llvm.org/D57936 llvm-svn: 354056
* Optional specialization for trivially copyable types, part2Serge Guelton2019-02-141-1/+3
| | | | llvm-svn: 354055
* Move a function from .h to .cpp and use a shorter name. NFC.Rui Ueyama2019-02-142-55/+55
| | | | llvm-svn: 354054
* [X86] Add clang support for X86 flag output parameters.Nirav Dave2019-02-144-3/+431
| | | | | | | | | | | | | | Summary: Add frontend support and expected flags for X86 inline assembly flag parameters. Reviewers: craig.topper, rnk, echristo Subscribers: eraman, nickdesaulniers, void, llvm-commits Differential Revision: https://reviews.llvm.org/D57394 llvm-svn: 354053
* Remove a comparator from header and instead use lambdas for simplicity. NFC.Rui Ueyama2019-02-143-20/+13
| | | | llvm-svn: 354052
* Recommit Optional specialization for trivially copyable typesSerge Guelton2019-02-142-0/+63
| | | | | | | | | | Unfortunately the original code gets misscompiled by GCC (at least 8.1), this is a tentative workaround using std::memcpy instead of inplace new for trivially copyable types. I'll revert if it breaks. Original revision: https://reviews.llvm.org/D57097 llvm-svn: 354051
* [lldb] [MainLoop] Remove redundant termination clause (NFCI)Michal Gorny2019-02-141-3/+0
| | | | | | | | | | | | | Remove the redundant termination clause from within the loop. Since the check is done at the end of the loop, it's entirely redundant to the 'while' condition. If termination was requested, the latter will become false and the 'while' loop will terminate, resulting in the 'return' statement below the loop being executed (which is equivalent to the one used inside 'if'). Differential Revision: https://reviews.llvm.org/D58227 llvm-svn: 354050
OpenPOWER on IntegriCloud